CN115599195A - 一种基于cuda性能计数器的gpu能耗预测方法及系统 - Google Patents

一种基于cuda性能计数器的gpu能耗预测方法及系统 Download PDF

Info

Publication number
CN115599195A
CN115599195A CN202211601716.8A CN202211601716A CN115599195A CN 115599195 A CN115599195 A CN 115599195A CN 202211601716 A CN202211601716 A CN 202211601716A CN 115599195 A CN115599195 A CN 115599195A
Authority
CN
China
Prior art keywords
gpu
power
cuda
energy consumption
target application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211601716.8A
Other languages
English (en)
Other versions
CN115599195B (zh
Inventor
邹昊东
牧军
杨文清
刘辉
张银铁
宋文
张明明
刘梅招
李萌
陈欣
肖茂然
汤铭
丰佳
黄鹏
张立志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Electric Power Research Institute
Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd
Original Assignee
State Grid Electric Power Research Institute
Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Electric Power Research Institute, Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd filed Critical State Grid Electric Power Research Institute
Priority to CN202211601716.8A priority Critical patent/CN115599195B/zh
Publication of CN115599195A publication Critical patent/CN115599195A/zh
Application granted granted Critical
Publication of CN115599195B publication Critical patent/CN115599195B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种基于CUDA性能计数器的GPU能耗预测方法及系统,方法包括:获取多个基准应用程序对应的特征数据,得到功率模型数据集和时间模型数据集;训练构建的功率网络模型和时间网络模型,获得目标程序的所有CUDA内核,进而获取目标应用程序对应性能计数器和GPU频率组合,将性能计数器和GPU频率组合分别输入到训练后的功率和时间网络模型中,得到内核的功率和执行时间以及能耗。本发明根据不同类型的GPU和CUDA内核计算能力选择全部性能指标,采用GPU频率组合和CUDA性能计数器作为特征表示,并采集CUDA内核功率和执行时间,从而提高预测精度和泛化性。

Description

一种基于CUDA性能计数器的GPU能耗预测方法及系统
技术领域
本发明涉及GPU能耗预测技术领域,具体涉及一种基于CUDA性能计数器的GPU能耗预测方法及系统。
背景技术
随着机器学习技术的不断发展与成熟,越来越多的数据中心采用GPU来提高计算能力,GPU的单指令多数据(SIMD)架构非常适用于并行和计算密集型的应用负载,这使得许多数据中心部署了大量的GPU集群。但是,GPU是一个高功耗的硬件加速器,这使得GPU节能成为热门的研究主题。
为了测量在不同GPU频率下的GPU应用程序的能耗,大部分研究人员采用直接法测量。直接法就是通过软硬件直接测量功率。一方面,通过GPU内置功率传感器实时采集GPU功率是最常用的一种方法。NVIDIA 管理库(NVML)可以监控和管理NVIDIA GPU各种状态。通过nvmlDeviceGetPowerUsage()函数获取GPU的实时功率。另一方面,在系统上添加测量GPU功耗的硬件,如Watts Up功率计等。
在直接测量方法中,通过GPU内置功率传感器进行功率采集测量带来了很大的方便,已经成为研究GPU能耗的一种趋势。但是,由于GPU较低的功率采样频率使得具有较短执行时间的负载具有大的误差。例如,NVIDIA Tesla K20的功率功率采样频率是66.7Hz,说明GPU内置功率传感器每15ms采集一次功率,若GPU负载的执行时间小于15ms,就意味着不能通过直接测量的方式准确获取GPU功率。此外,使用功率计等方法代价较大,且很多系统并不支持。
发明内容
发明目的:为了克服现有技术的不足,本发明提供一种基于CUDA性能计数器的GPU能耗预测方法,该方法可以解决GPU能耗预测精度低和代价过大的问题,此外,本申请还提供基于CUDA性能计数器的GPU能耗预测系统。
技术方案:一方面,本发明提供基于CUDA性能计数器的GPU能耗预测方法,该方法包括:
获取GPU中多个基准应用程序对应的特征数据,预处理后,得到功率模型数据集和时间模型数据集;所述功率模型数据集包括:所述基准应用程序中的CUDA内核名称、GPU频率组合及其对应的性能计数器值的组合和标注的CUDA内核的功率;所述时间模型数据集包括:所述基准应用程序中的CUDA内核名称、GPU频率组合及其对应的性能计数器值的组合和标注的CUDA内核的执行时间;
构建功率网络模型和时间网络模型,将所述功率模型数据集输入到所述功率网络模型中,将所述时间模型数据集输入到所述时间网络模型中,分别迭代训练后,得到训练后的功率网络模型和时间网络模型;
获得目标应用程序的所有CUDA内核,并根据目标应用程序的每个CUDA内核的名称得到性能计数器值的组合和频率组合,将所述性能计数器值的组合和频率组合分别输入到训练后的功率网络模型和时间网络模型中,分别得到目标应用程序中每个CUDA内核的功率和执行时间,进而得到每个CUDA内核的能耗;
根据所述目标应用程序的各个CUDA内核的能耗得到所述目标应用程序的能耗,进而得到GPU的能耗。
进一步的,包括:
还包括采用均方根误差衡量功率网络模型和时间网络模型的误差率。
进一步的,包括:
所述GPU的能耗表示为:
Figure 330567DEST_PATH_IMAGE001
,其中,
Figure 871270DEST_PATH_IMAGE002
表示第i个目标应用程序的能耗,
Figure 186845DEST_PATH_IMAGE003
表示GPU空闲时间的能耗,N为GPU上执行的目标应用程序的总数;
Figure 787591DEST_PATH_IMAGE004
,其中,
Figure 719775DEST_PATH_IMAGE005
表示第i个目标应用程序的第j个CUDA内核的能耗,M为第i个目标应用程序中CUDA内核的总数;
Figure 64168DEST_PATH_IMAGE006
,其中,
Figure 765408DEST_PATH_IMAGE007
为第i个目标应用程序的第j个CUDA内核的功率,
Figure 5896DEST_PATH_IMAGE008
为第i个目标应用程序的第j个CUDA内核的执行时间。
进一步的,包括:
所述基准应用程序对应的每个CUDA内核的功率为所述CUDA内核执行时间中GPU的总功率减去静态功率,所述静态功率为GPU没有任何工作消耗时的功率,是个常数。
进一步的,包括:
在训练阶段中,所述CUDA内核执行时间中GPU的总功率通过多个有效瞬时功率的平均值计算得到,所述瞬时功率通过在CUDA内核执行时间内插入U个功率测量探针探测得到,每个功率测量探针探测一个时刻的瞬时功率。
进一步的,包括:
所述GPU频率组合为当前GPU的核心频率和内存频率的集合,所述GPU支持的性能计数器组合为当前GPU支持的性能计数器的集合。
进一步的,包括:
所述空闲时间的能耗
Figure 222114DEST_PATH_IMAGE009
,其中,
Figure 307882DEST_PATH_IMAGE010
为每段空闲时间的长度,L为空闲时间的总段数,且
Figure 925945DEST_PATH_IMAGE011
Figure 71756DEST_PATH_IMAGE012
为当前目标应用程序开始的时间,
Figure 775269DEST_PATH_IMAGE013
为上一个目标应用程序结束的时间,
Figure 399149DEST_PATH_IMAGE014
为GPU的静态功率。
另一方面,本发明还提供基于CUDA性能计数器的GPU能耗预测系统,该系统包括:
数据集构建模块,用于获取GPU中多个基准应用程序对应的特征数据,预处理后,得到功率模型数据集和时间模型数据集;所述功率模型数据集包括:所述基准应用程序中的CUDA内核名称、GPU频率组合及其对应的性能计数器值的组合和标注的CUDA内核的功率;所述时间模型数据集包括:所述基准应用程序中的CUDA内核名称、GPU频率组合及其对应的性能计数器值的组合和标注的CUDA内核的执行时间;
训练模块,用于构建功率网络模型和时间网络模型,将所述功率模型数据集输入到所述功率网络模型中,将所述时间模型数据集输入到所述时间网络模型中,分别迭代训练后,得到训练后的功率网络模型和时间网络模型;
预测模块,用于获得目标应用程序的所有CUDA内核,并根据目标应用程序的每个CUDA内核的名称得到性能计数器值的组合和频率组合,将所述性能计数器值的组合和频率组合分别输入到训练后的功率网络模型和时间网络模型中,分别得到目标应用程序中每个CUDA内核的功率和执行时间,进而得到每个CUDA内核的能耗;
能耗计算模块,用于根据所述目标应用程序的各个CUDA内核的能耗得到所述目标应用程序的能耗,进而得到GPU的能耗。
本发明还包括一种电子设备,该电子设备包括处理器,所述处理器通过调用存储器存储的程序指令,处理器用于按照获得的程序指令执行基于CUDA性能计数器的GPU能耗预测方法的步骤。
最后,还提供一种存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时基于CUDA性能计数器的GPU能耗预测方法。
有益效果:(1)本发明利用CUDA内核、GPU核心频率、GPU内存频率、性能计数器以及功率和执行时间之间的关系构建训练数据集,采用神经网络模型进行训练,进而得到功率网络模型和时间网络模型,准确预测CUDA内核在不同频率组合下的功率和运行时间,并据此准确计算GPU程序的能耗,从而提高预测GPU能耗的适用性和准确性;(2)本发明根据不同类型的GPU和CUDA内核计算能力选择全部性能指标,然后采用GPU频率组合和CUDA性能计数器作为特征表示,并采集CUDA内核功率和执行时间,从而提高预测精度和泛化性。
附图说明
图1为本发明实施例所述的训练阶段的流程图;
图2为本发明实施例所述的预测阶段的流程图;
图3为本发明实施例所述的GPU能耗预测方法整体流程图;
图4为本发明实施例所述的功率训练数据集的格式示意图;
图5为本发明实施例所述的时间训练数据集的格式示意图;
图6为本发明实施例所述的GPU能耗预测方法对应的训练方法流程图;
图7为本发明实施例所述的GPU能耗预测方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图3所示,本发明公开一种基于CUDA性能计数器的GPU能耗预测方法,该方法首先建立模型框架,预测模型是基于有监督学习的典型两阶段建模:训练和预测。训练阶段的目的是分别建立功率网络模型和时间网络模型。之后,当在给定的GPU频率组合下提供新的应用程序时,预测阶段将准确预测功率和执行时间。具体的流程如下:
步骤1、每个型号的GPU都有多个性能计数器,具体的数量和名称是和硬件相关的,不同型号不一样;每个GPU程序由多个CUDA内核组成,每个内核的执行都需要一定的时间,在一个GPU程序中,这些内核是顺序执行的如果能知道每个内核的能耗,就能计算出整个程序的能耗。
训练阶段中,获取多个GPU应用程序对应的特征数据,预处理后,得到功率模型数据集和时间模型数据集。功率模型数据集包括:CUDA内核名称、GPU支持的性能计数器组合、GPU频率组合和标注的CUDA内核的功率;所述时间模型数据集包括:CUDA内核名称、GPU支持的性能计数器组合、GPU频率组合和标注的CUDA内核的执行时间,其中,GPU性能计数器的值是根据频率组合得到,频率不同,性能计数器也的值也会变化。具体的如图1和6所示。
其中,CUDA性能计数器可以准确体现GPU运行时的使用情况,同时也是获取GPU能耗最直接有效的方式。GPU定义了非常多的相关指标信息,如效率、吞吐量、内存事务、计算和利用率等。指标类型和数量取决于GPU架构和CUDA计算能力。nvprof可以获取GPU内核的CUDA性能计数器信息。收集nvprof提供的所有可用指标,性能计数器包括很多种,几十个信息项,不同型号的GPU、不同版本的CUDA都有所区别。
NVML库通过收集单独运行的基准测试应用程序获取每个CUDA内核的功率和执行时间,基准测试应用程序为某个基准测试套件下的应用程序;
随着GPU硬件处理器的快速发展,已经出现很多基准测试套件来对GPU的性能进行研究。由于GPU负载的多样性以及极端性,例如计算限制、内存限制、或者介于两者之间。因此,选择通用且具有代表性的基准测试套件显得格外重要,有助于提高预测模型的泛化性。
在本发明中,选用来自四个标准的GPU基准测试套件CUDA SDK,Rodinia、Parboil和Polybench的46个应用程序进行评估。这些应用程序的详细信息如下表所示。
基准测试应用程序
Figure 137298DEST_PATH_IMAGE015
步骤2、预处理:
直接将数据用于训练会导致较大的误差,需要进行预处理。首先,一些性能计数器表示利用率为空闲(idle)、低(low)、中(mid)以及高(high),需要将非数值特征转换为数值特征。机器学习模型只能接受数值,所以要把非数值通过预处理转换为数值,才能用于训练过程。
其次,需要进行归一化操作,将所有的特征映射到同一范围内。最后,数据集具有数百个特征,维度很高。采用特征重要性(FI)方法分别获取功率和执行时间预测的前N个最重要的CUDA性能计数器特征,本发明实施例N=30。
步骤3、将所有CUDA内核的功率、CUDA内核名称、GPU支持的性能计数器组合、GPU频率组合存在功率训练数据集中,将所有CUDA内核执行时间、CUDA内核名称、GPU支持的性能计数器组合、GPU频率组合存在时间训练数据集中,GPU频率组合为GPU内存频率和GPU核心频率的集合。
由于动态电压频率缩放(DVFS)等技术的应用,GPU在运行时的频率会有变化,需要注意的是,GPU有两个重要频率会影响宫的功率:核心频率和内存频率,本发明对这两个频率都进行了考虑。同一个GPU程序(或CUDA内核)在不同频率下的功辑口时间都不同,所以在设计的训练数据集格式中,有频率组合这个数据项。
GPU频率组合可表示为:
Figure 454009DEST_PATH_IMAGE016
其中,
Figure 644819DEST_PATH_IMAGE017
为GPU内存频率,
Figure 72390DEST_PATH_IMAGE018
为GPU核心频率。
CUDA性能计数器特征可表示为:
Figure 399466DEST_PATH_IMAGE019
其中,
Figure 887079DEST_PATH_IMAGE020
表示性能计数器总数。
功率和时间预测训练数据集格式如图4和图5所示,功率模型数据集模型输入包括CUDA内核名称、频率组合以及性能计数器组合,对功率标注标签,时间模型数据集输入包括CUDA内核名称、频率组合、性能计数器组合,并对执行时间进行标注。
NVML可以获取CUDA内核的功率和执行时间。功率和执行时间是通过单独运行基准测试应用程序来收集的,以避免对这些指标的相互影响。由于收集的GPU的包括静态功率和动态功率。因此,每个CUDA内核的功率为当前CUDA内核执行时间内采集GPU的总功率减去静态功率,其中,静态功率是GPU没有任何工作时消耗的功率。
为了准确测量CUDA内核的功率,对基准测试应用程序进行了修改,使得能够运行足够长的时间。基准测试应用程序中有若干CUDA内核,在每个CUDA内核里插入多个功率测量探针,让他们允许足够长的时间,从而提高测量准确性,时间太短误差可能会比较大。
每个CUDA内核执行时间内GPU的总功率通过U个有效瞬时功率的平均值计算得到,有效瞬时功率通过在每个CUDA内核的开始时间和结束时间之间插入多个功率测量探针探测,其中,U为有效测量次数,且其根据GPU应用程序功率的波动情况经验选择,具体的:对于执行时间少于10倍的功率采样频率,修改应用程序的代码以至少获取10个有效的瞬时功率采样点。
上述功率测定方法是构造训练集的时候需要用到的方法,多测几个瞬时功率,计算平均值,放到训练集里。之后是用模型预测出来的功率,就不需要测量瞬时功率了。
步骤4、构建功率网络模型和时间网络模型,将功率模型数据集输入到所述功率网络模型中,将所述时间模型数据集输入到时间网络模型中,分别迭代训练后,得到训练后的功率网络模型和时间网络模型,时间网络模型和功率网络模型采用的模型架构相同。但模型参数会不同,所以需要两个模型。在实现中,算法的参数都是默认的。为了避免模型过度拟合,采用留一交叉验证的方法评估预测模型的稳定性,并且训练好的模型可以直接用于新的应用程序,而无需重新训练模型。
在构建模型时,需要对功率和执行时间选择合适的训练方法。功率和执行时间很难通过单个性能计数器体现出来,且性能计数器之间具有复杂的相关性,采用简单的回归方法不能够全面体现GPU内核与性能计数器之间的关系。因此,本发明研究了几种合适的机器学习算法作为候选,包括支持向量回归 (SVR),Lasso线性回归,XGBoost以及CatBoost。
本发明以基于XGBoostt的机器学习模型为例:
第一步:构建决策树函数:
Figure 565185DEST_PATH_IMAGE021
其中,K为树的总个数,f k 表示第k棵树,y i 表示样本x i 的预测结果;
第二步:确定损失函数,采用均方误差:
Figure 796446DEST_PATH_IMAGE022
其中,
Figure 243608DEST_PATH_IMAGE023
为样本x i 的训练误差,
Figure 433281DEST_PATH_IMAGE024
表示第k棵树的正则项;
第三步:增加回归树迭代优化损失函数:
Figure 801945DEST_PATH_IMAGE025
复杂度函数:
Figure 571318DEST_PATH_IMAGE026
第四步:最终的XGboost目标函数为:
Figure 138566DEST_PATH_IMAGE027
评估指标:均方根误差(RMSE)常常作为衡量回归模型误差率的常用标准,指示样本的离散程度,优先选择较低的RMSE值。RMSE定义为
Figure 965052DEST_PATH_IMAGE028
其中,
Figure 555433DEST_PATH_IMAGE029
是预测值,y i 是真实值,m表示预测值的总数。
步骤5、预测阶段中,采用nvprof获得目标应用程序的CUDA内核,并判断所述CUDA内核是否为最后一个,若不是,则获取所述目标应用程序对应GPU的性能计数器和GPU频率组合,并将所述性能计数器和GPU频率组合分别输入到训练后的功率网络模型和时间网络模型中,得到CUDA内核的功率和执行时间,进而得到CUDA内核的能耗,继续获取下一个CUDA内核,直至得到最后一个CUDA内核的能耗;如图2和图7所示。
步骤6、根据目标应用程序的CUDA内核得到目标应用程序的能耗,进而得到GPU的能耗。
GPU的能耗表示为:
Figure 394076DEST_PATH_IMAGE001
,其中,
Figure 19093DEST_PATH_IMAGE002
表示第
Figure 19410DEST_PATH_IMAGE030
个目标应用程序的能耗,
Figure 893825DEST_PATH_IMAGE003
表示GPU空闲时间的能耗,N为GPU上执行的目标应用程序的总数;
Figure 270579DEST_PATH_IMAGE004
,其中,
Figure 546840DEST_PATH_IMAGE005
表示第
Figure 718058DEST_PATH_IMAGE030
个目标应用程序的第
Figure 814190DEST_PATH_IMAGE031
个CUDA内核的能耗,M为第
Figure 791373DEST_PATH_IMAGE032
个目标应用程序中CUDA内核的总数;
Figure 859824DEST_PATH_IMAGE006
,其中,
Figure 264260DEST_PATH_IMAGE007
为第
Figure 316530DEST_PATH_IMAGE030
个目标应用程序的第
Figure 769508DEST_PATH_IMAGE031
个CUDA内核的功率,
Figure 223623DEST_PATH_IMAGE008
为第
Figure 2223DEST_PATH_IMAGE032
个目标应用程序的第
Figure 338527DEST_PATH_IMAGE031
个CUDA内核的执行时间。
空闲时间的能耗
Figure 595196DEST_PATH_IMAGE033
,其中,
Figure 700555DEST_PATH_IMAGE010
为每段空闲时间的长度,L为空闲时间的总段数,且
Figure 384477DEST_PATH_IMAGE034
Figure 942497DEST_PATH_IMAGE035
为当前目标应用程序开始的时间,
Figure 268436DEST_PATH_IMAGE036
为上一个目标应用程序结束的时间,
Figure 165985DEST_PATH_IMAGE037
为GPU的静态功率。
另一方面,本发明还提供基于CUDA性能计数器的GPU能耗预测系统,该系统包括:
数据集构建模块,用于获取多个GPU基准应用程序对应的特征数据,预处理后,得到功率模型数据集和时间模型数据集;所述功率模型数据集包括:CUDA内核名称、性能计数器值的组合、GPU频率组合和标注的CUDA内核的功率;所述时间模型数据集包括:CUDA内核名称、GPU支持的性能计数器组合、GPU频率组合和标注的CUDA内核的执行时间;
训练模块,用于构建功率网络模型和时间网络模型,将所述功率模型数据集输入到所述功率网络模型中,将所述时间模型数据集输入到所述时间网络模型中,分别迭代训练后,得到训练后的功率网络模型和时间网络模型;
预测模块,用于采用nvprof获得目标应用程序的CUDA内核,并判断所述CUDA内核是否为最后一个,若不是,则获取所述目标应用程序对应GPU的性能计数器和GPU频率组合,并将所述性能计数器和GPU频率组合分别输入到训练后的功率网络模型和时间网络模型中,得到所述CUDA内核的功率和执行时间,进而得到所述CUDA内核的能耗,继续获取下一个CUDA内核,直至得到最后一个CUDA内核的能耗;
能耗计算模块,用于根据所述目标应用程序的CUDA内核得到目标应用程序的能耗,进而得到GPU的能耗。
本系统的其他技术细节均与方法的类似,在此不在赘述。
本发明实施例提供了一种电子设备,该电子设备可以包括处理器(CenterProcessing Unit ,CPU)、存储器、输入设备和输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display, LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储上述基于CUDA性能计数器的GPU能耗预测方法的程序。
处理器通过调用存储器存储的程序指令,处理器用于按照获得的程序指令执行上述基于CUDA性能计数器的GPU能耗预测方法的步骤。
基于上述实施例,本发明实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的基于CUDA性能计数器的GPU能耗预测方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种基于CUDA性能计数器的GPU能耗预测方法,其特征在于,该方法包括:
获取GPU中多个基准应用程序对应的特征数据,预处理后,得到功率模型数据集和时间模型数据集;所述功率模型数据集包括:所述基准应用程序中的CUDA内核名称、GPU频率组合及其对应的性能计数器值的组合和标注的CUDA内核的功率;所述时间模型数据集包括:所述基准应用程序中的CUDA内核名称、GPU频率组合及其对应的性能计数器值的组合和标注的CUDA内核的执行时间;
构建功率网络模型和时间网络模型,将所述功率模型数据集输入到所述功率网络模型中,将所述时间模型数据集输入到所述时间网络模型中,分别迭代训练后,得到训练后的功率网络模型和时间网络模型;
获得目标应用程序的所有CUDA内核,并根据所述目标应用程序的每个CUDA内核的名称得到所述目标应用程序的每个CUDA内核对应的性能计数器值的组合和GPU频率组合,将所述目标应用程序的每个CUDA内核对应的性能计数器值的组合和GPU频率组合分别输入到训练后的功率网络模型和时间网络模型中,分别得到所述目标应用程序的每个CUDA内核的功率和执行时间,进而得到所述目标应用程序的每个CUDA内核的能耗;
根据所述目标应用程序的各个CUDA内核的能耗得到所述目标应用程序的能耗,进而得到GPU的能耗。
2.根据权利要求1所述的基于CUDA性能计数器的GPU能耗预测方法,其特征在于,还包括采用均方根误差衡量所述功率网络模型和所述时间网络模型的误差率,以对所述功率网络模型和所述时间网络模型进行优化。
3.根据权利要求1或2所述的基于CUDA性能计数器的GPU能耗预测方法,其特征在于,所述GPU的能耗表示为:
Figure 848477DEST_PATH_IMAGE001
,其中,
Figure 968879DEST_PATH_IMAGE002
表示第i个目标应用程序的能耗,
Figure 14196DEST_PATH_IMAGE003
表示GPU空闲时间的能耗,N为GPU上执行的目标应用程序的总数;
Figure 869457DEST_PATH_IMAGE004
,其中,
Figure 683830DEST_PATH_IMAGE005
表示第i个目标应用程序的第j个CUDA内核的能耗,M为第i个目标应用程序中CUDA内核的总数;
Figure 709555DEST_PATH_IMAGE006
,其中,
Figure 242167DEST_PATH_IMAGE007
为第i个目标应用程序的第j个CUDA内核的功率,
Figure 644330DEST_PATH_IMAGE008
为第i个目标应用程序的第j个CUDA内核的执行时间。
4.根据权利要求1所述的基于CUDA性能计数器的GPU能耗预测方法,其特征在于,所述基准应用程序对应的每个CUDA内核的功率分别为所述基准应用程序对应的每个CUDA内核执行时间内GPU的总功率减去静态功率,所述静态功率为GPU没有任何工作消耗时的功率。
5.根据权利要求4所述的基于CUDA性能计数器的GPU能耗预测方法,其特征在于,在训练阶段中,所述基准应用程序对应的每个CUDA内核执行时间内GPU的总功率通过多个有效瞬时功率的平均值计算得到,所述瞬时功率通过在对应的CUDA内核执行时间内插入U个功率测量探针探测得到,每个功率测量探针探测一个瞬时功率。
6.根据权利要求5所述的基于CUDA性能计数器的GPU能耗预测方法,其特征在于,所述GPU频率组合为对应的CUDA内核执行时间内GPU的核心频率和内存频率的集合,所述GPU支持的性能计数器组合为对应的CUDA内核执行时间内GPU支持的性能计数器的集合。
7.根据权利要求3所述的基于CUDA性能计数器的GPU能耗预测方法,其特征在于,所述空闲时间的能耗
Figure 578788DEST_PATH_IMAGE009
,其中,
Figure 775414DEST_PATH_IMAGE010
为每段空闲时间的长度,L为空闲时间的总段数,且
Figure 795322DEST_PATH_IMAGE011
Figure 735596DEST_PATH_IMAGE012
为当前目标应用程序开始的时间,
Figure 258982DEST_PATH_IMAGE013
为上一个目标应用程序结束的时间,
Figure 954405DEST_PATH_IMAGE014
为GPU的静态功率。
8.一种基于CUDA性能计数器的GPU能耗预测系统,其特征在于,该系统包括:
数据集构建模块,用于获取GPU中多个基准应用程序对应的特征数据,预处理后,得到功率模型数据集和时间模型数据集;所述功率模型数据集包括:所述基准应用程序中的CUDA内核名称、GPU频率组合及其对应的性能计数器值的组合和标注的CUDA内核的功率;所述时间模型数据集包括:所述基准应用程序中的CUDA内核名称、GPU频率组合及其对应的性能计数器值的组合和标注的CUDA内核的执行时间;
训练模块,用于构建功率网络模型和时间网络模型,将所述功率模型数据集输入到所述功率网络模型中,将所述时间模型数据集输入到所述时间网络模型中,分别迭代训练后,得到训练后的功率网络模型和时间网络模型;
预测模块,用于获得目标应用程序的所有CUDA内核,并根据所述目标应用程序的每个CUDA内核的名称得到所述目标应用程序的每个CUDA内核对应的性能计数器值的组合和GPU频率组合,将所述目标应用程序的每个CUDA内核对应的性能计数器值的组合和频率组合分别输入到训练后的功率网络模型和时间网络模型中,分别得到所述目标应用程序的每个CUDA内核的功率和执行时间,进而得到所述目标应用程序的每个CUDA内核的能耗;
能耗计算模块,用于根据所述目标应用程序的各个CUDA内核的能耗得到所述目标应用程序的能耗,进而得到GPU的能耗。
9.一种电子设备,其特征在于,该电子设备包括处理器,所述处理器通过调用存储器存储的程序指令,处理器用于按照获得的程序指令执行权利要求1-7任一项所述方法的步骤。
10.一种存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法。
CN202211601716.8A 2022-12-14 2022-12-14 一种基于cuda性能计数器的gpu能耗预测方法及系统 Active CN115599195B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211601716.8A CN115599195B (zh) 2022-12-14 2022-12-14 一种基于cuda性能计数器的gpu能耗预测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211601716.8A CN115599195B (zh) 2022-12-14 2022-12-14 一种基于cuda性能计数器的gpu能耗预测方法及系统

Publications (2)

Publication Number Publication Date
CN115599195A true CN115599195A (zh) 2023-01-13
CN115599195B CN115599195B (zh) 2023-05-05

Family

ID=84854223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211601716.8A Active CN115599195B (zh) 2022-12-14 2022-12-14 一种基于cuda性能计数器的gpu能耗预测方法及系统

Country Status (1)

Country Link
CN (1) CN115599195B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880785A (zh) * 2012-08-01 2013-01-16 北京大学 针对gpu程序的源码级数据传输能耗估算方法
CN111427750A (zh) * 2020-04-09 2020-07-17 中国人民解放军国防科技大学 一种计算机平台的gpu功耗估计方法、系统及介质
CN112784435A (zh) * 2021-02-03 2021-05-11 浙江工业大学 一种基于性能事件计数和温度的gpu实时功率建模方法
US20220240408A1 (en) * 2021-01-22 2022-07-28 Nvidia Corporation Static data center power balancing and configuration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880785A (zh) * 2012-08-01 2013-01-16 北京大学 针对gpu程序的源码级数据传输能耗估算方法
CN111427750A (zh) * 2020-04-09 2020-07-17 中国人民解放军国防科技大学 一种计算机平台的gpu功耗估计方法、系统及介质
US20220240408A1 (en) * 2021-01-22 2022-07-28 Nvidia Corporation Static data center power balancing and configuration
CN112784435A (zh) * 2021-02-03 2021-05-11 浙江工业大学 一种基于性能事件计数和温度的gpu实时功率建模方法

Also Published As

Publication number Publication date
CN115599195B (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
CN110400022B (zh) 自助柜员机现金用量预测方法及装置
CN107203467A (zh) 一种分布式环境下监督学习算法的基准测试方法和装置
CN105243068A (zh) 数据库系统的查询方法、服务器和能耗测试系统
CN113126019A (zh) 一种智能电表误差远程估计方法、系统、终端和存储介质
Singh et al. Entropy based bug prediction using support vector regression
US20190101911A1 (en) Optimization of virtual sensing in a multi-device environment
Zhu et al. Evaluation of machine learning approaches for android energy bugs detection with revision commits
CN112784435B (zh) 一种基于性能事件计数和温度的gpu实时功率建模方法
CN113486580B (zh) 在役风电机组高精度数值建模方法、服务端及存储介质
Gowda et al. Watt for what: Rethinking deep learning's energy-performance relationship
CN115599195B (zh) 一种基于cuda性能计数器的gpu能耗预测方法及系统
Gutiérrez Hermosillo Muriedas et al. perun: Benchmarking energy consumption of high-performance computing applications
Zou et al. Reliability analysis of Digital Instrumentation and Control software system
Mammeri et al. Performance counters based power modeling of mobile GPUs using deep learning
Singhal et al. Effect of data compression on pattern matching in historical data
RU61906U1 (ru) Система учета, контроля и прогноз при совершении действий с ресурсами
CA3177037A1 (en) Forecasting based on bernoulli uncertainty characterization
CN114004138A (zh) 基于大数据人工智能的建筑监测方法、系统及存储介质
CN113379531A (zh) 银行客户存款总额预测方法及装置
CN112395167A (zh) 一种作业故障预测方法、装置及电子设备
CN117973950B (zh) 一种系统多目标生命周期评价方法及系统
CN117723726B (zh) 一种工业废水水质变化的快速检测方法、系统及设备
EP4254182A1 (en) Method and apparatus of detecting running state of a virtual machine based on kernel density estimation
CN118391207B (zh) 一种风机齿轮箱健康监测方法、装置、存储介质及设备
Álvarez et al. Impact of ML Optimization Tactics on Greener Pre-Trained ML Models

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant