Toybrick

NPU可以同时跑两个模型吗

eeyeh

中级会员

积分
202
楼主
发表于 2019-4-26 17:23:20    查看: 11145|回复: 4 | [复制链接]    打印 | 只看该作者
请问NPU可以同时跑两个模型吗?类似于下:
rknn_init(&ctx1,model1,model1_len,RKNN_FLAG_PRIOR_MEDIUM);
rknn_init(&ctx2,model2,model2_len,RKNN_FLAG_PRIOR_MEDIUM);
ret = rknn_run(ctx1, nullptr);     //thread1
ret = rknn_run(ctx2, nullptr);     //thread2
ret = rknn_outputs_get(ctx1, 3, outputs1, NULL);
ret = rknn_outputs_get(ctx2, 3, outputs2, NULL);


论坛中多线程绑定CPU的代码类似于上, 实测是可以跑通
http://t.rock-chips.com/forum.php?mod=viewthread&tid=355&extra=page%3D2
请问版主开两个线程跑两个模型, NPU是会同时处理这两个模型吗?还是在某个模型rknn_run时, 另一个模型阻塞直到第一个rknn_run跑完才开始rknn_run?
然后rknn_outputs_get会根据ctx的不同取得正确的结果吗?

回复

使用道具 举报

troy

版主

积分
2376
沙发
发表于 2019-4-29 09:39:27 | 只看该作者
本帖最后由 troy 于 2019-4-29 09:42 编辑

NPU跟GPU不一样,无法同时跑多个模型,多个模型最终也是顺序跑的。set_input和get_output都会设置index,get_output会根据ctx和index获取到对应的结果。
回复

使用道具 举报

shopping

中级会员

积分
410
板凳
发表于 2019-9-16 10:30:55 | 只看该作者
本帖最后由 shopping 于 2019-9-16 10:32 编辑

老哥,我也有类似的需求,请问你最后实现目标没有?如果有,能否指导一下我。
回复

使用道具 举报

jefferyzhang

版主

积分
13580
地板
发表于 2019-9-17 11:36:45 | 只看该作者
NPU是分时复用的,你代码上的『同时』是成立的,多线程也没问题。但是物理上是分时复用运行的。
回复

使用道具 举报

zengwubin

中级会员

积分
274
5#
发表于 2020-4-17 16:49:40 | 只看该作者
你好,请问你有成功跑两个模型吗、能否分享下相关例程,非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表