技术开发 频道

医学信号与图像处理算法中的并行化

  【IT168 技术】

  注:本文为IT168&NVIDIA联合举办的“如何并行化我的应用”方案征集活动参赛作品。本次方案征集活动详情见:http://cuda.itpub.net/thread-1299715-1-1.html。近期活动的大部分方案,将会逐步与大家分享,不可错过哦!

  CUDA ZONE专区:http://cuda.it168.com/

  CUDA技术论坛:http://cuda.itpub.net

  一、项目应用概述

  自从1895年伦琴(Ronggen)发现X射线以来,特别是它在医学上得到应用以来,现在医学影像学迅速形成和发展,这不仅是自然科学史上的一个重大里程碑,而且在相当程度上改变了医学科学尤其临床医学的进程,为人类的疾病防治做出了巨大贡献。近年来,我国医疗影像仪器制造行业发展迅速,一些中档设备技术的转移强化了本土研发和生产规模,相关海归人才进一步提升了国内企业的竞争力,部分医疗器械产品出口逐年增加,在国际市场上也占有相当份额。因此,医学信息处理日益成为学者,行业人士和普通大众关注的焦点。

  对于传统医学信号与图像处理大量依赖专用的硬件设备,不仅致使造价昂贵,而且很多性能瓶颈无法得到突破。众所周知,信号处理上一些重要的变换,如FFT,希尔伯托变换等,在硬件实现上的成本异常惊人,达到难以接受的程度,只有在高端仪器上才会出现。

  近年来,信号与图像处理无论在算法上、系统结构上,还是在应用上以及普及程度上取得了长足的进展。但同时也面临许多挑战,其中最主要的问题就是如何提高解决实际复杂问题的综合能力,就当前技术水平来说,这种综合能力包括图像处理的网络化、复杂问题的求解与处理速度的高速化。

  图像并行处理技术是图像处理中的一个重要方面,是提高图像处理速度最为有效的技术。图像并行处理技术的发展难度大,其原因不仅在于对系统的硬件及系统结构本身,以及对计算机技术和集成电路等技术的依赖关系,而且在于实际应用的复杂性和应用部门对系统价格的承受能力。但图像并行处理技术发展产生的效益也十分显著,它在处理速度上所获得的加速比是令人振奋的。

  多核并行处理的技术的快速发展,为并行信号与图像处理提供给了强大的助力。特别是随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化,同时也克服了多核CPU的一些性能瓶颈,在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA(Compute Unified Device Architecture),让显卡可以用于图像计算以外的目的。

  以上概述了医学信息处理的背景,应用现状和业务瓶颈。第二节将分析并行化医学信号和图像处理的一些思路,在第三节中会给出一些应用实例。

  二、 医学信号与图像处理的并行化设计思路

  随着带有并行处理功能计算机的发展,大型科学与工程计算成为可能,使得科学技术作为科学研究的一种有效手段,已上升为与科学理论和科学实验并重的三大科学方法之一。而且随着计算机硬件、软件及算法的进步,这种趋势正在加强。在并行计算领域,并行体系结构、并行软件和并行算法三者缺一不可,而其中并行算法则是核心和瓶颈技术。

  所谓并行算法是指在各种并行计算机上求解问题和处理数据的算法,其本质是把多任务映射到多处理器中执行,或将现实的多维问题映射到具有特定的拓扑结构的多处理器上求解。并行处理作为计算机科学长期研究的一个重大课题。它主要依据于计算机系统的体系结构的3个基本概念:时间重叠、资源重复和资源共享。

  并行算法的实现强烈的依赖于计算机硬件和软件环境,因此在设计并行算法时有必要使用一些并行计算模型(也称编程模型)将各种并行计算机的基本特征抽象出来,形成一个处于具体并行计算机之上的抽象并行计算机,用于设计并行处理算法。迄今为止已有多种并行计算模型,如针对共享存储并行计算机的PRAM模型、针对分布式并行计算机的LogP模型等等。那么设计并行处理算法就可以依据于这些并行计算模型进行,然后将其映射到具体的并行计算机中去。

  并行算法的一般设计方法大致包含以下3个途径:

  (1) 检测和开发现有串行算法中固有并行性而直接将其并行化,这种并行设计思路比较直观,就是挖掘现有算法中的计算无关性,将任务映射到多处理器上,但对于具体的硬件平台则需要有更多的考虑,例如CUDA平台下存储器的访问方式,下一节会以CUDA平台下的box filter运算为例,进行一些分析。

  (2) 从问题本身特征出发,设计一个新的并行算法,这类情况主要是指问题本身不具备计算无关性,或者迭代或者数据相关。如图像处理在的直方图处理,要产生一个直方图必定要遍历每个像素点,而且像素点之间的操作具有相关性。下一节会分析一个CUDA平台下的直方图运算。

  (3) 修改已有的并行算法使其可求解另一类相似问题,一些经典并行算法设计思路的借鉴,也是信号与图像处理并行化的重要手段。下一节会以Fan-in算法的分析与改进进行说明。

0
相关文章