文摘
荧光分子断层扫描(FMT) early-photons可以提高空间分辨率和保真度的重建结果。然而,它的计算规模总是大,限制了其应用。在本文中,我们介绍了加速战略early-photon FMT与图形处理单元(gpu)。根据程序,整个解决方案的FMT分为几个模块,每个模块的时间消耗进行了研究。在这个策略中,两个最耗时的模块(Gd和W模块)分别与GPU加速,而其他模块仍然编码Matlab。几个模拟研究异构数字鼠标图谱进行确认加速策略的性能。结果证实了该策略的可行性和表明,显著提高了处理速度。
1。介绍
荧光分子断层扫描(FMT)是一种有前途的小动物成像技术,允许可视化荧光生物标记的三维分布在活的有机体内(1,2]。然而,重大挑战留在FMT,因为高度的生物组织中光散射结果在图像重建一个不适定问题,从而降低空间分辨率(3]。考虑这一点,time-gated技术,提出了只利用“early-arriving”光子经历一些散射事件,减少大量的扩散光子。到目前为止,许多组织已经验证与time-gated检测技术,重建结果的空间分辨率和保真度可以提高(3- - - - - -5]。
FMT使用早期重建的光子,有几种可行的算法,如过滤投影方法,方案基于时间分辨扩散方程(DE)、时间分辨电报方程(TE)和辐射输运方程的二阶累积量近似(RTE), (3- - - - - -7]。其中,基于时间分辨德是最受欢迎的方法用于简单。然而,与连续波FMT (CW-FMT)相比,时域FMT (TD-FMT)将花费更多的时间因为时间尺度。一般来说,解决TD-FMT将花费十分钟时间和没有有效的方案,目前它的加速度。
幸运的是,图形处理单元(GPU)技术的高速发展提供了方向的加速度TD-FMT解决方案。GPU的高度并行的结构使得它比中央处理单元(CPU)更有效的算法对并行的浮点运算。然而,在GPU编程一直困难,直到统一计算设备架构(CUDA)在2006年提出了8]。CUDA附带的软件环境,允许开发者使用C高级编程语言。利用人GPU并行加速算法领域的研究了荧光断层。方和博厄斯报道一个平行的蒙特卡罗算法的加速了GPU在任意3 d建模时间分辨光子迁移浑浊的媒体(9]。张等人实现加速度自适应有限元框架生物发光断层扫描和CUBLAS CULA库(10]。然而,到目前为止,人没有利用GPU技术解决TD-FMT。
在本文中,我们介绍了加速early-photon FMT的策略。每个模块的时间消耗是研究证实GPU加速的必要性。的战略,两个最耗时的模块(和W模块)加速了CUDA语言,分别在Matlab和其他模块编码。几个与异构数字模拟鼠标图谱进行评估的性能加速策略。
本文组织如下。节2向前,和逆模型基于TD-FMT详细说明。数值模拟与荧光目标嵌入到一个3 d小鼠模型。节3,仿真结果显示和分析。最后,我们讨论的结果和结论部分4。
2。材料和方法
2.1。时域扩散方程和有限元方法
辐射传输方程(RTE)被认为是最精确的模型来描述光子在生物组织中传播的过程。然而,由于RTE计算昂贵,RTE的扩散近似是常用的。因此,光子传播的FMT可以建模耦合时域DEs如下(7]: 在哪里表示为激发光和荧光光子密度,分别。提供脉冲光源。吸收系数和吗是减少散射系数。是定义的扩散系数。激发和发射波长接近对方,光学特性被认为是相同的激发和发射波长的简化。荧光目标被荧光分布和生命周期是生命周期函数。是时间卷积算子。是光速。
为了解决这些方程,罗宾边界条件在边界上实现该地区的(7]: 在哪里表示边界的外法线向量。的系数考虑到两国媒体的折射率不匹配。
基于一阶玻恩近似,荧光信号衡量一个检测器一个脉冲激励源的位置在时间可以写成
权重矩阵被描述为 在哪里和格林函数的激发和发射(和简而言之)。此外,对于各向同性脉冲源,等于。
为了减少异质性的影响,归一化玻恩近似(11使用如下: 在哪里是归一化玻恩近似的。
利用标准Galerkin-FEM方法,对象离散成网格节点和时间序列的近似时间点的时间间隔。然后,格林函数可以推导出: 在哪里和矩阵的在给出的表达式一样7,12,13] 但不同的形式:
最后,(3)转化为矩阵形式方程如下:
然后未知的荧光分布在不同天盖茨获得通过求解线性方程(9)使用代数重建技术(ART)与非负约束。
2.2。GPU加速策略
2.2.1。加速度的流程图的策略
整个过程中,有大量的矩阵运算,适合GPU并行加速度。然而,除了矩阵运算,还有其他一些操作,比如参数配置和网格离散化,不适合GPU加速。因此,其余部分将在Matlab中实现编程的灵活性。整个算法的执行流程图如图1。主程序包含部分不必要的在Matlab加速执行。的部分和重量矩阵加速度,哪些需要加速了GPU,编码到子例程,所以被称为的Matlab程序。为加速度,因为CUBLAS库用于识别的子例程可以C编译器,“Matlab可执行”(墨西哥人)技术用于Matlab程序和之间的界面加速度。权重矩阵加速度,CUDA子程序中使用的语言,因此NVMEX技术是利用接口。加速算法和NVMEX技术细节在接下来的部分。
2.2.2。加速度
在计算过程中,模块来解决耗费时间,因为矩阵求逆应该执行对每个探测器在每个时间节点。尽管该方法来解决类似的,光源的数量远小于探测器的数量。因此,消费的时间非常少,这是不必要的加速。大尺寸的矩阵求逆计算复杂和没有有效的方法这个问题。幸运的是,矩阵需要倒生的每个探测点和每个时间节点都是相同的。因此,矩阵的反演可以提前计算,因此反演操作可以被转换成乘法操作,可以更有效地利用GPU加速。
NVIDIA提供了CUBLAS图书馆之上的CUDA驱动开发人员做一些基本的线性代数操作。CUBLAS是线性代数的基本子程序的实现(bla)和“铜”代表CUDA (10]。在解决乘法操作可以通过使用CUBLAS库来实现。
此外,它可以被发现为每个探测器是无关紧要的,可以并行计算。然而,对于不同的时间节点,不能同时因为计算(计算)th的时间节点取决于th的时间节点。因此,我们可以计算所有探测器的一个时间节点。最后,整个的结构应该改变为了解决权重矩阵方便。
2.2.3。权重矩阵加速度
(所4),解决权重矩阵,时间卷积的几个矩阵计算。因为数量的炮检(sd)对大的大小或对于每个点和每个时间节点大,整个过程解决矩阵是耗费时间的重量。
采用CUDA语言解决权重矩阵的加速算法。图2显示了加速算法的原则。和格林函数一个源和探测器的时间节点。行代表不同的网格节点和列代表不同的时间节点。它可以发现每一行的数据是无关紧要的,只有时间卷积计算。因此,每一行的数据可以分成不同的线程;因此,他们可以同时实现。本文中包含的线程的数量每一块配置256。总块编号配置根据矩阵的行号。纹理内存用于负载的矩阵,,E因为它可以加速缓存的数据访问速度。
2.2.4。NVMEX技术
Matlab的执行效率低于C或Fortran,耗时子程序总是与C和Fortran程序执行到二进制mex files,可以加载和执行由Matlab翻译。
然而,与CUDA语言子程序不能直接执行到mex files因为CUDA语言不能被传统的基于C或Fortran编译器。相反,NVMEX技术可以解决这个问题,“NV”代表NVIDIA。NVMEX技术连接Matlab和CUDA语言方便和有效。NVMEX技术,基于CUDA的代码被编译成mex files”学校网站“依从者,然后由Matlab调用解释器。
2.3。实验装置
数值试验进行验证的性能加速策略。综合测量的生成是基于无线,time-gated FMT系统示意图描述图3(一个)。激发光的超快激光发射大约ps脉冲。成像鼠标悬浮旋转舞台上,激光光束耦合到鼠标的表面由一对galvanometer-controlled镜子。最后,透射光探测到一个高速CCD加剧(ICCD)对面的激发光7]。
(一)
(b)
(c)
在这个模拟研究中,采用3 d鼠标atlas提供不仅复杂表面,还解剖信息(14]。我们执行数值模拟基于鼠标胸部区域,所以只有鼠标躯干从颈部到肝脏的底部,如图3 (b)被选中,3厘米的高度。
在模拟鼠标悬浮在旋转舞台上,转动轴的定义是设在。鼠标旋转360°60°的增量和收集的数据包括6预测。投影数是6,因为整个程序的计算规模将扩大随着投影数的增加,计算机的内存消耗将超过极限。如图3 (c)视野(FOV)的检测对每个激励源是120°。一个圆柱形荧光目标的高度0.2厘米和0.1厘米半径位于(−−0.31,0.02,1.93),蓝色的圆圈在图所示3 (c)。
模拟执行在一个异构的小鼠模型。的吸收系数和散射系数降低表所示1计算基于[15),被分配到心脏、肺、肝脏来模拟光子在生物组织中传播。
为了评估的加速度性能加速策略,6模拟的情况下进行。配置这些病例是相同的除了离散网格节点和探测器的数量是不同的。激发和发射强度表面的小鼠模型提前被转发模拟计算程序。
在不同的情况下,重建荧光分布在300 ps的时间节点显示为early-photon结果。重建,艺术的弛豫参数和迭代步骤的数目是100。
最后,程序上执行一个英特尔(R) (TM)核心i7 - 2600 CPU和16 GB的内存(3.4 GHz)平台。一个NVDIA Geforce 336 GTX 460显卡核心是用来加速策略。CUDA的版本号是4.0。对比项目是2008年由Matlab和COMSOL多重物理量3.5 (COMSOL Inc .,斯德哥尔摩,瑞典)。
3所示。结果
3.1。GPU加速的必要性
模拟的情况下,每个模块的时间消耗Matlab表所示2。整个项目分为6个模块,其中T4和T5模块适合GPU-enabled加速度。(事实上,T3模块也是矩阵运算。然而,T3所消耗的时间太短而整个程序是不必要的加速)。
可以发现,T4和T5模块耗时相对于其他模块。为了定量研究时间占用,我们定义每个模块的时间百分比为每种情况下的总时间。的的值(T4)模块,W(T5)模块,()模块如图4。它可以发现,对于每个案例,值模块是超过95%。因此,我们可以得出结论:GPU加速是必要的。
3.2。加速加速算法的性能
6模拟的情况下,荧光的目标是重建的Matlab程序和GPU加速策略,分别。时间消耗记录每个模块的两种方法。然后的加速比加速算法,权重矩阵加速算法,分别和整个加速策略进行了研究。
的时间消耗通过这两种方法都展示在表3。的加速比加速算法在不同情况下表所示3。它可以发现加速率减少网格节点数量的增加。最主要的原因是,在加速算法计算所有探测点和一个时间节点。因此,结构的应调整到另一种形式,以适合以下矩阵计算重量。内存需要这一步是巨大的,随着规模的增加,计算机的内存可以超过物理内存导致更多的时间消耗。
消耗的时间权重矩阵的两种方法和加速比是展示在表4。权重矩阵的加速比加速度超过25,这比高加速算法。原因是高度并行卷积操作,这使得它更容易为GPU实现显著的加速。
整个战略的加速效果如表所示5。最后的加速效应是加速度的计算之间的妥协和。
3.3。加速策略的准确性
在GPU加速策略,执行算术运算与单精度,因为双精度运算结果的使用在增加内存需求和减少加速性能。然而,与单一精密操作可能会带来一些错误与双精度由Matlab操作。
为了研究单精确操作的错误带来的GPU。一个模拟案例有4697个网格节点和1409年选择探测器研究重建结果的准确性(事实上,所有的病例都得出相同的结论,只显示一个案例)。除此之外,增加了10%,零均值高斯噪声合成数据来模拟实际情况。图5显示了重建的结果由Matlab和GPU加速的策略。
(一)
(b)
(c)
(d)
然后,计算结果之间的最大误差如下: 在哪里和支持重建的荧光信号在每个节点通过Matlab和GPU加速策略,分别。它可以发现,最大误差为0.15%,可以忽略不计。
4所示。讨论
在本文中,我们介绍了加速战略early-photon荧光分子断层与GPU。结果验证数值模拟的几种情况这种加速策略的可行性。
加速策略,加速比是大约10不同的情况。相比于其他GPU-enabled加速算法(9,10),加速比不是很好。主要有两个原因。首先,步骤来解决主要是矩阵求逆操作,适合并行加速比卷积矩阵乘法和矩阵的操作。除此之外,所消耗的时间的结构转换不容忽视,而计算规模很大。其次,对比程序执行的Matlab和Matlab矩阵运算的函数优化。
整个加速策略的效率取决于两个因素:时间比例的并行模块对整个项目和每个加速算法的加速效率。它可以发现权重矩阵算法的加速比是比。案例研究的重点是不同的计算大小和每种情况下的投影数是6为简单起见。如果投影数增加而网格节点和探测器的数量保持不变,时间比例的权重矩阵模块将会增加。因此,对于这些情况下,最终的加速率会更高。
为加速算法,加速率不是很显著。未来的工作将集中在改善它的性能。事实上,塞矩阵由有限元是一个稀疏矩阵和稀疏矩阵求逆操作执行时使用Matlab。然而,稀疏没有利用GPU加速算法。相信利用稀疏的矩阵将进一步改进的加速比加速算法。
我们执行几个加速度情况下不同的参数来测试策略。成像质量是提高网格节点和探测器的数量增加的时候。更多的探测器导致更好的空间分辨率和细网格将提供更多细节在重建的结果16]。然而,本文重点是加速策略的性能不同的仿真案例。实验参数之间的关系和重建的结果不是关键,不考虑。
总之,我们用GPU加速early-photon荧光分子断层。证实了这种加速策略的可行性几个模拟。加速的结果显示一些错误而时间消耗明显降低。
确认
这项工作是由中国国家基础研究计划(973)资助下不。2011 cb707701,中国国家自然科学基金批准号下81071191,81271617,国家重大科学仪器设备开发项目批准号2011 yq030114、国家科学和技术支持项目批准号下2012 bai23b00。