Toybrick

标题: NPU可以同时跑两个模型吗 [打印本页]

作者: eeyeh    时间: 2019-4-26 17:23
标题: NPU可以同时跑两个模型吗
请问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    时间: 2019-4-29 09:39
本帖最后由 troy 于 2019-4-29 09:42 编辑

NPU跟GPU不一样,无法同时跑多个模型,多个模型最终也是顺序跑的。set_input和get_output都会设置index,get_output会根据ctx和index获取到对应的结果。
作者: shopping    时间: 2019-9-16 10:30
本帖最后由 shopping 于 2019-9-16 10:32 编辑

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

作者: jefferyzhang    时间: 2019-9-17 11:36
NPU是分时复用的,你代码上的『同时』是成立的,多线程也没问题。但是物理上是分时复用运行的。
作者: zengwubin    时间: 2020-4-17 16:49
你好,请问你有成功跑两个模型吗、能否分享下相关例程,非常感谢




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3