当前位置:问答库>论文摘要

题目:浮点稀疏矩阵向量乘的FPGA实现

关键词:稀疏矩阵向量乘;浮点;乘累加;现场可编程门阵列

  摘要

稀疏矩阵向量乘(Sparse Matrix-Vector Multiply, SMVM),形如Ab=x,在科学计算、信息检索、数据挖掘等领域中都是重要的计算核心之一。稀疏矩阵中非零元素的稀疏性,使得在微处理器上实现该类运算时,存在缓存缺失率高等问题,导致性能并不理想。虽然可以使用软件优化的方法,对稀疏矩阵的结构和规模等进行调整,来改善运算性能。但效果仍不理想,这是由于受到存储结构等硬件体系结构方面的制约。本文在分析研究了“浮点稀疏矩阵向量乘”运算在传统微处理器上实现性能不佳的原因后,提出了基于FPGA实现的适应稀疏矩阵特性的新型体系结构设计。整个系统由软硬件协同工作,软件部分负责接收矩阵和向量的原始输入,将所采用的CSR存储格式转换成硬件可处理的“指令字”格式,并将稀疏矩阵行向量与源向量之间的内积运算以“计算任务”的形式分配给硬件浮点乘累加处理单元阵列上。硬件部分可以并行处理这些“计算任务”,并通过处理单元内部的浮点运算部件实现乘累加操作,完成向量之间的内积运算。本文从“资源占用”、“速度/面积平衡”和“软硬件协同”三个方面进行评估,在系统级设计SMVM原型系统的体系结构;并针对稀疏矩阵的特性,完成浮点乘累加处理单元的微体系结构设计及其内部的浮点运算部件。整个系统实现在Xilinx公司的Virtex-4 FX12器件上,浮点乘累加硬件处理单元可以通过APU接口连接到FPGA片内的硬核PowerPC处理器上,实现“协处理器”的功能。使用Verilog语言对浮点乘累加处理单元进行逻辑设计,性能可达到120MHz。最后,对全文进行总结并提出了进一步要做的工作。