《Generating Posit-Based Accelerators With High-Level Synthesis》(一)
《Generating Posit-Based Accelerators With High-Level Synthesis》。下面按照你的要求,给出完整的中文论文分析总结:
1. 论文主要内容与研究方向
本论文提出了一种将Posit数值格式集成到高层次综合(HLS)流程中的方法,能够从行为级C/C++描述直接生成支持Posit运算的RTL硬件加速器。
研究方向聚焦于:
- 科学计算与高性能计算(HPC)场景下,用Posit取代浮点数以提高精度和能效
- 自动化设计流程,尤其是在HLS工具中原生支持Posit
- 混合存储策略:在本地存储中使用Posit,在逻辑计算中保留浮点,以兼容传统HLS工具
2. 研究方法介绍(含截图)
论文提出了以下关键创新:
(1) 基于FloPoCo工具开发的Posit运算RTL库
- 包含加法、减法、乘法、除法、比较、整数转换等运算单元
- 支持多位宽(32bit、64bit)和目标频率配置
📌 截图参考(Posit编码格式):
(论文原文Fig. 1)
(2) 高层次综合工具Bambu的扩展
- 在开源HLS工具Bambu中集成了Posit支持
- 用户仅需添加
-flopoco=posit
参数即可启用,不需修改C/C++源代码
📌 截图参考(HLS整体流程扩展):
(论文原文Fig. 2)
(3) 支持内存中使用Posit,计算中用浮点的混合方案
- 以Posit压缩存储,降低内存带宽和容量需求
- 在加速器中进行Posit与浮点数的动态互转
📌 截图参考(三种策略示意图):
(论文原文Fig. 3)
3. 实验与对比结果分析
论文在Xilinx Artix-7 FPGA上对PolyBench 4.2套件(线性代数、图像处理等6个基准程序)进行了综合和实验评估:
项目 | 平均资源增加 | 平均延迟增加 | 平均误差降低 |
---|---|---|---|
Posit32 vs Float32 | LUT↑1.46×,FF↑1.73× | 时钟周期↑1.30× | 精度提高约10倍 |
Posit64 vs Float64 | LUT↑1.73×,FF↑2.12× | 时钟周期↑1.59× | 精度提高约100倍 |
特别说明:
- Posit加法器、乘法器面积略大(~1.5×~2×)
- Posit除法器、开方器面积明显更大(可达~4×)
- 混合存储方案(内存Posit、逻辑Float)可在牺牲极少面积(+10%-15%)的代价下,大幅减少数据量,同时精度仍优于Float32
📌 截图参考(不同格式误差对比图):
(论文原文Fig. 5)
4. 论文出处与等级
- 期刊名称: IEEE Transactions on Circuits and Systems I: Regular Papers (TCSI)
- 发表时间: 2023年10月
- DOI: 10.1109/TCSI.2023.3299009
- 期刊等级:
- CCF B类期刊
- 中科院分区:一区Top期刊
5. 是否有开源代码
论文实现基于开源工具:
不过,本论文自定义的Posit库及混合存储实现目前未完全开源,作者仅提及在实验中基于上述工具修改。
6. 与原文相关引用出处
- “We design an RTL library of posit operators that adds support for all the basic operations required in HLS.”
- “Experimental results demonstrate that, under the same bitwidth, posit arithmetic reduces computation errors by about two orders of magnitude.”
- “We propose a hybrid scheme that uses posit numbers only in the private local memory while the accelerator operates in floating-point.”