《A Matrix-Multiply Unit for Posits in Reconfigurable Logic Leveraging (Open)CAPI》(一)

以下是对论文《A Matrix-Multiply Unit for Posits in Reconfigurable Logic Leveraging (Open)CAPI》的中文综述分析,包括研究背景、实现方法、结构优化、性能对比与总结反思,采用与上一篇论文一致的风格:


基于(Open)CAPI的POSIT矩阵乘法加速器研究综述

一、研究背景与动因

IEEE 754浮点标准虽然已被广泛使用,但其在数值表示对称性、舍入误差、异常值处理等方面存在固有限制。John Gustafson 提出的 POSIT 算术格式因其更对称、更紧凑且具备动态精度调节能力,被认为是 IEEE 浮点标准的潜在替代者。

然而,POSITS 的实际应用受限于缺乏成熟的硬件实现。为了推动 POSIT 的应用和验证,作者提出并实现了一种在 可重构逻辑(FPGA)中实现的 POSIT 矩阵乘法加速器设计,目标是实现高吞吐、低延迟且高精度的矩阵乘法运算,同时通过 (Open)CAPI 接口与主机 CPU 高效通信。


二、32位 Posit(32,2) 硬件表示与转换

论文采用 32-bit POSIT 算术格式(es=2),其基本结构为:

[
x = (-1)^{sign} \cdot useed^k \cdot 2^e \cdot f
]

  • useed = ( 2{2{es}} = 16 ),
  • regime(k值)通过 leading-one/zero 计数器(LZC)计算,
  • exponent 和 fraction 位置不固定,通过左移归一化处理。

为了便于硬件计算,作者将上述格式转换为:

[
x = (-1)^{sign} \cdot 2^{exp_value - 128} \cdot f
]

其中 exp_value = k * 2^es + e + 128,该转换使得后续的乘加操作和指数统一表示更简洁。


三、核心设计:精确点积与矩阵乘法加速器

3.1 精确点积实现原则

  • POSIT 点积操作需要避免中间舍入误差,因此采用 512位 Quire 寄存器 来容纳所有乘积累加结果。
  • Quire 可表达范围为:( 2^{255} \sim 2^{-256} ),足以容纳大多数矩阵操作中积累的误差。
  • 与 IEEE float 相比,点积精度更高,适合大规模向量累加。

3.2 Carry-Save 加法器优化结构

  • 每次乘积的有效位最多56位,直接加到 512 位 quire 会造成资源浪费。
  • 将512位划分为 8个64位区块(Block0~Block7),利用 carry-save adder + 局部RAM块(even/odd分离) 来实现区域性更新;
  • 每个块追加 16-bit carry 区域,有效解决进位/借位问题,同时可支持正负数累加。

3.3 多缓冲结构提升吞吐

  • 加入双缓冲结构:交替使用 RAM1 / RAM2 或双 carry 模块,可实现下一组点积操作的 无停顿启动
  • 当处理足够长的向量时,可保持全吞吐不间断运行

四、矩阵乘法单元设计

  • 构建 64个并行点积单元(对应矩阵 B 的64列);
  • 将输入矩阵 A 按行输入,矩阵 B 按列并行装载;
  • 支持大型矩阵按子块(block)划分计算,每个点积单元负责一列输出,无中间舍入;
  • 支持高达十亿维度的向量点积,只需扩展 quire 数量或合并 partial result。

数据存储采用 BRAM,未来可拓展为 URAM 以支持更大规模矩阵;所有控制均由 FPGA 内部逻辑完成,主机仅需通过 OpenCAPI 接口传递指针并等待结果返回。


五、性能评估与对比分析

5.1 实验平台配置

配置 FPGA型号 接口 带宽 支持资源(DSP/FF/LUT)
配置1 VX690 CAPI 1.0 4 GB/s 3600 / 866K / 433K
配置2 VU3P OpenCAPI 3.0 16 GB/s 2280 / 788K / 394K
配置3 VU37P OpenCAPI 3.0 32 GB/s 9024 / 2607K / 1304K

5.2 资源与频率对比(单元级)

运算类型 FF LUT DSP 频率
Posit 点积单元 1031 2618 4 200MHz
IEEE float 乘加器 1325 866 4 300MHz

5.3 峰值与实测性能

  • 单位时间最多支持 64 个并行 dot-product;
  • 在配置1中,实测峰值为 10 Gpops
  • 预计配置2和配置3在理想条件下可达 16 Gpops ~ 64 Gpops
  • 软件实现(Julia)相比硬件慢约 1000倍

六、结论与展望

本论文提出并实现了一个完整的 基于FPGA的 POSIT 点积与矩阵乘法加速器,其主要特点包括:

  • 保留中间精度的 精确点积机制(Quire)
  • 使用 Carry-Save 架构与块级内存布局优化资源与速度;
  • 支持与 OpenCAPI 接口的无驱动直接通信,提升带宽效率;
  • 面向大规模矩阵与向量计算,具备良好的可扩展性。

作者已将该设计 开放源码GitHub 项目地址),为 POSIT 硬件社区提供了第一批可复用模板,未来将结合高带宽接口与更新工艺节点(如URAM)进行更大规模部署与改进。


posted @ 2025-04-28 02:15  江左子固  阅读(61)  评论(0)    收藏  举报