《Hardware Implementation of POSITs and Their Application in FPGAs》(一)
1. 论文主要内容与研究方向
本文关注新型浮点数表示格式 POSIT(由Gustafson于2017年提出)在硬件实现方面的可行性与效率问题。针对目前IEEE-754标准存在的动态范围有限、精度不均与冗余状态等问题,作者实现了支持加法、减法、乘法的POSIT算术单元,并首次将其集成到FPGA平台中,构建了一个可在Intel FPGA OpenCL SDK中使用的线性代数库原型(PBLAS)。
研究方向属于新数值格式在高性能计算中的FPGA硬件实现与集成,特别是为神经网络等高带宽应用场景提供低功耗、高吞吐的新途径。
2. 研究方法与算法结构
作者主要采用以下技术手段:
-
POSIT算术核心设计:
- 解码与编码模块:使用前导零计数(CLZ)模块提取regime位,再依次获得exponent与mantissa;
- 算术单元设计:加法与乘法模块均包含预处理(特殊值处理)、格式解码、对齐操作、运算逻辑、归一化与编码等过程;
-
自动生成工具 POSGEN:
- 类似FloPoCo,用户指定pbit与es,自动生成特定位宽与算术模块的可综合VHDL代码及OpenCL集成描述文件。
-
线性代数库集成(PBLAS):
- 实现了三种基础操作:
pvvtmul(向量内积)、paxpy(缩放加法)、pgemv(矩阵乘向量),可直接用于OpenCL数据通路中。
- 实现了三种基础操作:
📌 截图展示解码模块与乘法模块架构如下:
图 1(POSIT编码与解码组件结构)
3. 研究结果分析与对比
实验平台:Stratix V DE5-Net FPGA,使用Intel Quartus与OpenCL SDK进行综合。
性能比较对象:
- Intel原生IEEE-754浮点核(ALTERA_FP_FUNCTIONS)
- FloPoCo生成的IEEE-754算术单元
实验结果摘要:
| 模块类型 | 时钟频率 (MHz) | 面积 (ALMs) | DSP数 | 备注 |
|---|---|---|---|---|
| POSIT 32-bit | 500~604 | FLOPOCO约2倍 | 较少 | 解码复杂度高 |
| FloPoCo IEEE-754 | 550~650 | 面积最优 | 2个DSP | 面向单精度 |
| Intel IP核 | 775+ | 面积最小 | 多 | 商业优化完善 |
线性代数性能:
| 操作 | 吞吐率 (GOPS/s) | 加速比 (FPGA vs. CPU模拟) |
|---|---|---|
| paxpy | 3.37 | 数十倍 |
| pvvtmul | 4.19 | 数十倍 |
| pgemv | 0.81 | 较低,受限于存储带宽 |
👉 总结:虽然POSIT模块面积略大,但在DSP资源受限时具有优势,适合部署在对面积和能效敏感的FPGA场景中。
4. 论文出处与会议等级
- 会议名称:IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW) 2018
- 会议等级:
- CCF推荐等级:B类国际会议
- 收录情况:IEEE Xplore,DOI: 10.1109/IPDPSW.2018.00029
5. 开源代码情况
论文未直接给出开源链接,但提到了如下相关项目:
- POSIT软件库 (C++) - Stillwater Universal【原文第145页】
- [POSGEN工具(类似FloPoCo,作者自研)暂未公开代码】
📌 可以关注上述GitHub仓库作为软件对比参考。
6. 相关原文出处标注
- POSIT与IEEE-754格式对比介绍:第138页 “A. POSITs vs IEEE-754”【图1】
- 解码算法描述:第140页 "A. Decoding POSIT Numbers"
- 多种模块电路图展示:第141页 “Fig. 2”
- 综合实验与对比图:第142页 "Fig. 4"
- OpenCL性能结果与图表:第143页 "Fig. 5", "Fig. 6"

浙公网安备 33010602011771号