
骁龙(SnapDragon)神经处理引擎(SNPE)是一个针对高通骁龙加速深层神经网络的运行时软件,高通在优快云和其官网都提供了下载。
本文以SNPE 1.23为基准,将结合高通官方的SDK说明文档(高通在优快云也提供了开发者社区,中文社区论坛,以及SNPE部分文档),介绍SNPE这一高通官方的神经网络处理引擎开发包。
开发中有疑问可在高通的CreatePoint检索相关文档或者在SNPE论坛提交疑问,或发邮件到support.cdmatech@qti.qualcomm.com。
因为SNPE的特殊性,本文重点考察:
- 不同runtime架构特点,调度关系,尤其是对DSP/AIP的HVX与HTA;
- 性能:CPU,FXP-CPU,GPU,GPU-FP16,FXP-DSP/FXP-AIP(FXP是int8量化);
- 模型的int8量化与DSP/AIP的加载时的量化策略。
本文将以如下目录展开:
- 高通与骁龙处理器
- SNPE特点与工作流
- SNPE组成架构
- SNPE性能与精度
- int8量化策略
1. 高通与骁龙处理器
这部分的内容改写自百度百科的词条:骁龙。高通骁龙是Qualcomm Technologies(美国高通公司)的产品。
1.1 历代产品
在2013年之前,骁龙处理器分为S1,S2,S3,S4四个层级,以区分不同的四代产品。
- 骁龙S1(2007-2