基于GPU蒙特卡洛算法的磁场下光子和电子剂量计算方法技术

技术编号:15813303 阅读:87 留言:0更新日期:2017-07-14 21:24
本发明专利技术公开了一种基于GPU蒙特卡洛算法的磁场下光子和电子剂量计算方法,包括:1采集数据;2确定GPU的最优线程数和输运任务批次;3利用蒙特卡洛算法计算每个批次在磁场作用下的光子和电子辐射剂量;4基于GPU快速原子加法统计剂量结果。本发明专利技术能快速且准确的计算出磁场作用下光子和电子的辐射剂量,可用于磁共振实时引导放射治疗MRIgRT的治疗计划系统中的剂量计算,进而提高MRIgRT治疗计划系统中剂量计算的准确性与速度,改善放射治疗的效果。

Calculation method of photon and electron dose in magnetic field based on GPU Monte Carlo algorithm

The invention discloses a calculation method of GPU, the Monte Carlo algorithm under magnetic field of photon and electron dose based on data collection includes: 1; 2 GPU to determine the optimal number of threads and transport tasks in batches; photon and electron radiation dose 3 Monte Carlo algorithm to calculate each batch under magnetic field; 4 GPU fast atom addition dose statistics based on the results of. The invention can fast and accurately calculate the radiation dose of photon and electron magnetic field, which can be used to calculate the real-time magnetic resonance guided radiotherapy treatment planning system MRIgRT dose, and then improve the MRIgRT treatment planning system dose calculation accuracy and speed, improve the effectiveness of radiation therapy.

【技术实现步骤摘要】
基于GPU蒙特卡洛算法的磁场下光子和电子剂量计算方法
本专利技术属于计算机信息技术在核
的应用,尤其涉及到医学放射治疗
,具体的说是一种基于GPU蒙特卡洛算法的磁场下光子和电子剂量计算方法,可用于磁共振实时引导放射治疗MRIgRT的治疗计划系统中的剂量计算。
技术介绍
癌症是人类死亡的主要原因之一,大约有70%的癌症患者在治疗癌症的过程中需要使用放射治疗,约有40%的癌症可以用放射治疗根治。实际患者接受的放射治疗方案是通过治疗计划系统来设计的。在治疗计划系统中,医生会根据病人的CT勾画出靶区器官与危及器官的轮廓,并设置好靶区器官的处方剂量及危及器官的剂量限值,然后这些信息会传送到物理师工作站,物理师在上述基础上,为病人制定的具体的放疗方案。这个方案主要是指设置病人实际放疗时放射源的能量、照射方向、照射野数目和权重。通过治疗计划系统计算出物理师制定的放疗方案是否满足医生规定的靶区剂量和危及器官剂量要求。若满足则按照物理师方案中提到的放射源对患者进行照射。反之则重新制定治疗计划,修改放射源数目、照射方向和权重,直到剂量计算的靶区剂量和危及器官剂量达到医生设定的要求。剂量计算主要计算的是放射源与人体模型相互作用时,在人体模型中沉积的剂量。人体模型主要是通过患者CT数据获取而来,放射源主要是参照上述物理师为病人设置的放射源的能量、照射方向、照射野数目和权重。目前的治疗计划系统中的剂量计算主要是采用解析法来计算靶区剂量和危及器官剂量,解析法适合处理均匀介质的剂量计算问题,但是患者的器官是非均匀介质,解析法在处理非均匀介质的剂量计算问题时存在较大误差。另一方面,治疗计划系统主要支持CT的数据,制定放射治疗计划方案。导致病人必须通过CT扫描才能获取人体模型数据,对于一些运动器官,为了获得它们的清晰图像,体内需植入标记物,这让不少的病人很痛苦。临床数据表明CT获得的软组织分辨率不高,运动器官即使植入标记物,图像仍然不清晰,且在CT扫描时患者受到了非治疗需要的辐射剂量。随着放疗技术与成像技术的发展,国际上提出用MRI引导放射治疗,即在治疗前、治疗中通过MRI来引导整个放射治疗的过程。MRI可实时跟踪器官运动变化,无辐射剂量,并能获得丰富的解剖结构、功能性信息。但MRI中存在磁场,而目前的治疗计划系统剂量计算并未将磁场的因素考虑,这将使得目前的治疗计划系统无法准确计算出磁场存在时的辐射剂量。另外通过PET也可以获取患者的图像信息,但目前的治疗计划系统暂时不支持PET成像的数据,用于剂量计算。蒙特卡洛方法一直是公认计算辐射剂量的“黄金准则”。蒙特卡洛方法能解决在治疗计划系统中的剂量计算遇到的非均匀介质问题。但蒙特卡洛方法是基于统计的思想,需进行大量模拟才能保证结果的准确性,所以用蒙特卡洛方法解决治疗计划系统中的剂量计算问题,将花费很长的时间才能获得剂量结果。正是因为蒙特卡洛方法花费时间长,即使它能准确计算出剂量结果,该方法也一直无法应用于临床。随着计算机的发展,基于Kepler构架和Maxwell构架的GPU在当前的科学计算中使用十分广泛。将已有的CPU大型模拟程序如Geant4、MCNP移植到GPU上,需手动改写代码,且GPU上十几GB内存分配到几千个线程,对于基于蒙特卡洛方法的程序而言,这是远远不足的。即使移植成功,也会因为GPU上的线程分歧、内存延时,C++多态功能导致编译器无法进行函数内联导致运行速度很慢。因而,目前若将基于蒙特卡洛方法的放射源粒子输运程序与GPU相结合,只能用于特定用途的蒙特卡洛程序模拟。另一方面,基于Kepler构架和Maxwell构架的GPU在科学计算时存在缺点。它们缺乏固有双精度原子加法运算的硬件支持。传统的解决方法是使用Nvidia的“比较-交换”算法从软件上效仿双精度原子加法运算。这个算法的特点是步骤不定长,GPU的线程竞争越激烈,所需步骤越多。当前GPU硬件上采用“单指令-多线程”技术,一个线程包内的32个线程在时间上以“锁步”(lockstep)方式执行指令。这样导致的结果是:如果32个线程有某些需要更新同一处全局内存,则会产生激烈的线程竞争,“比较-交换”算法所需步骤急剧增加,运算时间大幅增长。因此,将GPU与蒙特卡洛程序相结合,若不解决该问题,即使是用于特定用途的蒙特卡洛程序模拟,也无法获得快速且准确的剂量结果。
技术实现思路
本专利技术是为了解决上述现有技术存在的不足之处,提出一种基于GPU蒙特卡洛算法的磁场下光子和电子剂量计算方法,以期能快速且准确的计算出磁场作用下光子和电子的辐射剂量,可用于磁共振实时引导放射治疗MRIgRT的治疗计划系统中的剂量计算,进而提高MRIgRT治疗计划系统中剂量计算的准确性与速度,改善放射治疗的效果。本专利技术为解决技术问题采用如下技术方案:本专利技术一种基于GPU蒙特卡洛算法的磁场下光子和电子剂量计算方法的特点是按如下步骤进行:步骤1:采集数据步骤1.1、获取放射治疗加速器的照射源数据并进行处理,得到放射源信息其中,E表示源能量,表示源位置,表示源发射方向;步骤1.2、获取人体解剖结构的图像数据并重建人体模型;获取核磁共振仪的磁场强度数据步骤1.3、获取光子和电子分别与物质发生反应的核数据并进行处理,得到所述核数据的宏观截面数据Σ,对所述宏观截面数据按照能量的高低进行降序排序,得到排序后的光子宏观截面数据Σp和电子宏观截面数据Σe;步骤2、确定GPU的最优线程数和输运任务的批次;步骤2.1、利用runtimeattribute程序接口获得GPU中每个线程所需寄存器的数目r;则GPU中每个流多处理器工作在满载状态的最小线程个数为R表示每个流多处理器上的寄存器个数;从而得到GPU工作在满载状态所需线程总数为T=Mt,M表示GPU中流多处理器的个数;步骤2.2、设置放射源粒子的数目为N,并将N个放射源粒子的输运任务划分为T个批次,使得每个批次上以串行地方式待计算放射源粒子的个数为步骤3、利用蒙特卡洛算法计算每个批次在磁场作用下的光子和电子辐射剂量;步骤3.1、定义每一批抽取放射源粒子的次数为w,并初始化w=1;步骤3.2、定义第w次抽取放射源粒子时的输运次数为u,并初始化u=0;步骤3.3、利用随机数生成器从放射源信息S中第w次抽取第w个放射源粒子Sw;所述第w个放射源粒子Sw第u次输运的状态为:并判断第w次抽取第w个放射源粒子的类型,若为光子记为则执行步骤3.4;若为电子记为则执行步骤3.5;步骤3.4、基于排序后的光子宏观截面数据Σp抽取第u+1次输运时的运动步长和运动方向再执行步骤3.7;步骤3.5、基于排序后的电子宏观截面数据Σe抽取第u+1次输运时的运动步长和运动方向步骤3.6、判断所述电子是否处于人体模型的磁场区,若是,先将第w个电子沿运动方向移动距离再将第w个电子沿着式(1)修正的运动方向移动否则,仍然采用所述运动方向式(1)中,为第w个电子第u+1次输运时修正后的新方向;norm{}为归一化算符;为第u+1次对第w个电子进行抽样所得到的步长;Q为电子电荷数;c为真空中光速,m为电子静质量,为第w个电子在第u次输运时的能量;为电子第u+1次输运时未修正的运动方向;为第w个电子在人体模型中第u+1次输运时所处位置的磁场强度;步骤3.本文档来自技高网
...
基于GPU蒙特卡洛算法的磁场下光子和电子剂量计算方法

【技术保护点】
一种基于GPU蒙特卡洛算法的磁场下光子和电子剂量计算方法,其特征是按如下步骤进行:步骤1:采集数据步骤1.1、获取放射治疗加速器的照射源数据并进行处理,得到放射源信息

【技术特征摘要】
1.一种基于GPU蒙特卡洛算法的磁场下光子和电子剂量计算方法,其特征是按如下步骤进行:步骤1:采集数据步骤1.1、获取放射治疗加速器的照射源数据并进行处理,得到放射源信息其中,E表示源能量,表示源位置,表示源发射方向;步骤1.2、获取人体解剖结构的图像数据并重建人体模型;获取核磁共振仪的磁场强度数据步骤1.3、获取光子和电子分别与物质发生反应的核数据并进行处理,得到所述核数据的宏观截面数据Σ,对所述宏观截面数据按照能量的高低进行降序排序,得到排序后的光子宏观截面数据Σp和电子宏观截面数据Σe;步骤2、确定GPU的最优线程数和输运任务的批次;步骤2.1、利用runtimeattribute程序接口获得GPU中每个线程所需寄存器的数目r;则GPU中每个流多处理器工作在满载状态的最小线程个数为R表示每个流多处理器上的寄存器个数;从而得到GPU工作在满载状态所需线程总数为T=Mt,M表示GPU中流多处理器的个数;步骤2.2、设置放射源粒子的数目为N,并将N个放射源粒子的输运任务划分为T个批次,使得每个批次上以串行地方式待计算放射源粒子的个数为步骤3、利用蒙特卡洛算法计算每个批次在磁场作用下的光子和电子辐射剂量;步骤3.1、定义每一批抽取放射源粒子的次数为w,并初始化w=1;步骤3.2、定义第w次抽取放射源粒子时的输运次数为u,并初始化u=0;步骤3.3、利用随机数生成器从放射源信息S中第w次抽取第w个放射源粒子Sw;所述第w个放射源粒子Sw第u次输运的状态为:并判断第w次抽取第w个放射源粒子的类型,若为光子记为则执行步骤3.4;若为电子记为则执行步骤3.5;步骤3.4、基于排序后的光子宏观截面数据Σp抽取第u+1次输运时的运动步长和运动方向再执行步骤3.7;步骤3.5、基于排序后的电子宏观截面数据Σe抽取第u+1次输运时的运动步长和运动方向步骤3.6、判断所述电子是否处于人体模型的磁场区,若是,先将第w个电子沿运动方向移动距离再将第w个电子沿着式(1)修正的运动方向移动否则,仍然采用所述运动方向

【专利技术属性】
技术研发人员:徐榭阳露刘紅冬刘天宇林卉裴曦
申请(专利权)人:安徽慧软科技有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1