[论文解读] Phoenix: A Low-Precision Floating-Point Quantization Oriented Architecture for Convolutional Neural Networks
Phoenix 提出了一种面向归一化的 8 位浮点数量化方法,用于卷积神经网络,在无需校准、微调或重新训练的情况下,实现了可忽略的精度损失(top-1 损失 ≤0.5%,top-5 损失 ≤0.3%)。该方法使硬件处理器设计极为高效,相较于最先进加速器,AlexNet 和 VGG16 的性能分别提升 3.32× 和 7.45×,同时功耗仅为 GPU 的 151 分之一。
Convolutional neural networks (CNNs) achieve state-of-the-art performance at the cost of becoming deeper and larger. Although quantization (both fixed-point and floating-point) has proven effective for reducing storage and memory access, two challenges -- 1) accuracy loss caused by quantization without calibration, fine-tuning or re-training for deep CNNs and 2) hardware inefficiency caused by floating-point quantization -- prevent processors from completely leveraging the benefits. In this paper, we propose a low-precision floating-point quantization oriented processor, named Phoenix, to address the above challenges. We primarily have three key observations: 1) 8-bit floating-point quantization incurs less error than 8-bit fixed-point quantization; 2) without using any calibration, fine-tuning or re-training techniques, normalization before quantization further reduces accuracy degradation; 3) 8-bit floating-point multiplier achieves higher hardware efficiency than 8-bit fixed-point multiplier if the full-precision product is applied. Based on these key observations, we propose a normalization-oriented 8-bit floating-point quantization method to reduce storage and memory access with negligible accuracy loss (within 0.5%/0.3% for top-1/top-5 accuracy, respectively). We further design a hardware processor to address the hardware inefficiency caused by floating-point multiplier. Compared with a state-of-the-art accelerator, Phoenix is 3.32x and 7.45x better in performance with the same core area for AlexNet and VGG16, respectively.
研究动机与目标
- 解决低精度量化导致深度 CNN 精度下降的问题,且无需校准、微调或重新训练。
- 通过设计专用处理器架构,克服浮点数乘法器的硬件低效问题。
- 通过 8 位浮点数量化减少内存带宽和存储需求,同时保持高模型精度。
- 通过软硬件协同设计,实现在 VGG16 和 ResNet152 等深度网络上的高效推理。
提出的方法
- 提出一种面向归一化的 8 位浮点数量化方法,在量化前对激活值进行归一化,以减少精度损失。
- 基于权重和激活值的统计分布,采用非均匀量化方法,以最小化量化误差。
- 设计一种完全流水线化、基于数据流的处理单元(PE)架构,通过在多个 PE 间共享输入激活值和权重,降低片上带宽需求。
- 实现具备 8 位浮点数乘法器的硬件加速器,保留全精度乘积,从而在硬件效率上优于定点数方案。
- 将量化方法与处理器设计集成,实现无需额外校准或重新训练的端到端低精度推理。
- 在 TSMC 28nm 工艺下优化电路布局与布线,以实现高性能与高能效。
实验结果
研究问题
- RQ1在深度 CNN 中,8 位浮点数量化是否能实现比 8 位定点数量化更低的量化误差?
- RQ2在不进行校准或重新训练的情况下,对激活值进行归一化是否能减少精度下降?
- RQ3当保留全精度乘积时,8 位浮点数乘法器是否能实现比 8 位定点数乘法器更高的硬件效率?
- RQ4定制的处理器架构是否能充分挖掘低精度浮点数量化的优势,同时将面积和能耗开销降至最低?
- RQ5与最先进加速器和 GPU 相比,所提出的系统在深度 CNN 推理中的性能和能效表现如何?
主要发现
- 所提出的面向归一化的 8 位浮点数量化方法在 VGG16 等深度 CNN 上实现了 ≤0.5% 的 top-1 精度损失和 ≤0.3% 的 top-5 精度损失,且无需校准、微调或重新训练。
- Phoenix 在 AlexNet 上相比最先进加速器实现 3.32× 的性能提升,在 VGG16 上实现 7.45× 的性能提升,且核心面积相同。
- Phoenix 处理器在 TSMC 28nm 工艺下实现峰值性能 2.048 TMAC/s,核心面积为 1.44 mm²,功耗为 1091.2 mW。
- Phoenix 在单图像推理任务中功耗仅为 Nvidia TITAN Xp GPU 的 151 分之一,展现出卓越的能效优势。
- 硬件设计通过完全流水线化的数据流架构,在处理单元之间共享输入,显著降低了内部带宽需求。
- 8 位浮点数乘法器中保留全精度乘积的设计,相比定点数方案实现了更高的硬件效率。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。