[论文解读] Deep Learning with Limited Numerical Precision
本文展示了仅使用16位定点数与随机舍入的深度神经网络训练方法,可实现与32位浮点数训练几乎相同的分类准确率。其主要贡献在于提出了一种软硬件协同设计方法,通过低开销的FPGA加速器,利用深度学习对噪声的容忍性以及随机舍入技术,有效缓解了精度损失,从而实现高吞吐量、高能效的训练。
Training of large-scale deep neural networks is often constrained by the available computational resources. We study the effect of limited precision data representation and computation on neural network training. Within the context of low-precision fixed-point computations, we observe the rounding scheme to play a crucial role in determining the network's behavior during training. Our results show that deep networks can be trained using only 16-bit wide fixed-point number representation when using stochastic rounding, and incur little to no degradation in the classification accuracy. We also demonstrate an energy-efficient hardware accelerator that implements low-precision fixed-point arithmetic with stochastic rounding.
研究动机与目标
- 研究是否可在不显著降低准确率的前提下,仅使用低精度定点数对深度神经网络进行训练。
- 评估不同舍入方案(特别是随机舍入)在低精度设置下的网络训练影响。
- 设计并实现一种支持低精度定点数运算的硬件加速器,且面积与功耗开销极低。
- 通过算法噪声容忍性与底层硬件近似技术的协同优化,实现高能效、高吞吐量的深度学习训练。
提出的方法
- 作者在深度神经网络训练中使用16位定点数表示权重、激活值和梯度。
- 在算术运算中应用随机舍入,以减少系统性偏差并提升收敛性能。
- 在FPGA上实现了一种波前阵列架构,用于高效执行矩阵乘法运算。
- 通过每个输出使用单个DSP单元实现随机舍入,利用LFSR生成随机数以支持舍入操作。
- 通过检测最高有效位(MSB)中的特定模式来检测溢出与下溢,并在需要时启用饱和处理。
- 设计采用紧凑的流水线数据通路与局部互连结构,以最小化延迟并最大化工作频率。
实验结果
研究问题
- RQ1是否可以仅使用16位定点数对深度神经网络进行有效训练?
- RQ2舍入模式的选择(特别是随机舍入与传统舍入)如何影响训练的稳定性和准确率?
- RQ3在定点数加速器中集成随机舍入技术的硬件开销有多大?
- RQ4低精度定点数加速器能否在吞吐量与能效方面与通用处理器及GPU相媲美?
主要发现
- 在MNIST与CIFAR10数据集上,使用16位定点数与随机舍入训练的深度网络,其分类准确率几乎与32位浮点数训练结果完全一致。
- 基于FPGA的加速器在7 W功耗下实现260 G-ops/s的吞吐量,能效达37 G-ops/s/W。
- 随机舍入模块仅增加了28个DSP单元(占总DSP资源的4%以下),证明了其硬件开销极低。
- 波前阵列设计通过在前序操作完成前即复用乘加(MAC)单元,实现了高吞吐量。
- 该系统在Kintex-325T FPGA上以166 MHz运行,其能效相比通用CPU与GPU提升了10至30倍。
- 结果证实,随机舍入对低精度训练至关重要,因为传统舍入方案会导致性能显著下降。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。