分类: LINUX
2007-01-20 22:08:51
FPGA协处理器为C 加速
正如上文所言,目前H应用涵盖了多个领域,有着不同的计算需求。例如在商业数据分析和基因测序中,要进行大量的数组运算、线形数据匹配、逻辑测试等等,而对于医疗成像、计算化学而言,其主要工作是同步映射、过滤等等。这些不同的应用需要不同的数学逻辑操作以及有效的连接读取等。
通用的、专用的图像处理CPU(目前称之为GPU)或网络处理CPU,都无法为C应用提供一个可选的通用解决方案。而FPGA作为一个可重构计算引擎,可以在软件控制下进行单元优化工作,来满足不同HPC应用需求,从而提供计算效率。从某种程度上说,采用基于FPGA协处理器的可重构计算硬件平台,可以有可能让HPC在各种应用软件下达到很高的效率。
FPGA通过把高性能计算算法中固有的并行运算部分硬件化来实现HPC应用加速。其实这种并行可分为多个等级,在机群计算中在多个CPU上进行任务的多线 程分配我们可以称之为“任务级并行”。第二级并行我们称之为“指令并行”,传统的CPU支持数量有限的指令并发处理,就是CPU指令流水线的管道数或者发 射数比较有限。而FPGA则可以提供很多管道,也就是说可以同时并行执行大量的指令。“数据并行”是FPGA很容易实现的第三级并行处理能力,FPGA的 结构非常容易实现并行操作。因而,通过配置,它可以同时执行大量的数据吞吐操作,在这种情况下,该设备相当于多个传统CPU在同时工作。
如果实现上述三种级别的并行处理,一个200Mhz的FPGA处理能力将远远超过一个3Ghz的通用CPU,然而功耗仅仅是后者的1/4。例如在生物计算 中,FPGA在处理DNA基因排序上能往往能够比通用CPU加速50倍到100倍;而在医疗CT的2D/3D图像处理上能够加速10倍左右;而对与一些通 用的算法如FFT,一般情况下FPGA的加速至少可以达到10倍以上。