以下文章来源于OpenFPGA,作者碎碎思
前言
随着人工智能、机器人、计算机视觉和高性能计算的发展,传统 CPU/GPU 架构正在面临新的挑战:

数据搬运成本越来越高;
内存访问成为性能瓶颈;
专用加速器开发周期长;
面对不同算法需求时缺乏灵活性。
FPGA 凭借可重构、高并行和低延迟优势,成为加速计算的重要方向。
来自瑞士洛桑联邦理工学院(EPFL)VCA 实验室的 FSA(Flexible Spatial Accelerator)项目,正是针对这一问题提出的一种新型 FPGA 加速架构。
它希望探索:
如何让 FPGA 加速器拥有更高的灵活性,同时保持接近专用硬件的性能。
什么是 FSA?
FSA 全称:
Flexible Spatial Accelerator
即:
灵活空间加速器。
FSA:在单个收缩期阵列中融合 FlashAttention
FSA 在单个脉动数组内执行所有FlashAttention 操作——无需向量单元!
享受使用矩阵乘法 FLOP 计算非矩阵乘法运算的乐趣。
为了最大限度地减少执行延迟,注意力操作在脉动数组中逐元素重叠。
与torch.nn.functional.scaled_dot_product_attentionon相比,FSA 达到了 1e-3 的精度fp16。
FSA架构
RTL 实现位于src文件夹下。顶层模块是AXI4FSA.scala。FSA指令的硬件行为在ExecutionPlan.scala中描述,控制逻辑会据此自动生成。
集成选项
提供两种将FSA集成到Chipyard中的方案:
TileLink 集成:将 FSA AXI4 内存通道连接到 Chipyard 的 TileLink MBus。如果 FSA 与其他 Chipyard 组件共享底层内存,则应使用此功能。相应的配置名称 FSAMxNConfig位于FSAConfig.scala.
直接 AXI4 集成:将 FSA AXI4 内存通道直接连接到后端内存(例如 DRAMSim、HBM),无需将 AXI4 转换为 TileLink。如果 FSA 不需要共享 MBus,建议使用此方法。相应的配置名称 AXI4FSAMxNConfig位于FSAConfig.scala.
FPGA 支持
本项目支持AMD U55C FPGA 开发板。

1. FPGA 位生成
请确保已安装Vivado,然后运行以下命令:
cdchipyard-fsa/fpga make SUB_PROJECT=u55c CONFIG=EmptyU55CConfig TOP=EmptyChipTop bitstream
生成的比特流文件位于[ chipyard-fsa/fpga/generated-src/chipyard.fpga.u55c.U55CFPGATestHarness.EmptyU55CConfig/U55CFPGATestHarness.bit]。可以使用 Vivado 将此文件烧录到 FPGA 开发板上。强烈建议使用除安装 FPGA 卡的机器(主机)之外的其他机器进行烧录。
2. FPGA主机配置
请确保主机已安装并加载 Xilinx 的XDMA 驱动程序(https://github.com/Xilinx/dma_ip_drivers)。每次烧录比特流时,都应使用以下命令重新扫描 PCIe 总线:
echo1 > /sys/class/pci_bus/0000:01/device/remove echo1 > /sys/bus/pci/rescan
现在应该可以看到xdma0_c2h_0、xdma0_h2c_0和xdma0_user设备/dev。
3. 运行FPGA测试
仍在主机上,运行以下命令启动测试:
cdchipyard-fsa/generators/fsa/python uv run main.py --seq_q 16 --seq_kv 16 --config EmptyU55CConfig --engine FPGA
示例输出:
Loading config from: ../../../fpga/generated-src/chipyard.fpga.u55c.U55CFPGATestHarness.EmptyU55CConfig/chipyard.fpga.u55c.U55CFPGATestHarness.EmptyU55CConfig.FSAConfig.json
Device finished execution
Performance counters:
Execution time: 9414 cycles
Max bubble cycles: 6535 cycles
Max active cycles: 179 cycles
DMA active cycles: 233 cycles
Raw instructions: 32
Max instructions: 5
DMA instructions: 4
Fence instructions: 1
Enqueue instructions: 32
Dequeue instructions: 32
Reading back output tensor from addr 0x80000600, size 1024
Comparing with Torch...
Error of FSA vs torch: {'MAE': np.float32(9.4124e-05),'MSE': np.float32(1.3156206e-08),'MaxErr': np.float32(0.00031119585),'RelErr': np.float32(0.00018823991)}
要进行另一次测试运行,请从步骤 2 重新开始以重置 FPGA 系统。
参考链接
开源项目地址
https://github.com/VCA-EPFL/FSA?utm_source=chatgpt.com
项目配套论文
http://arxiv.org/abs/2507.11331
总结
EPFL VCA 实验室推出的 FSA(Flexible Spatial Accelerator) 项目,通过空间计算架构重新思考 FPGA 加速器设计,希望在性能和灵活性之间找到新的平衡。
FSA 并不是单纯提供几个 RTL 模块,而是完整实现了一套 Flexible Systolic Array(柔性脉动阵列) 架构。
它不仅展示了一种新的 FPGA 加速方法,也代表了未来可重构计算的发展趋势:
FPGA 不只是用来实现电路,而正在成为一种能够动态适应算法变化的计算平台。
除了 RTL 代码之外,开源仓库还提供了较完整的开发环境,包括:
Chisel 硬件描述
Verilator 仿真
FPGA 实现工程
软件运行环境
Benchmark 示例
AI 工作负载测试

对于希望学习现代 AI 加速器设计的开发者来说,不仅可以阅读架构论文,还可以直接查看硬件实现细节,理解从架构设计、RTL 实现到 FPGA 验证的完整流程。
- 随机文章
- 热门文章
- PCB扇孔设计必知:原则与注意事项,让设计更高效!
- 智能化环网柜局放监测方案:构建配电网的智慧之眼
- 水泥包装机数据采集远程监控系统方案
- 以一抵十的高效连接:12孔航空插头的多线路集成优势
- 普源DHO4404示波器USB信号测试
- 信号发生器AFG31000系列在视频信号测试中的应用要点
- 郑州大学:研究柔性压力传感器中的微形态工程及其人工智能应用
- “跨省异地”就医如何直接报销?官方教程来了
- 和讯投顾廖爱萍:IP 帝国与渠道霸权的双重护城河?
- 探访北宋东京城顺天门遗址博物馆
- 1感染甲流后该如何科学调养?饮食起居这样做,感染甲流后该如何科学调养?饮食起居这样做
- 2马克龙去的这所大学,太宝藏了吧!,马克龙去的这所大学,太宝藏了吧!
- 3北方多地迎来降雪降温天气 各部门联动“战”寒潮筑牢安全防线,北方多地迎来降雪降温天气 各部门联动“战”寒潮筑牢安全防线
- 4福州发布公告:吴石故居将封闭施工,展开系统性修缮
- 5“无保护”攀岩真的无保护吗?“无保护”攀岩真的无保护吗?
- 6城中话债|激活民间投资:让有效率的资本站上C位
- 7晚间重磅!又一万亿级券商将诞生 券业并购潮涌
- 8科学家的照片排在董事长之上,科学家的照片排在董事长之上
- 911月份“菜篮子”产品价格呈现季节性上涨 多因素推高生产成本,11月份“菜篮子”产品价格呈现季节性上涨 多因素推高生产成本
- 10何立峰:有力有序有效做好2026年金融重点工作