AI Benchmark v4 Device选择:Google Pixel 4/XL简析

田海立@CSDN 2020-10-07

AI Benchmark v4测试项更新以及榜单数据解读知道了AI Benchmark执行的时候可以选择NNAPI,也可以直接用TFLite里的Delegate。Google Pixel 4/XL里用的芯片是高通骁龙855+Google TPU Edge,设备如何选择,选择的是否合理,这里简要分析之。

榜单soc数据拷贝下来,复制到Excel表格里,简单分析一下。这里只留取Snapdragon 855和Snapdragon 855 + Pixel Neural Core:

可以看到执行Device的选择:

  • Snapdragon 855用的是hg,也就是INT8是Hexagon Delegate;FP16是GPU Delegate,这里指定了执行Device及其实现方式(也可以通过NNAPI来让NN Runtime自主选择的)。
  • Google Pixel 4的soc Snapdragon 855 + Pixel Neural Core用的是nn,也就是无论INT8还是FP16选择的都是NNAPI,让NN Device的HIDL实现来决定具体由哪个Device来执行。

SOC Snapdragon 855 + Pixel Neural Core里的NN Device里除了Qualcomm 855里的Hex. 690 for INT8, Adreno 640 for FP16, 还有TPU Edge for INT8。HIDL实现里上报的能力(Capabilities)对于INT8类型,TPU Edge指标是大于Hex. 690的,所以NNAPI执行选择Device时,会自动选择TPU Edge for INT8, Adreno 640 for FP16

再来对比一下两者指标(Pixel 4 vs Snapdragon 855):

  1. INT8的NNAPI1.1数据竟然TPU Edge不敌Hex. 690,当然它们的实现路径不同,Hexagon直接是TFLite Delegate;TPU Edge通过NNAPI实现,这里如果模型中有算子支持有问题,性能就会大不同;
  2. FP16的NNAPI1.2数据Pixel 4 远低于vs Snapdragon 855,都是GPU执行的,也只是路径不同而已,855直接是TFLite Delegate;Pixel 4通过NNAPI实现。同一Device,NNAPI性能低这么多,应该是算子支持有问题。

如果Google不去关注这个榜单,不深究数据,我们无从知晓内部具体实现,就没法更改。但对于AI Benchmark来说,可以比较更客观一点的可以是:对于Pixel 4的FP16选择GPU Delegate。这样,INT8数据因为无从知道如何选择NN Device,通过NNAPI让NN Runtime来自主选择;对于FP16,就直接通过TFLite Delegate指定GPU设备。

扫描二维码关注公众号,回复: 11876301 查看本文章

猜你喜欢

转载自blog.csdn.net/thl789/article/details/108948568