一种异构硬件环境下的粗粒度计算加速比评估方法与系统技术方案

技术编号:28558423 阅读:38 留言:0更新日期:2021-05-25 17:52
一种异构硬件环境下的粗粒度计算加速比评估方法与系统,在实际计算执行前能够评估出是否由加速的结果,避免了每次先计算再度量的开销,能够根据计算上下文,实时地自动化地评估出加速比,相对于经验、度量的方式,更为准确,也较为高效,实现计算的动态调度,将有加速比的模块运行在GPU上,没有加速比的模块依然运行在CPU上,能够最大化地利用异构硬件的计算能力,使系统实现最佳性能。

【技术实现步骤摘要】
一种异构硬件环境下的粗粒度计算加速比评估方法与系统
本专利技术属于高性能领域,涉及一种异构硬件计算环境下的计算加速比的评估方法,更具体涉及CPU、GPU混合计算场景下,同样代码在CPU、GPU硬件下计算加速比的快速评估方法。
技术介绍
随着高性能计算技术的发展,计算设备除了CPU外,还出现了越来越多的协处理器,诸如GPU、FPGA、嵌入式加速卡等,这些协处理器可以对传统的基于CPU计算的程序进行加速,提高业务系统整体的计算性能。在高性能并行计算领域,并非把CPU代码重写为比如GPU代码就可以实现计算加速,一个在CPU上运行的多线程的程序改为在GPU上运行的并行程序,经常,因为受数据拷贝的开销增加、GPU计算调度机制等因素的影响,运行速度反而下降了。现有的计算性能的预估方式主要凭人工经验及代码迁移后的实际测试结果度量,如果能够提前预估程序迁移的计算效果,那么无疑可以减少很多不必要的工作开销。
技术实现思路
针对上述情况,本专利技术创新地提出一种粗粒度的计算加速比的评估方法,该方法可以很好的解决上述问题。系统能够根据此方法迅速判断某模块由CPU迁移到GPU上计算是否有加速比,加速比大概是多少。本专利技术公开的一种异构硬件环境下的粗粒度计算加速比评估方法与系统,区别于现有的计算加速比评估方法其可以通过算法快速地自动化地估算加速效果,通过量化的加速比结果,可以更高效地调度计算,是一种计算效果评估实现手段。本专利技术的、步骤如下:步骤1.获取异构硬件的基础属性及计算模块的计算类别。<br>步骤2.根据计算模块的计算类别:数据量与计算量成线性关系或指数关系,根据计算类别选择不同的线性评估算法或指数评估算法结合计算上下文具体参数对计算模块的加速比进行预估。此步骤中加速比计算方法为:加速比N=算法在CPU计算耗时T(cpu)/算法在GPU计算耗时T(GPU),其中T(GPU)=数据IO总量S(inData+outData)/总线IO速度Speed(PCIE)+T(CPU)/并行度M。线性评估算法及指数评估算法的差异主要体现在计算量与数据量之间的关系上。比如在线性关系下,在CPU上100M数据的计算时长T(CPU)=t秒,则指数关系(一般为平方关系)下,在CPU上100M数据的计算时长为T(CPU)=t*t秒。步骤3.根据加速比结果,如果加速比>1,则表明计算由CPU迁移至GPU有加速效果,则可将计算由CPU迁移至GPU。如果加速比<=1,则表明计算由CPU迁移至GPU没有加速效果。与现有技术相比:本专利技术的有益效果是:1.在实际计算执行前能够评估出是否由加速的结果,避免了每次先计算再度量的开销。2.能够根据计算上下文,实时地自动化地评估出加速比,相对于经验、度量的方式,更为准确,也较为高效。3.实现计算的动态调度,将有加速比的模块运行在GPU上,没有加速比的模块依然运行在CPU上,能够最大化地利用异构硬件的计算能力,使系统实现最佳性能。附图说明图1实施用例中线性评估模型,并行度为64时示意图;图2实施用例中线性评估模型,并行度为64时,加速比为1时示意图;图3实施用例中指数评估模型,数据量为1GB、并行度为64时示意图;图4实施用例中指数评估模型,数据量为1GB、并行度为64,加速比为1时示意图;具体实施方式在本实施案例中,高性能计算服务器采用的硬件为IntelE52600CPU,GPU设备为NVIDIAGTX1080Ti,主板使用PCI-E3.0规范,GPU使用PCIE8X的插槽,理论传输速度为16GB/S,实际测试速度为12.8GB/S。在本实施例中,运行的为数据库系统,此数据库的底层算子均可支持CPU及GPU运行,但需要根据运行的上下文计算出来的加速比结果决定使用CPU算子还是GPU算子。在本实施例中,分别执行SQL语句1:select*fromData_100Gwhereid_int<10,SQL语句2:selecta.id_intfromData_100GajoinData_100Mbona.id_int=b.id。其中语句1的主要计算是where比较操作,计算量与数据量是线性关系。其中语句2的主要计算是Join操作,计算量与数据量是指数(平方)关系。本专利技术的具体实施步骤如下:步骤1、支持CPU/GPU异构计算算子的数据库系统获取当前硬件环境的参数,比如PCIE总线传输效率、单核CPU与单核GPU性能比,这些参数可以通过手工配置或程序自动统计获得。本实施例中PCIE3.0总线实际传输速度为12.8GB/S,单核CPU与单核GPU性能比为1。系统同时获取计算模块(在数据库系统中为数据库的底层算子)的计算类别,比如filter算子为线性算子类别、join算子为指数算子类别等,算子的类别由人工根据算子的计算特点(数据量与计算量之间的关系)而提前设定。步骤2、根据软硬件上下文生成具体的加速比评估模型,在本实施例中,输出数据大小为输入数据D的10%,代入之前的参数,加速比N=T/(1.1*D/12.8+T/m),T为同等计算复杂度算法的CPU计算耗时,D为输入数据大小,m为GPU并行度,每100M数据在CPU上耗时为t秒。则线性评估算法为:因为T=t*D/0.1=10t*D,所以N=10t*D/1.1*D/12.8+10t*D/m)=10t/(1.1/12.8+10t/m)=1/(1.1/128t+1/m),其中t取值范围0.001S~10S,m取值范围64~1024。指数评估算法为:因为T=t*square(D/0.1)=100t*D*D,所以N=100t*D*D/(1.1*D/12.8+100t*D*D/m)=100t/(1.1/12.8D+100t/m)=1/(1.1/1280Dt+1/m),其中t取值范围0.001S~10S,m取值范围64~1024,D取值范围0.1GB~16GB。步骤3、当数据库系统接收到SQL语句,解析并分解为SQL物理执行计划,物理执行计划由底层SQL算子组成,此为成熟技术。在本实施例中,SQL语句1解析后的主要计算算子为filter算子,SQL语句2解析后的主要计算算子为join算子。步骤4、当数据库系统处理SQL语句1时,filter算子为线性类别,则采用线性评估算法,并行度m设定为64,此参数可根据具体情况调整设定。如附图1所示,在本实施例中线性模型的极限加速比为60,当判断是否具备加速比时,则要关心加速比是否大于1,本实施例中SQL语句1的filter算子百M数据在CPU中计算时长为0.005秒(此数据为统计结果,统计方法为通用方法,成熟技术),如附图2所示,按先行评估算法评估其加速比为N=1/(1.1/(128*0.005)+1/64)=0.576,因为加速比N<1,说明此种情况下GPU算子没有加速效果,因此数据库系统继续使用filterCPU算子完成计算。步骤5、当数据库系统处理SQL语句2本文档来自技高网...

【技术保护点】
1.一种异构硬件环境下的粗粒度计算加速比评估方法与系统,其特征在于:步骤如下:/n步骤1.获取异构硬件的基础属性及计算模块的计算类别;/n步骤2.根据计算模块的计算类别:数据量与计算量成线性关系或指数关系,根据计算类别选择不同的线性评估算法或指数评估算法结合计算上下文具体参数对计算模块的加速比进行预估;/n此步骤中加速比计算方法为:加速比N=算法在CPU计算耗时T(cpu)/算法在GPU计算耗时T(GPU),其中T(GPU)=数据IO总量S(inData+outData)/总线IO速度Speed(PCIE)+T(CPU)/并行度M;线性评估算法及指数评估算法的差异主要体现在计算量与数据量之间的关系上;比如在线性关系下,在CPU上100M数据的计算时长T(CPU)=t秒,则指数关系(一般为平方关系)下,在CPU上100M数据的计算时长为T(CPU)=t*t秒;/n步骤3.根据加速比结果,如果加速比>1,则表明计算由CPU迁移至GPU有加速效果,则可将计算由CPU迁移至GPU;如果加速比<=1,则表明计算由CPU迁移至GPU没有加速效果。/n

【技术特征摘要】
1.一种异构硬件环境下的粗粒度计算加速比评估方法与系统,其特征在于:步骤如下:
步骤1.获取异构硬件的基础属性及计算模块的计算类别;
步骤2.根据计算模块的计算类别:数据量与计算量成线性关系或指数关系,根据计算类别选择不同的线性评估算法或指数评估算法结合计算上下文具体参数对计算模块的加速比进行预估;
此步骤中加速比计算方法为:加速比N=算法在CPU计算耗时T(cpu)/算法在GPU计算耗时T(GPU),其中T(GPU)=数据IO总量S(inData+outData)...

【专利技术属性】
技术研发人员:汤文莉
申请(专利权)人:南京工业职业技术学院
类型:发明
国别省市:江苏;32

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

1