Toybrick

标题: 【已解决】同样模型C++版本的inference时间要比Python版本慢 [打印本页]

作者: protossw512    时间: 2019-3-7 09:51
标题: 【已解决】同样模型C++版本的inference时间要比Python版本慢
本帖最后由 protossw512 于 2019-3-8 07:11 编辑

已经发现了问题所在,原因是我在init模型的时候加入了RKNN_FLAG_COLLECT_PERF_MASK的flag,导致模型inference的速度变慢,其实不加这个flag也能够测速。

我们在将代码从python移植到c++的时候发现同样的模型在c++上要比python的速度慢一倍左右,不知道具体是什么原因。我们的模型在python上能跑到101216us,但是在c++上只能跑到197029us

除了在我们的模型上做测试,我们还在官方给出的example上进行了测试。
同样的mobilenet_v1模型,python上面的eval_perf的结果是4733um,把转好的.rnkk文件用c++的mobilenet code sample读进去跑perf_run则需要10067um。


c++的sample代码是在rk3399pro上直接编译的,并不是交叉编译的。
是因为c++的rknn版本过低么?

另外我在python mobilenet_v1的example script上面,自己测试了时间:
  1. for _ in range(20):
  2.     start = time.time()
  3.     outputs = rknn.inference(inputs=[img])
  4.     end = time.time()
  5.     print('eval time: {}'.format(end-start))
复制代码
发现实际inference的时间是115ms左右,和eval_perf的结果(47ms)相差的比较远,是因为调用的overhead吗?
作者: protossw512    时间: 2019-3-7 16:48
有官方大佬能帮忙确认下这个问题不。。。




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