Toybrick

速度测量似乎不准

nopattern

注册会员

积分
162
楼主
发表于 2019-7-24 15:42:02    查看: 10743|回复: 2 | [复制链接]    打印 | 只看该作者
本帖最后由 nopattern 于 2019-7-24 15:56 编辑

          在rk3399pro 上运行,我分别用time.time() 和eval_perf测量运行时间,发现两者相差很大。
           time 测量是80ms, 而eval_perf 是43.5 ms,差距比较大。

D RKNNAPI: ==============================================
D RKNNAPI: RKNN VERSION:
D RKNNAPI:   API: 0.9.5 (c12de8a build: 2019-05-06 20:18:39)
D RKNNAPI:   DRV: 0.9.6 (c12de8a build: 2019-05-06 20:10:17)
D RKNNAPI: ==============================================
done
rknn only 117 ms
rknn only 78 ms
total 96 ms
--> Begin evaluate model performance
========================================================================
                               Performance                              
========================================================================
Total Time(us): 43505
FPS: 22.99
========================================================================

测试用的代码如下:
  
  1. img = img_preprocess(imgBGR)

  2.     print('--> load rknn model')
  3.     ret = rknn.load_rknn('./rknn/efficient_b2.rknn')
  4.     if ret != 0:
  5.         print('load rknn  failed')
  6.         exit(ret)
  7.     print('done')

  8.     print('--> Init runtime environment')
  9.     ret = rknn.init_runtime()
  10.     if ret != 0:
  11.         print('Init runtime environment failed')
  12.         exit(ret)
  13.     print('done')


  14.     ########## warm up
  15.     ########## warm up
  16.     # sdk_version = rknn.get_sdk_version()
  17.     # print(sdk_version)

  18.     # Inference
  19.     start = time.time()
  20.     #print('--> Running model ')
  21.     outputs = rknn.inference(inputs=[img])
  22.     #show_outputs(outputs)
  23.     #print(outputs)
  24.     end = time.time()
  25.     print('rknn only %.f ms' % ((end - start) * 1000))

  26.     # Inference
  27.     start = time.time()
  28.     #print('--> Running model ')
  29.     outputs = rknn.inference(inputs=[img])
  30.     # show_outputs(outputs)
  31.     # print(outputs)
  32.     end = time.time()
  33.     print('rknn only %.f ms' % ((end - start) * 1000))

  34.     out = get_multi_detect(anchors,outputs[2],outputs[0],outputs[1])
  35.     end = time.time()
  36.     print('total %.f ms' % ((end - start) * 1000))
  37.     #print(out)


  38.     #imshow_boxes_p8(imgBGR,out)
  39.     #perf
  40.     print('--> Begin evaluate model performance')
  41.     perf_results = rknn.eval_perf(inputs=[img])
  42.     print('done')

  43.     rknn.release()
复制代码





回复

使用道具 举报

troy

版主

积分
2374
沙发
发表于 2019-7-26 08:32:28 | 只看该作者
eval_perf出来的是在npu的时间,不包括传输过程和其他时间损耗。实际时间是会比eval_perf的时间偏大些。
回复

使用道具 举报

nopattern

注册会员

积分
162
板凳
 楼主| 发表于 2019-7-26 15:11:17 | 只看该作者
偏大可以理解,但是偏得有点多了。
回复

使用道具 举报

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

本版积分规则

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


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