Toybrick

init_runtime()过程每次都要花费很多时间?

kepurSong

中级会员

积分
423
楼主
发表于 2019-9-23 10:51:35    查看: 26515|回复: 10 | [复制链接]    打印 | 只看该作者
1,我是用YOLOv3将近70M的rknn权重的文件,init_runtime需要将近20分钟,这个是正常执行时间吗?可以进行加速吗?或者说,加速后,一般时间能到多少?
2,我用Unet网络将近7M的rknn权重的文件,init_runtime需要将近2分钟时间?
回复

使用道具 举报

troy

版主

积分
2374
沙发
发表于 2019-9-23 14:24:10 | 只看该作者
这个时间不太正常,建议更新系统固件到V1.5,更新rknn-toolkit到V1.2,再进行测试。
回复

使用道具 举报

kepurSong

中级会员

积分
423
板凳
 楼主| 发表于 2019-9-23 14:41:15 | 只看该作者

PC电脑,pre_compile=True加速报错?

本帖最后由 kepurSong 于 2019-9-23 14:46 编辑
troy 发表于 2019-9-23 14:24
这个时间不太正常,建议更新系统固件到V1.5,更新rknn-toolkit到V1.2,再进行测试。 ...

为什么我在PC电脑上用pre_compile=True加速,竟然报错了?说是不能再模拟器上面加速环境是,rknn1.1.0, Ubuntu-linux-64,不是rk3399pro板子

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

troy

版主

积分
2374
地板
发表于 2019-9-23 17:31:37 | 只看该作者
kepurSong 发表于 2019-9-23 14:41
为什么我在PC电脑上用pre_compile=True加速,竟然报错了?说是不能再模拟器上面加速环境是,rknn1.1.0, Ub ...

文档里面有写,开启预编译,就不能在PC上模拟了。运行提示也写的很清楚了,PC模拟器上不能运行预编译的模型。
回复

使用道具 举报

kepurSong

中级会员

积分
423
5#
 楼主| 发表于 2019-9-23 20:47:36 | 只看该作者
troy 发表于 2019-9-23 17:31
文档里面有写,开启预编译,就不能在PC上模拟了。运行提示也写的很清楚了,PC模拟器上不能运行预编译的模 ...

你理解错了我的问题,我问的是:
1,以前我没有预编译,直接在rk3399pro上面运行,发现每次模型的init_runtime时间都特别长,现在我想通过pre_compile来减少模型的init_runtime,我尝试在PC上面进行预编译,但是预编译报了上面的错误?
2,官方文档上面,不是说,预编译可以在PC搭建的rknn-toolkit 1.1.0环境上面进行预编译吗?
回复

使用道具 举报

troy

版主

积分
2374
6#
发表于 2019-9-24 08:35:11 | 只看该作者
kepurSong 发表于 2019-9-23 20:47
你理解错了我的问题,我问的是:
1,以前我没有预编译,直接在rk3399pro上面运行,发现每次模型的init_ru ...

我看懂你的意思了。
1.pre_compile是可以加快init_runtime的速度,预编译报的错误是TensorFlow相关的,你可以看下最后几行的日志,看起来是跟cuDNN环境有关系,确认一下TensorFlow的执行环境是否正常。因为在开启量化和预编译等操作时,rknn会调用TensorFlow跑一遍推理,显然此处TensorFlow报错了。
2.预编译是可以在PC上没错。你也可以尝试一下使用最新最新发布rknn-toolkit1.2.0在PC上预编译试一下。但是建议先排除TensorFlow的问题。
回复

使用道具 举报

kepurSong

中级会员

积分
423
7#
 楼主| 发表于 2019-9-24 10:19:01 | 只看该作者
troy 发表于 2019-9-24 08:35
我看懂你的意思了。
1.pre_compile是可以加快init_runtime的速度,预编译报的错误是TensorFlow相关的,你 ...

你这样一说,我好像明白为什么报错了:
1,我Ubuntu上面只有tensorflow-gpu==1.13.1的版本,没有cpu的版本,这样会不会报错?
2,你能推荐一个和rknn-toolkit 1.1.0匹配的tensorflow版本吗?我看官网资料上面没有推荐
回复

使用道具 举报

troy

版主

积分
2374
8#
发表于 2019-9-24 10:22:02 | 只看该作者
kepurSong 发表于 2019-9-24 10:19
你这样一说,我好像明白为什么报错了:
1,我Ubuntu上面只有tensorflow-gpu==1.13.1的版本,没有cpu的版 ...

1.你可以自己找个TensorFlow的demo,跑一下TensorFlow,确保你的TensorFlow环境正常
2.rknn-toolkit1.1.0我有用过1.12和1.14版本的TensorFlow都是可以的,我觉得首先还是要把TensorFlow环境弄好,去百度一下这些cuDNN的错误,先解决一下。
回复

使用道具 举报

kepurSong

中级会员

积分
423
9#
 楼主| 发表于 2019-9-24 15:26:14 | 只看该作者
troy 发表于 2019-9-24 10:22
1.你可以自己找个TensorFlow的demo,跑一下TensorFlow,确保你的TensorFlow环境正常
2.rknn-toolkit1.1.0 ...

感谢大神的指导,我修改了一个tensorflow的版本,发现可以预编译成功了!
令人惊讶的是,我YOLOv3的70Mrknn权重,预编译后,体积反而变大了,是73M左右,但是init_runtime的时间,从700s降低到了3s左右,效果非常好。
但是我比较疑惑这个700到3s是如何做到的?
回复

使用道具 举报

troy

版主

积分
2374
10#
发表于 2019-9-24 16:28:54 | 只看该作者
kepurSong 发表于 2019-9-24 15:26
感谢大神的指导,我修改了一个tensorflow的版本,发现可以预编译成功了!
令人惊讶的是,我YOLOv3的70Mrk ...

NPU最终执行的其实都是预编译后的代码,只是如果rknn模型没开预编译,就会导致在init_runtime的时候执行预编译过程,这个过程在板子上执行确实会比较慢,但是像你这么慢要700s的还是第一次见
回复

使用道具 举报

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

本版积分规则

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


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