论文部分内容阅读
近年来,随着临床诊断要求的提高以及医学影像学研究的不断深入,对高效的医学图像处理技术的需求愈发迫切。与此同时,图形处理器(GraphicsProcessing Unit,GPU)的性能不断提高,基于GPU的通用计算成为了并行计算领域的热点。2008年底,第一个针对异构通用计算的标准——开放计算语言(OpenComputing Language,OpenCL)诞生了,它为日益庞大的通用计算市场带来了曙光。
在新标准OpenCL架构下,将基于GPU的通用并行计算应用于医学图像处理领域,具有很强的研究价值和迫切的现实意义。一方面,通过并行算法为医学图像处理加速,可以有力地推动医学影像技术的发展;另一方面,研究OpenCL作为新兴的通用异构编程标准的可行性和发展潜力,对促进通用计算的发展也具有重要意义。
本文从医学图像处理中的典型问题入手,在OpenCL架构下,针对GPU特殊的体系结构,进行了并行化加速研究。在此基础上,探究了传统串行算法能够通过GPU得到何种程度的速度提升以及影响加速性能的关键因素,总结出了基于OpenCL的CPU+GPU异构并行计算的典型设计模式和优化方案。
主要研究成果如下:
(1)针对三维锥束CT重建问题,提出了一种基于数据共享存储的并行滤波算法,并在此基础上在OpenCL和CUDA两种架构下实现了完整的并行FDK重建方案。在相似的重建质量下,基于OpenCL和CUDA的GPU重建速度远大于CPU重建速度,内核函数加速比高达百倍。
(2)结合GPU和CPU的不同特点,针对GRAPPA核磁共振图像重建算法进行了并行化设计和优化,在OpenCL和CUDA两种架构下实现了联合CPU和GPU的异构GRAPPA并行重建方案。在相似的重建质量下,基于OpenCL和CUDA的并行重建速度远大于CPU串行重建速度,计算单元的加速比达十余倍。
(3)根据GPU的特点,提出了两种并行相似度计算方案,并在此基础上,实现了基于OpenCL的交互式并行测地滤波图像分割算法。实验表明,该分割算法对边缘较弱,噪声较大的医学图像取得了比较理想的分割效果。较之CPU串行分割方案,在类似的分割效果下,基于OpenCL的GPU并行分割方案取得了十倍以上的速度提升。
(4)探讨总结了基于OpenCL的异构通用计算的共通模式与优化策略。研究了OpenCL规范的体系结构和编程模型,在大量实验的基础上,分析和总结了基于CPU+GPU异构平台的通用计算的设计模式和优化策略,为今后更多其他算法在异构多核架构下的移植提供了支持和依据。