中文

ARM CPU 上二值与三值 CNN 的快速矩阵乘法

机器学习 2022-05-20 v1

摘要

低比特量化神经网络在实际应用中备受关注,因为它们显著减少了内存与计算资源的消耗。二值神经网络在内存与计算上均高效,因其每个权重与激活仅需一位,并可使用布尔逻辑与位计数操作计算。具有三值权重与激活、以及二值权重与三值激活的 QNN 旨在相较 BNN 提升识别质量,同时保持低比特宽度。然而,其高效实现通常考虑在 ASIC 与 FPGA 上,限制了其在现实任务中的适用性。同时,对高效识别需求最旺盛的领域之一是在移动设备上使用其 CPU 进行识别。然而,目前已知 TBN 与 TNN 无快速实现,仅有用于 BNN 推理的 daBNN 库。本文提出面向 ARM 架构移动设备的三值、三值-二值与二值矩阵乘法新快速算法。在我们的算法中,三值权重以 2 位编码表示,二值以 1 位表示。这使我们能用布尔逻辑操作替换矩阵乘法,借助 ARM NEON SIMD 扩展可同时计算 128 位。矩阵乘法结果累积于 16 位整数寄存器中。我们还对左、右矩阵中的值进行特殊重排。这一切使我们能高效计算矩阵乘积,同时相较 daBNN 中的算法最小化加载与存储次数。我们的算法可用于实现 TNN、TBN 与 BNN 的卷积层与全连接层推理。我们在 ARM Cortex-A73 CPU 上实验评估,并将其推理速度与全精度、8 位与 4 位量化矩阵乘法的有效实现进行比较。

关键词

引用

@article{arxiv.2205.09120,
  title  = {Fast matrix multiplication for binary and ternary CNNs on ARM CPU},
  author = {Anton Trusov and Elena Limonova and Dmitry Nikolaev and Vladimir V. Arlazarov},
  journal= {arXiv preprint arXiv:2205.09120},
  year   = {2022}
}

备注

Accepted to 26th International Conference on Pattern Recognition (ICPR 2022)