会员登录|免费注册|忘记密码|管理入口 返回主站||保存桌面
SNPE-CPU\SNPE-GPU推理inception-v3total手机「SNPE-CPU\SNPE-GPU推理inception-v3」
2025-02-12IP属地 湖北6

SNPE 是神经网络在骁龙平台上推理的开发套件,方便开发者在使用高通芯片的设备上加速AI应用。

无论是芯片制造商的发布会还是各大厂商的手机发布会,AI能力一直是大家谈论的焦点。

骁龙888采用了新一代的Hexagon 780架构Hexagon Tensor Processer(HTP,算力从865的15TOPS提升到了26TOPS888+ 进一步提升到了32TOPS尽管高通没有提供算力的细节,但从TOPS数值来看,确实很强大。

那么作为开发者,有没有办法使用HTP加速自己的AI模型推理呢?答案是肯定的,下面我们来一起探索如何使用888的HTP推理inceptionV3。

本文包含以下两部分。

  1. 使用手机的CPU和GPU推理inceptionV3
  2. 使用SNPE工具在HTP上推理inceptionV3

首先,我们用手机的CPU和GPU做模型推理,并记录他们的推理速度。这里我用搭载888的Redmi K40 pro开始。

(1模型和数据采用上一篇 上手SNPE-推理inceptionV3 准备好的inception_v3.dlc 和 data

  • 将数据和模型推到手机/data/local/tmp/incpv3
 

(2)准备SNPE对应的库libSNPE.so和测试工具snpe-net-run

  • 将需要的SNPE库libSNPE.so,libc++_shared.so和测试的应用snpe-net-run推进手机 /data/local/tmp/incpv3/
 

(3)  在CPU和GPU上推理inceptionV3

  • 在adb shell 里设置环境变量
 
  • 在CPU上推理inceptionV3, 输出在output_cpu
 
  • 在GPU上推理inceptionV3, 输出在output_gpu. snpe-net-run --use_gpu
 
  • 解析SNPEDiag.log 得到CPU和GPU的推理速度.

pull outputs 到主机

 

用snpe-diagview 解析SNPEDiag.log 得到推理的时间

 

 测试结果是在单一手机上的默认设置得到,并不代表任何性能指标


(1)量化模型

  • 由于888 HTP仅支持定点INT8和INT16推理,所以需要对模型做量化,这里使用INT8。
  • SNPE 提供了后量化工具 snpe-dlc-quantize.
  • 加上选项--enable_htp,这样会针对888HTP生成一些cache数据,提升初始化速度。这个选项具有版本依赖性,如果更换了SNPE的版本,那么需要重新生产cache。
  • 一般后量化需要的样例数据在100-200,这里仅仅演示功能,采用较少的数据。
 

(2)准备888 HTP 需要的dsp库

  • libsnpe_dsp_domains_v3.so
  • libsnpe_dsp_v68_domains_v3_skel.so
 

(3)在888 HTP上推理inceptionV3

  • 设置环境变量,除了LD_LIBRARY_PATHPATH之外,需要设定ADSP_LIBRARY_PATH来指向libsnpe_dsp_v68_domains_v3_skel.so 的路径。
 
  • snpe-net-run --use_dsp
 
  1. 出现错误 The selected runtime is not available on this platform
  2. 这是因为商用手机只给开发者开放了HTP 的 unsignedPD( 具体可以参考Hexagon DSP SDK , 里面详细介绍了什么是unsigned PD),需要加上如下选项。
  • snpe-net-run --use_dsp --platform_options unsignedPD:ON
 

(4)推理速度的比较

依然用snpe-diagview 解析SNPEDiag.log 得到推理的时间

 

这里每层的时间单位不是us, 应该是cycles

  • 结果显示,888的HTP推理一次inceptionV3的时间是10.7ms.

 测试结果是在单一手机上的默认设置得到,并不代表任何性能指标。如果需要测试性能,需要设定性能模式和其他一些选项的设定,可以使用SNPE里面的snpe-throughput-net-run测试工具。


  • 使用888手机的CPU和GPU推理inceptionV3
  • 使用SNPE工具在888手机的HTP上推理inceptionV3

<path_to_snpe_sdk>/snpe-1.52.0.2724/doc/html/index.html