论文部分内容阅读
迭代重建法是X射线计算机断层成像技术中的重要方法,相比于传统的图像重建方法比如滤波反投影法,它的优点是能够提高图像质量以及降低辐射剂量。然而,迭代重建法相比传统算法需要更长的计算时间。大多数迭代重建法中每次迭代都需要进行一次正向投影和一次反向投影,这两个过程是其主要计算瓶颈。分离足迹正向和反向投影法简化了相关的投影计算,是一种准确有效并且适合并行实现的算法。Wu和Fessler对分离足迹法进行了相关研究并提出了一种分离足迹正向和反向投影的GPU并行加速算法,同时用CUDA实现了这个算法,但是未能达到理想的加速效果。本文在对分离足迹法充分分析的基础上提出了新的GPU并行加速算法,并用CUDA实现了该算法。对于正向投影,并行计算所有探测器单元的正向投影值,每个探测器单元用“追溯法”去追溯那些对其有投影值贡献的三维体素;对于反向投影,并行计算所有三维体素的反向投影值。在对正向投影程序中的访存特点进行分析后,用CUDA的共享内存对其进行了优化,并取得了一定性能上的提升。为了进一步提高程序性能,我们还实现了程序的多GPU并行。我们在NVIDIA Tesla K80 GPU上测试了相关CUDA程序的性能,测试结果显示新实现的CUDA程序相比Wu和Fessler的程序在正反向投影上都取得了将近1.7倍的加速。多GPU的测试结果显示,新实现的CUDA程序运行时间随GPU增多而等比例减少。我们在两个NVIDIA Tesla K80 GPU和两个14核Intel Xeon E5-2695 v3 CPU上分别测试对比了新实现的CUDA程序和CPU多线程程序的性能,测试结果显示新实现的CUDA程序相比CPU多线程程序在正反向投影上分别取得了1.3倍和2.1倍的加速。