看了nihui老师的文章
https://aijishu.com/a/1060000...
我也很好奇,Radxa Orion O6 NPU的算力是否能达到标称的28.8 TOPS呢?
构造高计算密度的conv模型
根据nihui老师的提示,构造一个以卷积为主的onnx模型,用onnx_tool统计mac数
import onnx_tool
onnx_tool.model_profile('./model.onnx')
该模型Forward_MACs=36,270,243,840,即OPs=MACs*2=72,540.48768(MOPs)
板端NPU推理实测
实测的FPS为277(frame per second)
OPs与onnx_tool统计的MACs*2的数值一致:为72540.48768(MOPs)
NPU算力的计算公式:FPS*OPs,
即277.01631332144507(frame/s)*72540.48768(Mops)= 20.094898463653305(Tops)
为什么没有到28.8Tops呢?此时猜测跟MAC利用率没有打满有关。
profiling report数据
用SDK提供的profiling 工具,也同样测试该模型的性能如下:
profiling的FPS为306.7(frame per second)
OPs为72509(MOPs)
此时根据算力公式计算FPS*OPs,
即得:306.70377782378335 (frame/s)* 72509.0304 (Mops)= 22.23879355 (Tops)
Average MAC Utilization 为75.4%
推算NPU极限算力
根据Profiling report的数值推算NPU的极限算力:
22.23879355/75.4%=29.5(Tops)