Toybrick

标题: 速度测量似乎不准 [打印本页]

作者: nopattern    时间: 2019-7-24 15:42
标题: 速度测量似乎不准
本帖最后由 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    时间: 2019-7-26 08:32
eval_perf出来的是在npu的时间,不包括传输过程和其他时间损耗。实际时间是会比eval_perf的时间偏大些。
作者: nopattern    时间: 2019-7-26 15:11
偏大可以理解,但是偏得有点多了。




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