FPGA并行化架构在伊辛机中的优化设计与实现

发布时间:2026/6/25 14:29:07
FPGA并行化架构在伊辛机中的优化设计与实现 1. FPGA并行化架构在伊辛机中的核心设计思路伊辛机Ising Machine作为一种解决组合优化问题的专用计算架构其核心计算模块包括矩阵向量乘法Matrix-vector Multiplication, MM和时间演化Time Evolution, TE。在FPGA实现中这两个模块的并行化设计直接决定了整体计算效率。我们的设计采用了三级并行化策略Pr并行乘法器数量控制每个MM模块中MACMultiply-ACcumulate单元的数量直接影响矩阵-向量乘法的计算吞吐量。例如在256-spin问题中Pr16表示每个时钟周期可同时计算16个Ji,j·sgn(xj)乘积。Pc系数并行读取宽度决定从J矩阵存储器中每周期可读取的系数数量。当Pc16时每个MAC单元可同时获取16个J系数与Pr协同实现全流水线操作。Pb模块复制数量通过实例化多个MMTEMMTE组合模块实现任务级并行。在KV260平台上Pb4表示同时运行4组独立的计算单元。关键设计准则根据公式nspin/Pc ≥ Pr确定参数关系确保MM和TE模块能完全流水线化。当nspin/Pc Pr时如256/1616可实现计算资源的100%利用率。2. 矩阵向量乘法单元的硬件实现细节2.1 MAC单元的结构优化每个MM模块包含Pr个MAC单元其核心运算逻辑如图9所示。特殊设计的MAC单元采用以下优化技术符号位快速处理通过多路选择器实现J系数与sgn(xj)的乘积运算。当sgn(xj)为负时自动选择J系数的1s补码即按位取反避免实际执行乘法操作。树形加法器结构采用两级二进制树加法器Tree1和Tree2实现多操作数累加Tree1对Pc个部分积进行求和如16个8-bit数的加法Tree2并行计算符号位和的2s补码修正项最终通过一个加法器完成结果整合减少关键路径延迟累加器共享输出多路选择器允许Pr个路径共享同一个TE逻辑DP模块显著节省寄存器资源。2.2 存储架构设计挑战存储子系统是资源消耗的主要来源占93% BRAM其架构如图10所示存储器类型位宽设计并行访问需求实现方式XMEM/YMEMPb×Xbits每周期Pb次读写简单双端口RAMJ MemoryPb×Pr×Jbits×Pc每周期Pb×Pr×Pc个系数分布式Block RAMSGNXMEM2×Pb×Pr符号位双缓冲寄存器文件实际实现中面临的主要矛盾是并行度提升会导致存储带宽呈平方增长Pr×Pc。例如当PrPc16时需要同时访问256个J系数这对FPGA的布线资源和时序收敛带来严峻挑战。3. 流水线时序优化与性能分析3.1 四种执行模式的对比图8展示了从顺序执行到全并行化的演进过程顺序执行MM和TE串行操作耗时最长约N² cycles循环展开通过Pr和Pc提升并行度加速MM模块流水线重叠让TE模块利用MM计算时的空闲周期执行模块复制增加Pb个MMTE实例实现任务级并行最终执行时间公式为texec4 O(nsteps·(nspin/Pb)·(nspin/(Pc·Pr) 1/Pc)·Tck)在KV260平台上的实测数据显示单步计算时间254ns200MHz时钟初始化开销0.39ms主要来自J矩阵加载资源利用率BRAM 93%LUT 14%3.2 参数选择权衡表1对比了不同参数组合的优劣参数组合时钟周期数BRAM需求适用场景PrPcPb16最小超过容量理论最优PrPc16, Pb4略多93%实际部署PrPc8, Pb8中等65%平衡型选择PrPc16, Pb4的原因保持MM模块的高并行度256并行乘法控制BRAM使用在器件容量内144个中的134个路由延迟可控确保时序收敛到200MHz4. 实际应用效果与优化技巧4.1 Max-Cut问题测试结果在256-spin的Max-Cut问题上J∈[-128,0]硬件实现表现出色128步时85%的解达到软件模拟退火SA结果的90%时间-目标值TTT指标39.5μs含初始化结果分布图13显示随着步数增加解质量快速提升4.2 FPGA实现经验总结内存分区策略将J矩阵按行分组存储在不同BRAM中避免访问冲突。例如当Pr16时将矩阵划分为16个带状区域。时序收敛技巧对树形加法器插入流水线寄存器对长走线信号添加寄存器缓冲使用CARRY8原语优化进位链占用15%初始化优化采用AXI DMA加速J矩阵加载对不变的问题参数实现单次加载多次复用数值精度处理采用8-bit定点表示J系数累加器位宽扩展至24-bit防止溢出对TE模块使用12-bit相位精度5. 扩展应用与未来改进方向当前架构已成功应用于旅行商问题TSP和背包问题但仍有提升空间近似计算优化对远离平衡点的spin采用粗粒度更新使用随机舍入降低TE计算复杂度内存压缩技术利用J矩阵对称性节省存储对稀疏问题采用COO格式存储动态参数调整根据收敛情况自适应调整加热参数实现步长参数的运行时配置混合精度设计对关键路径采用低精度计算对最终结果进行高精度修正这套开源VHDL代码已托管在GitHub支持参数化配置所有并行度参数和数值精度。用户可根据目标FPGA资源调整Pr/Pc/Pb组合例如在Artix-7系列上可采用PrPc8, Pb2的配置。实践证明这种灵活的设计方法比固定架构的IP核更具实用价值。