《Training Deep Neural Networks Using Posit Number System》(一)
好的,我根据你的指令,针对你上传的论文《Training Deep Neural Networks Using Posit Number System》做了完整分析。总结如下:
1. 论文的主要内容和研究方向
本论文主要研究如何在深度神经网络(DNN)训练中使用Posit数值格式,以减少计算资源和能耗,同时保持模型精度。其研究方向是低精度数值表示在DNN训练阶段的应用,而不仅仅是推理阶段。
主要贡献:
- 提出了一套用Posit数在DNN中训练的方法。
- 成功地在ImageNet图像分类任务上用16位Posit数完成训练,精度无损。
- 设计并优化了一个能效更高的Posit乘加(MAC)硬件单元。
2. 研究方法介绍(含截图)
论文提出了完整的Posit训练策略,包括:
(1)Posit转换算法
把实数转为Posit格式,算法细节见论文【算法1】:
📷截图如下:
(源自论文Fig.3,训练流程插入Posit转换)
(2)训练稳定化策略
-
Warm-up训练:训练初期(1-5个epoch)用FP32提高收敛性。
-
基于分布的缩放(Scaling):使用以log2为中心的缩放,避免数据落在Posit低精度区域。公式如下:
[
S_f = 2^{(\text{center} + \sigma)}
] -
动态范围调整:不同层选择不同的Posit exponent bits(如权重、激活用es=1,梯度用es=2)。
(3)硬件设计
- 设计了优化版的Posit编码器与解码器(见Fig.5、Fig.6)。
- 实现了一个完整的Posit MAC单元,并用TSMC 28nm工艺综合验证。
3. 研究结果分析(含对比实验、引用项目开源地址)
(1)训练实验
| 数据集 | 使用模型 | 基线(FP32)精度 | Posit训练精度 |
|---|---|---|---|
| Cifar-10 | Cifar-ResNet-18 | 93.40% | 92.87% |
| ImageNet | ResNet-18 | 71.02% | 71.09% |
- 实验结论:用8/16位Posit数可以做到无调参直接收敛到FP32水平。
Posit数设置细节:
- CONV层:前向与权重更新用(8,1),反向用(8,2)
- BN层:统一用(16,1)/(16,2)
(2)硬件实验
| 单元 | 功耗 (mW) | 面积 (μm²) | 相比FP32功耗下降 |
|---|---|---|---|
| Posit(8,1) MAC | 0.45 | 1208 | -83% |
| Posit(16,2) MAC | 1.60 | 3897 | -36% |
- 硬件结论:功耗下降22%-83%,面积下降6%-76%。
(3)被引用项目开源地址
论文中提到的几个重要项目:
- Deep Positron:基于Posit的DNN设计
🔗开源链接:Deep Positron GitHub - Posit MAC Generator by Zhang et al.
🔗文章:Efficient Posit Multiply-Accumulate Unit Generator
(暂未发现开源代码,仅有论文)
4. 论文出处及等级
- 会议:IEEE 32nd International System-on-Chip Conference (SOCC 2019)
- 检索情况:IEEE会议,通常CCF认定为C类会议。
- 对应领域:电子与电路设计(EDA)、深度学习加速器。
5. 是否有相关开源代码
本文作者并未直接提供完整开源代码。
但部分相关基础项目(比如Deep Positron)已有开源,且论文中提及的Posit硬件生成器也有论文可参考。
6. 原文引用出处(部分关键内容)
| 内容 | 原文出处 |
|---|---|
| 训练策略总结 | III. POSIT TRAINING STRATEGY AND EXPERIMENTS RESULTS |
| 硬件优化结构 | IV. ENERGY-EFFICIENT POSIT MAC ARCHITECTURE |
| 实验结果 | Table III, Table V |
| Posit基本定义 | II. BACKGROUND |
好的,我来针对论文中关于“设计并优化能效更高的Posit乘加(MAC)硬件单元”这一点,进行更详细、深入的分析总结:
关于Posit MAC硬件单元设计与优化的详细说明
本论文在提出Posit数在DNN训练应用后,为了配套有效硬件实现,又设计并优化了专门用于Posit数乘加运算(MAC,Multiply and Accumulate)的硬件单元。具体内容分为以下几个方面:
1. 传统Posit MAC架构存在的问题
传统的Posit MAC实现方法(如参考文献[6] Zhang等人提出的架构)采用如下流程:
- 输入的Posit数通过Decoder(解码器),转为内部浮点数(FP格式)
- 浮点数执行标准浮点乘加(FPMAC)运算
- 运算结果再通过Encoder(编码器)重新转为Posit格式输出
这种架构虽然功能完整,但存在两个明显问题:
- 延迟高:因为Decoder和Encoder本身的延迟不小,占到整个Posit MAC总延迟的40%以上。
- 能效不足:中间转换到浮点数,导致能耗增加,不完全发挥Posit本身的小数据量优势。
2. 本文提出的优化设计
论文针对上述问题,提出了优化版Decoder和Encoder设计,以缩短关键路径,降低功耗和面积。具体方法包括:
(1)优化的Decoder设计(解码器)
- 原先设计中,解码过程需要加一(Add-One)运算,影响了延迟。
- 本文改为:
- 取消加法器
- 用两条并行左移路径(Left Shifter)代替。
- 在左移后插入一个轻量的左移一位(<<1)操作,恢复功能。
📷 结构对比图(论文Fig.5):
- (a) 传统Decoder
- (b) 优化后的Decoder
效果:Decoder延迟降低了约15%-30%。
(2)优化的Encoder设计(编码器)
- 类似Decoder,Encoder也面临着处理regime、exponent、mantissa三个部分的复杂逻辑。
- 本文在Encoder中也采用了:
- 并行路径分流
- 用位移(Shift)代替复杂逻辑运算。
📷 结构对比图(论文Fig.6):
- (a) 传统Encoder
- (b) 优化后的Encoder
效果:Encoder延迟降低了约25%-35%。
(3)总体Posit MAC硬件改进
- 用优化版Encoder+Decoder + 标准浮点MAC单元组合。
- 不改动乘加核心,仅改动数值输入输出流程,大幅降低额外延迟和功耗。
3. 硬件综合实验结果
使用TSMC 28nm工艺,综合并测试了不同位宽的Posit MAC单元(与传统FP32 MAC单元对比):
| 单元类型 | 功耗 (mW) | 面积 (μm²) | 相比FP32功耗下降 |
|---|---|---|---|
| FP32 MAC | 2.52 | 4322 | 基线 |
| Posit (8,1) MAC | 0.45 | 1208 | ↓ 83% |
| Posit (8,2) MAC | 0.35 | 1032 | ↓ 86% |
| Posit (16,1) MAC | 1.77 | 4079 | ↓ 29% |
| Posit (16,2) MAC | 1.60 | 3897 | ↓ 36% |
- 功耗降低:在8位Posit下功耗下降最显著,达到了83%以上。
- 面积减少:面积也有6%-76%的下降。
- 频率:所有设计统一以750 MHz频率综合,保证对比公平。
4. 小结
论文的Posit MAC设计创新点在于:
- 精准识别了Posit编码/解码过程的瓶颈。
- 通过并行分支+位移代替复杂逻辑,大幅降低了编码器、解码器延迟和能耗。
- 在不改动核心MAC运算的前提下,显著提升了整体能效,非常适合部署到低功耗DNN加速器中。
最终,他们证明,基于Posit的DNN训练,不仅在模型精度上能做到无损,而且在硬件能效上也远远优于传统FP32设计。

浙公网安备 33010602011771号