本发明涉及医疗器械烘干装置,具体为基于cuda并行计算架构对折叠进行gpu并行化的方法。
背景技术:
1、presto是一套完整开源的脉冲星搜索工具,其中包含适于各个搜索流程的工具。折叠也是其中之一,是用于搜索周期信号的,对百万量级的候选体折叠生成相应的脉冲轮廓图,并基于这些脉冲轮廓图对候选体进行初筛,但随着射电望远镜设备的越发精密和技术手段的越发成熟,产生的观测数据量剧增,急需快速处理数据的问题,为此,我们提出一种实用性更高的基于cuda并行计算架构对折叠进行gpu并行化的方法。
技术实现思路
1、本发明的目的在于提供基于cuda并行计算架构对折叠进行gpu并行化的方法,解决了现有的问题。
2、为实现上述目的,本发明提供如下技术方案:基于cuda并行计算架构对折叠进行gpu并行化的方法,包括以下步骤:
3、步骤s1、基于gperftools做性能分析;
4、步骤s2、分析数据依赖性;
5、步骤s3、基于cuda的gpu并行。
6、优选的,所述步骤s1具体包括以下步骤:
7、s11、链接库,安装gperftools会附带库环境;
8、s12、运行需要做性能分析的代码,此时gperftools会对运行的代码进行性能分析,并输出结果;
9、s13对这个输出的结果做分析运算,得到其中各个函数在性能分析中所占的比例,生成可读的文本和图片结果。
10、优选的,所述步骤s2具体包括以下步骤:
11、s21、在并行时,有数据依赖关系的总会被分配到用一个计算资源上执行,并不会产生错误歧义;
12、s22、有循环依赖的是不同次的迭代,因此有可能会分配到不同的计算资源上,而此时因为缺少之前的迭代的结果,本次迭代中的计算会产生错误结果,从而依次影响后续的迭代,导致最终的计算错误。
13、优选的,所述步骤s3具体包括以下步骤:
14、串行的折叠中的的combine_prof函数是在四重循环里面调用的,在计算数据的时候,是在计算机上重复执行四重循环次数个combine_profs函数,而基于cuda的gpu并行,则是消除了数据循环依赖的基础上,可以把四重循环次数个gpu_conbine_profs函数发送到gpu的核上计算,同时可以在gpu的核上调用多个函数。
15、与现有技术相比,本发明的有益效果如下:
16、本发明基于cuda并行计算架构对折叠进行gpu并行化,在并行之前对折叠先进行优化,消除其中的数据循环依赖并且重构目标函数,重写cuda核函数在gpu上实现折叠并取得良好的效果。
17、本发明分析、消除数据的循环依赖性,在并行时,同时有很多个gpu核心在参与计算,如果存在数据的循环依赖性,即本次迭代的结果在下一次或多次迭代中使用,那么在做gpu并行时,分配到不同的gpu核心上计算,这种情况下会产生错误的计算结果,因此必须消除数据循环依赖性来保证在gpu上并行的准确性以及得到准确的计算结果;最后在有了以上的基础上,对原函数进行重构保留适合并行的部分,已达到更好的gpu并行效果,结合cuda把重构的函数重写为在gpu上运行的核函数。
1.基于cuda并行计算架构对折叠进行gpu并行化的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于cuda并行计算架构对折叠进行gpu并行化的方法,其特征在于,所述步骤s1具体包括以下步骤:
3.根据权利要求1所述的基于cuda并行计算架构对折叠进行gpu并行化的方法,其特征在于,所述步骤s2具体包括以下步骤:
4.根据权利要求1所述的基于cuda并行计算架构对折叠进行gpu并行化的方法,其特征在于,所述步骤s3具体包括以下步骤: