> 文章列表 > 45.现有移动端开源框架及其特点——QNNPACK-1

45.现有移动端开源框架及其特点——QNNPACK-1

45.现有移动端开源框架及其特点——QNNPACK-1

全称:Quantized Neural Network PACKage(量化神经网络包)

  • 开源时间:2018年10月
  • 开源用户:Facebook
  • GitHub地址:https://github.com/pytorch/QNNPACK

45.1 特点:

  • 低密度卷积优化函数库;
  • 可在手机上实时运行Mask R-CNN 和 DensePose;
  • 能在性能受限的移动设备中用 100ms 以内的时间实施图像分类;

45.2 QNNPACK 如何提高效率?

  • QNNPACK 使用与安卓神经网络 API 兼容的线性量化方案
    • QNNPACK 的输入矩阵来自低精度、移动专用的计算机视觉模型
    • 其它库在计算A和B矩阵相乘时,重新打包 A 和 B 矩阵以更好地利用缓存层次结构,希望在大量计算中分摊打包开销,QNNPACK 删除所有计算非必需的内存转换,针对 A和B矩阵相乘适用于一级缓存的情况进行了优化。
      45.现有移动端开源框架及其特点——QNNPACK-1
  • 优化了L1缓存计算,不需要输出中间结果,直接输出最终结果,节省内存带宽和缓存占用
    • 常规实现:在量化矩阵-矩阵乘法中,8位整数的乘积通常会被累加至 32 位的中间结果中,随后重新量化以产生 8 位的输出
        <