论文部分内容阅读
高性能计算(highperformancecomputing)是地震数据处理领域一个重要的研究课题。目前的高性能计算大多是利用图形处理器(GPU)强大并行处理能力,以GPU/CPU协同并行计算构架为基础实现有关算法。基于FPGA的可重构计算技术,结合了软件计算的灵活性和硬件系统的高性能等优点,为高性能计算提供了另外一种选择。那么,是选用GPU还是FPGA呢?本文以Kirchhoff叠前时间偏移算法为基础,对两种高性能计算技术的优劣进行了初步的对比分析。
GPU/CPU协同并行计算架构可以使GPU与CPU之间相互配合,充分发挥GPU强大的并行处理能力和浮点运算能力,实现高吞吐、高存储带宽的高性能科学计算,同时还能够大幅降低系统成本。FPGA/CPU异构系统具有并行度高、加速潜力大、功耗低等特点,同时兼备软件软件/硬件的优点。
在编程实现上,CUDAC作为C语言的变种对C标准库有着有力支持,GPU编程模型相对成熟,对大型数据的处理能力强,但在线程指令优化和程序调试方面存在着不足。C语言FPGA编程相对发展较晚,编程模型通俗易懂,但是缺乏对C语言标准库的支持,软件上对数据量大小有所限制,硬件实现上需要一定的硬件基础。
通过模型测试,与CPU串行计算相比,本文编写的GPUKirchhoff叠前时间偏移程序在普通显卡上达到了intel双核CPU7倍左右的加速效果,而利用ImpulseC工具模拟FPGA运行Kirchhoff叠前时间偏移获得了1.6倍的加速效果。