Toybrick

楼主: 111223

rk3399pro npu支持多线程跑同一个模型吗?

shopping

中级会员

积分
410
楼主
发表于 2019-9-16 11:50:32 | 显示全部楼层
jefferyzhang 发表于 2019-3-14 09:00
npu不支持mini batch输入,输入只能是一次一个。

你好,看了社区其他帖子,问一句。你说 npu 不支持 多线程跑同一个模型,但是支持 多模型一起跑。目前我司的想法是,一块板子两个摄像头(不同视角)同时输入视频数据,同时返回结果(先不考虑硬件计算能力)。那我的技术实现就要同时运行两个算法模型,这个需要利用 opencl来完成,是吗?
回复

使用道具 举报

shopping

中级会员

积分
410
沙发
发表于 2019-9-17 15:34:48 | 显示全部楼层

所以如果我想同时跑两个 mobilenet-ssd 模型,我要打开两个终端窗口,在不同窗口下运行 mobilenet-ssd demo或者将两个摄像头的输入组成一个 batch 输入到模型中。本人小白,所以问的比较多,麻烦谅解。
回复

使用道具 举报

shopping

中级会员

积分
410
板凳
发表于 2019-10-18 12:16:18 | 显示全部楼层
jefferyzhang 发表于 2019-9-17 09:04
1.2已经支持mini batch输入了。
我们支持多模型同时跑,NPU是分时复用的,跟cl没啥关系。你两个模型都可 ...

你好,老哥你说的这个NPU的 “分时复用” ,是不是类似于加了把互斥锁,一个 线程/进程 调用了NPU ,其他 线程/进程  只能等待?
回复

使用道具 举报

shopping

中级会员

积分
410
地板
发表于 2019-10-22 11:08:58 | 显示全部楼层
本帖最后由 shopping 于 2019-10-22 11:15 编辑
jefferyzhang 发表于 2019-9-17 17:59
1.2版本开始已经支持batch输入了,这种做法没有问题。
或者两个进程(线程)单独送自己的数据给不同模型 ...

你好,C++ 将两张图拼成一个batch,是不是将
  1. rknn_input inputs[1];
  2.   rknn_output outputs[2];
  3.   rknn_tensor_attr outputs_attr[2];
复制代码

改为:
  1. rknn_input inputs[2];
  2.   rknn_output outputs[4];
  3.   rknn_tensor_attr outputs_attr[4];
复制代码

结果输出的时候 inputs[0] 与 outputs[0]、outputs[1] , inputs[1] 与 outputs[2]、outputs[3] 是对应的吧?
回复

使用道具 举报

shopping

中级会员

积分
410
5#
发表于 2019-10-22 11:20:30 | 显示全部楼层
jefferyzhang 发表于 2019-9-17 09:04
1.2已经支持mini batch输入了。
我们支持多模型同时跑,NPU是分时复用的,跟cl没啥关系。你两个模型都可 ...

你好,C++里将数据拼成一个 batch ,是不是将:
  1. rknn_input inputs[1];
  2. rknn_output outputs[2];
  3. rknn_tensor_attr outputs_attr[2];
复制代码

改为:
  1. rknn_input inputs[2];
  2. rknn_output outputs[4];
  3. rknn_tensor_attr outputs_attr[4];
复制代码

RKNN会将 inputs[0]与outputs[0]、outputs[1] , inputs[1]与outputs[2]、outputs[3]  对应好输出,是吧?
回复

使用道具 举报

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

本版积分规则

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


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