Toybrick

多线程推断的问题,请解答

xiaqing10

高级会员

积分
572
楼主
发表于 2020-5-15 17:20:46    查看: 7817|回复: 3 | [复制链接]    打印 | 只看该作者
在python环境下,多线程跑多个模型.比如: thread1 -> model1(模型大小100M,推断时间t1), thread2 -> model2(模型大小50M,推断时间t2), thread3 -> model3(模型大小10M,推断时间t3).

测试:
1, 单线程任意跑单个模型,耗费时间正常, t1>t2>t3;
2, 2线程跑任意两个模型,耗费时间不正常, t1=t2或者t1=t3或者t2=t3;

3, 3线程跑3模型,耗费时间不正常, t1=t2=t3;

补充: 如果将model1使用batch推断,那么model2和model3也会拉的和model1推断的时间一样长.

我想问下,在使用多线程推断的时候,rknn内部是否是将图片统一对齐后统一推断统一返回呢,而不是单独分ctx各自工作的.



回复

使用道具 举报

jefferyzhang

版主

积分
12935
沙发
发表于 2020-5-15 17:33:59 | 只看该作者
NPU是分时复用系统,谁抢到时间片就先跑谁,你这么比对有何意义,
应该算t1+t2+t3时间才有价值。
回复

使用道具 举报

xiaqing10

高级会员

积分
572
板凳
 楼主| 发表于 2020-5-15 18:11:06 | 只看该作者
多谢解答,确实是我理解错误. 当大模型跑完之后,小模型的线程速度也提上来了.
是我测试不充分.
回复

使用道具 举报

ljs423

注册会员

积分
125
地板
发表于 2021-1-15 10:54:04 | 只看该作者
jefferyzhang 发表于 2020-5-15 17:33
NPU是分时复用系统,谁抢到时间片就先跑谁,你这么比对有何意义,
应该算t1+t2+t3时间才有价值。 ...

请问哪个线程抢到npu,哪个线程先跑是当这个线程中的npu用完了,才会由其他的线程再去抢npu,还是只要时间到了就会有其他的线程抢npu呢?期待回复,非常感谢
回复

使用道具 举报

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

本版积分规则

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


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