首页> 中国专利> 一种异构硬件环境下的粗粒度计算加速比评估方法与系统

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

摘要

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

著录项

  • 公开/公告号CN112835772A

    专利类型发明专利

  • 公开/公告日2021-05-25

    原文格式PDF

  • 申请/专利权人 南京工业职业技术学院;

    申请/专利号CN201911164810.X

  • 发明设计人 汤文莉;

    申请日2019-11-25

  • 分类号G06F11/34(20060101);

  • 代理机构32249 南京瑞弘专利商标事务所(普通合伙);

  • 代理人张宁馨

  • 地址 210016 江苏省南京市秦淮区中山东路532-2号

  • 入库时间 2023-06-19 11:05:16

说明书

技术领域

本发明属于高性能领域,涉及一种异构硬件计算环境下的计算加速比的评估方法,更具体涉及CPU、GPU混合计算场景下,同样代码在CPU、GPU硬件下计算加速比的快速评估方法。

背景技术

随着高性能计算技术的发展,计算设备除了CPU外,还出现了越来越多的协处理器,诸如GPU、FPGA、嵌入式加速卡等,这些协处理器可以对传统的基于CPU计算的程序进行加速,提高业务系统整体的计算性能。在高性能并行计算领域,并非把CPU代码重写为比如GPU代码就可以实现计算加速,一个在CPU上运行的多线程的程序改为在GPU上运行的并行程序,经常,因为受数据拷贝的开销增加、GPU计算调度机制等因素的影响,运行速度反而下降了。现有的计算性能的预估方式主要凭人工经验及代码迁移后的实际测试结果度量,如果能够提前预估程序迁移的计算效果,那么无疑可以减少很多不必要的工作开销。

发明内容

针对上述情况,本发明创新地提出一种粗粒度的计算加速比的评估方法,该方法可以很好的解决上述问题。系统能够根据此方法迅速判断某模块由CPU迁移到GPU上计算是否有加速比,加速比大概是多少。

本发明公开的一种异构硬件环境下的粗粒度计算加速比评估方法与系统,区别于现有的计算加速比评估方法其可以通过算法快速地自动化地估算加速效果,通过量化的加速比结果,可以更高效地调度计算,是一种计算效果评估实现手段。

本发明的、步骤如下:

步骤1.获取异构硬件的基础属性及计算模块的计算类别。

步骤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时示意图;

具体实施方式

在本实施案例中,高性能计算服务器采用的硬件为Intel E5 2600CPU,GPU设备为NVIDIA GTX 1080Ti,主板使用PCI-E 3.0规范,GPU使用PCIE 8X的插槽,理论传输速度为16GB/S,实际测试速度为12.8GB/S。在本实施例中,运行的为数据库系统,此数据库的底层算子均可支持CPU及GPU运行,但需要根据运行的上下文计算出来的加速比结果决定使用CPU算子还是GPU算子。

在本实施例中,分别执行SQL语句1:select*from Data_100G where id_int<10,SQL语句2:select a.id_int from Data_100G a join Data_100M b on a.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算子没有加速效果,因此数据库系统继续使用filter CPU算子完成计算。

步骤5、当数据库系统处理SQL语句2时,join算子为指数类别,则采用指数评估算法,因为NVIDIA 1080Ti显存大小为11G,因此每次送入GPU进行计算的数据D大小设为1GB,并行度m设定为64,此参数可根据具体情况调整设定。如附图3所示,在本实施例中线性模型的极限加速比介于60与70之间,当判断是否具备加速比时,则要关心加速比是否大于1,本实施例中SQL语句2的Join算子百M数据在CPU中计算时长为0.2秒(此数据为统计结果,统计方法为通用方法,成熟技术),如附图2所示,按先行评估算法评估其加速比为N=1/(1.1/(1280*1*0.2)+1/64)=50.19,因为加速比N>1,说明此种情况下GPU算子有很好的加速效果,因此数据库系统使用join GPU算子完成计算。

特别说明的是,本发明是异构硬件环境下的粗粒度计算加速比评估方法,其实现的技术形式不仅仅限于单独的算法,也可以嵌入到硬件系统中实现,其基本原理是一致的。

当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,比如应用大数据处理系统中、应用到AI混合计算执行场景中,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号