一种基于多特征耦合的CUDA程序一体化性能预测方法技术

技术编号:20865774 阅读:30 留言:0更新日期:2019-04-17 09:13
本发明专利技术提供一种基于多特征耦合的CUDA程序一体化性能预测方法,属于电子与信息技术领域。本发明专利技术首先提取数据、程序、GPU硬件的固有特征,定义了设备并行空间DPS、设备并行空间闲置度DPSID、SM Warp负载NSMW以及并行效应因子PEF等高层次性能相关特征;然后通过比较Dg与APDG,以及DPSID与1的数值关系,判定CUDA程序内核状态并获得对应的内核持续时间体积KDTV,最终得到此时的内核持续时间KDT,完成预测。本发明专利技术解决了现有技术对CUDA程序性能预测精准度较低的问题。本发明专利技术可用于并行程序性能的精准预测。

【技术实现步骤摘要】
一种基于多特征耦合的CUDA程序一体化性能预测方法
本专利技术涉及一种CUDA程序一体化性能预测方法,属于电子与信息

技术介绍
程序性能预测是并行程序设计过程中的重要环节,它在定位程序性能瓶颈,优化程序性能等方面起着重要作用。串行程序运行时间的增长数量级与问题规模间的关系可以由算法时间复杂度来描述。然而由于GPU(GraphicsProcessingUnit图形处理器)程序的指令执行机制专门为并行而设计,且与设备硬件架构密切相关,加之CUDA(ComputeUnifiedDeviceArchitecture,统一计算设备架构)程序运行状态还会受到计算指令延迟、内存带宽、内核执行配置、同步次数等因素的影响,使其性能难以用基于问题规模分析串行程序性能的传统方法进行预测。评估并行程序及算法性能优化水平的经典理论有Amdahl定律和Gustafson定律,它们描述了串行程序并行化后所能取得的性能提升上界,加速比和并行效率用于衡量并行程序性能优化效果。其他性能度量指标有Work+Step复杂度、计算复杂度、访存复杂度等,它们借鉴了算法时间复杂度的思想,但度量结果较为粗糙(精准度低)。为对CUDA程序性能水平进行精确预测,一系列与性能有关的高层次特征及度量,各种性能预测或分析模型被相继提出。高层次特征是对基本特征的整合,也是对算法逻辑、程序结构或硬件架构的高度抽象,它们是建立具体评估方法的基础要素。预测分析模型则使用数学方法对程序的执行过程进行分析或建模,建立特征输入和性能输出间的准确函数关系。基于统计学习方法的模型因为无法获取全面的数据集导致模型泛化能力低。此外,数据法或模拟法也可以被用来评估程序性能,但数据法对并行程序适用性不强,模拟法的时间开销过大。目前有关GPU通用高性能计算的大多数研究都热衷于开发加速应用,而GPU性能预测问题尚缺少成熟的解决方案,相关技术仍需进一步完善。
技术实现思路
本专利技术为解决现有技术对CUDA程序性能预测精准度较低的问题,提供了一种基于多特征耦合的CUDA程序一体化性能预测方法。本专利技术所述一种基于多特征耦合的CUDA程序一体化性能预测方法,通过以下技术方案实现:步骤一、提取数据、程序、GPU硬件的固有特征;具体包括:获取CUDA程序内核单位Warp运行时间Wtime、Warp大小Wsize,设计内核执行配置参数Dg、Db,依据Db计算线程块包含的Warp数目NBW;计算线程应用的寄存器数量RPT,以及单位线程块应用的共享内存大小SMPB;获取GPU设备的计算能力Capability、CUDACore数量NCC、流多处理器SM数量NSM;Warp为线程束,GPU调度的基本单元;Core为硬件核心;步骤二、使用占有率计算器结合Db、RPT、SMPB、Capability计算GPU最大激活状态Warp数目NAW;再结合NSM计算设备并行空间DPS;利用特征Dg、NBW、NSM计算内核Warp总数NKW;步骤三、以Warp为研究单位,利用步骤一中获取到的NCC、NBW、Wsize、NSM特征,获得可绝对并行的线程块数目APDG;结合步骤二中得到的DPS与NKW计算设备并行空间闲置度DPSID;通过NKW、NBW、NSM得到SMWarp负载NSMW;步骤四、通过比较Dg与APDG,以及DPSID与1的数值关系,判定CUDA程序内核状态并获得对应的内核持续时间体积KDTV;步骤五、针对步骤四中判定的结果,得到此时的内核持续时间KDT,完成预测。本专利技术最为突出的特点和显著的有益效果是:本专利技术所涉及的一种基于多特征耦合的CUDA程序一体化性能预测方法,以Warp负载均衡型CUDA程序内核函数为研究对象,将程序运行时间作为性能分析指标,从分析GPUWarp调度机制入手,结合GPU硬件参数特征以及CUDA内核函数固有属性,定义了设备并行空间(DPS)、设备并行空间闲置度(DPSID)、SMWarp负载(NSMW)以及并行效应因子(PEF)等高层次性能相关特征;基于上述特征,构建了一种基于多特征耦合的CUDA程序内核函数一体化性能预测方法来精准预测CUDA程序内核函数执行性能;能够恰当地描述CUDA内核在不同执行配置参数下的运行时间规律;基于内核KDT指标,还可以进一步计算出加速比,指令吞吐量等性能指标。本专利技术预测准确度高且具有通用性,多个内核实验的结果验证了本专利技术方法对现有程序性能的平均预测准确率达到94.73%,对并行算法性能也能做出合理的定性预测。附图说明图1为本专利技术特征值计算流程图;图2为本专利技术中由算得的特征值进行性能预测的流程图;图3为实施例中基准程序imgFiltert=10的KDT曲线及散点图;图4为实施例中基准程序vecaddX3的KDT曲线及散点图;图5为实施例中基准程序matMul的KDT曲线及散点图;图6为实施例中基准程序transpose的KDT曲线及散点图;图7为实施例中基准程序vecaddX3在不同NSMW数值下的PEF特征值分布图;图8为实施例中基准程序imgFiltert=10在不同NSMW数值下的PEF特征值分布图;图9为实施例中基准程序transpose在不同NSMW数值下的PEF特征值分布图;图10为实施例中基准程序matMul在不同NSMW数值下的PEF特征值分布图;图11为实施例中vecaddX3程序用例在Dg≤APDG时的KDTV实际值和预测值对比图;图12为实施例中imgFiltert=10程序用例在Dg≤APDG时的KDTV实际值和预测值对比图;图13为实施例中vecaddX3程序用例在Dg>APDG且DPSID≥1时的真实KDTV分布图;图14为实施例中imgFiltert=10程序用例在Dg>APDG且DPSID≥1时的真实KDTV分布图;图15为实施例中imgFiltert=20程序用例在Dg>APDG且DPSID≥1时的真实KDTV分布图;图16为实施例中matMul程序用例在Dg>APDG且DPSID≥1时的真实KDTV分布图;图17为实施例中imgFiltert=10程序用例在Dg>APDG且DPSID<1时的KDTV实际值和预测值对比图;其中,predict表示预测值;图18为实施例中imgFiltert=20程序用例在Dg>APDG且DPSID<1时的KDTV实际值和预测值对比图;图19为实施例中matMul程序用例在Dg>APDG且DPSID<1时的KDTV实际值和预测值对比图;图20为实施例中transpose程序用例在Dg>APDG且DPSID<1时的KDTV实际值和预测值对比图。具体实施方式具体实施方式一:结合图1对本实施方式进行说明,本实施方式给出的一种基于多特征耦合的CUDA程序一体化性能预测方法,具体包括以下步骤:步骤一、提取数据、程序(或算法)、GPU硬件的固有特征;具体包括:获取CUDA程序内核单位Warp运行时间Wtime、Warp大小Wsize,设计内核执行配置参数<<<Dg,Db>>>,依据Db计算线程块包含的Warp数目NBW(NumberofBlockWarps);计算线程应用的寄存器数量本文档来自技高网
...

【技术保护点】
1.一种基于多特征耦合的CUDA程序一体化性能预测方法,其特征在于,所述方法具体包括以下步骤:步骤一、提取数据、程序、GPU硬件的固有特征;具体包括:获取CUDA程序内核单位Warp运行时间Wtime、Warp大小Wsize,设计内核执行配置参数Dg、Db,依据Db计算线程块包含的Warp数目NBW;计算线程应用的寄存器数量RPT,以及单位线程块应用的共享内存大小SMPB;获取GPU设备的计算能力Capability、CUDA Core数量NCC、流多处理器SM数量NSM;Warp为线程束Core为硬件核心;步骤二、使用占有率计算器结合Db、RPT、SMPB、Capability计算GPU最大激活状态Warp数目NAW;再结合NSM计算设备并行空间DPS;利用特征Dg、NBW、NSM计算内核Warp总数NKW;步骤三、以Warp为研究单位,利用步骤一中获取到的NCC、NBW、Wsize、NSM特征,获得可绝对并行的线程块数目APDG;结合步骤二中得到的DPS与NKW计算设备并行空间闲置度DPSID;通过NKW、NBW、NSM得到SM Warp负载NSMW;步骤四、通过比较Dg与APDG,以及DPSID与1的数值关系,判定CUDA程序内核状态并获得对应的内核持续时间体积KDTV;步骤五、针对步骤四中判定的结果,得到此时的内核持续时间KDT,完成预测。...

【技术特征摘要】
1.一种基于多特征耦合的CUDA程序一体化性能预测方法,其特征在于,所述方法具体包括以下步骤:步骤一、提取数据、程序、GPU硬件的固有特征;具体包括:获取CUDA程序内核单位Warp运行时间Wtime、Warp大小Wsize,设计内核执行配置参数Dg、Db,依据Db计算线程块包含的Warp数目NBW;计算线程应用的寄存器数量RPT,以及单位线程块应用的共享内存大小SMPB;获取GPU设备的计算能力Capability、CUDACore数量NCC、流多处理器SM数量NSM;Warp为线程束Core为硬件核心;步骤二、使用占有率计算器结合Db、RPT、SMPB、Capability计算GPU最大激活状态Warp数目NAW;再结合NSM计算设备并行空间DPS;利用特征Dg、NBW、NSM计算内核Warp总数NKW;步骤三、以Warp为研究单位,利用步骤一中获取到的NCC、NBW、Wsize、NSM特征,获得可绝对并行的线程块数目APDG;结合步骤二中得到的DPS与NKW计算设备并行空间闲置度DPSID;通过NKW、NBW、NSM得到SMWarp负载NSMW;步骤四、通过比较Dg与APDG,以及DPSID与1的数值关系,判定CUDA程序内核状态并获得对应的内核持续时间体积KDTV;步骤五、针对步骤四中判定的结果,得到此时的内核持续时间KDT,完成预测。2.根据权利要求1所述一种基于多特征耦合的CUDA程序一体化性能预测方法,其特征在于,步骤二中所述NAW的具体计算过程为:NAW=calculator(Db,RPT,SMPB,Capability)(1)其中,calculator(·)为占有率计算器函数形式。3.根据权利要求1所述一种基于多特征耦合的CUDA程序一体化性能预测方法,其特征在于,步骤二中所述计算设备并行空间DPS的具体过程为:DPS=NAW×NSM(2)。4.根据权利要求1所述一种基于多特征耦合的CUDA程序...

【专利技术属性】
技术研发人员:陈浩曲海城于思淼陈稳
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:黑龙江,23

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

1