当前位置: 首页 > 专利查询>北京大学专利>正文

针对GPU程序的源码级数据传输能耗估算方法技术

技术编号:8215799 阅读:213 留言:0更新日期:2013-01-17 14:30
本发明专利技术公布了一种针对GPU程序的源码级数据传输能耗估算方法,包括如下步骤:基础参数测量计算:针对具体的CPU+GPU异构体系平台单机系统,进行系列基本测量,标定程序状态相关的基本参数;其中,需要测量的基本状态包括:空闲状态、CUDA库运行状态、MPI消息等待状态、数据传输状态;针对具体程序估算数据传输能耗:根据所述参数的标定值对具体程序中数据传输能耗部分进行估算和预测。通过本发明专利技术所述的能耗估算方法,能够建立从源程序经由程序状态到能耗的映射关系,可以定性地预测传输能耗,为程序代码级的数据传输能耗估算和优化提供参考。

【技术实现步骤摘要】

本专利技术提供了一种针对GPU众核程序运行状态进行源码级传输能耗的估算方法,具体内容针对特定GPU+CPU的异构体系平台下使用NVIDIA CUDA架构编写的程序,通过在源码级别的分析建模,进行数据传输操作的功耗的测量和能耗估算方法,属于面向新型计算机体系结构的程序设计方法领域。
技术介绍
高性能计算(High Performance Computing,简称HPC)在现代科学研究、工业生产中发挥着越来越重要的作用。HPC利用高性能设备,通过多核、众核、集群、网格等多种并行计算的途径,获得超高的计算速度,完成超大规模的计算任务。HPC在带来越来越高的计算性能的同时,其能耗也急剧增长。能耗问题越来越为计算机研究人员所重视。目前,针对高性能计算的能耗控制方法,通常实施在硬件电路和机器指令层面。然而,这两个层面的建模方法,对于普通程序员,都过于底层,不适合用于指导应用程序开发过程中的功耗估计与低功耗设计。高性能计算通常需要在处理器、存储器、主机之间进行频繁的数据交换和网络通讯。因此,从程序员编程视角,程序的能耗主要包括两部分一是计算能耗,主要耗费于处理器执行计算任务;二是数据传输能耗,指耗费于在不同(或相同)存储器之间转移数据上的电能。通常,计算能耗取决于算法的复杂程度等,比较复杂。传输能耗主要取决于数据传输的方法,相对计算能耗,建模方法比较明确,结果稳定。特别是在HPC领域,不同处理器、主机之间的数据搬运异常频繁,形式多样,准确预测传输能耗以指导程序调优,具有现实意义。
技术实现思路
本专利技术的目的是针对CPU+GPU模式的异构计算模型,提供一种基于程序状态的数据传输能耗测量、分析和建模方法,能够建立从程序状态到能耗的映射关系,为程序代码级的数据传输能耗估算和优化提供参考。为了准确说明本专利技术,本文采用如下术语及含义。GPU Graphics Processing Unit,图形处理单元。GPU最初是为图形图像处理中涉及到的大规模数据处理而设计的专用处理器。之后,GPU被推广到了做通用计算,并且在一些并行度比较高的计算任务中能够发挥非常好的效果。CUDA =NVIDIA公司推出的GPU通用计算处理架构。PCIe =PCIe是联通计算机内部各硬件之间的一种主要通信通路。GPU接在计算机主板插槽上,通过PCIe,和计算机的其他芯片直接互联。功率和功耗功率是指单位时间内消耗的电量。下面为了叙述方便,功率特指电功率表的读数,等于整个计算机系统的总功率。用一个类似的概念--功耗,来代表程序运行在某一状态时,单位时间内的电能消耗。能耗指一段程序的执行时间内的电能消耗。带宽单位时间内可传输的数据量的大小,通常用于衡量数据传输的性能。原语指具有比较完整功能的一组程序语句。本文中的原语将改变程序的执行状态。程序状态指程序的运行状态。当程序仅创建一个线程时,程序状态即该线程状态。它通常对应于一个稳定的功耗值。页锁定内存和可分页内存页锁定内存(Pinned Memory)是指不会参与分页交换的内存,永远驻留在物理内存中。而相对地,可分页内存(Pageable Memory)是指会参与分页交换到硬盘上去的内存。CPU+GPU异构计算模式如图I所示,CPU+GPU异构计算模式是GPU辅助CPU进行计算的模式,通过把一部分计算任务交给GPU承担,可以提高计算速度。数据可以在主存和GPU显存(Device Memory)之间进行交换。图I为I个CPU和2个GPU的结构。采用的测量方法为多测试程序对整机的功耗进行测量,从而分解出不同原语的功耗及其累计关系。本专利技术提供的技术方案如下一种针对GPU程序的源码级数据传输能耗估算方法,其特征是,包括如下步骤I)基础参数测量计算针对具体的CPU+GPU异构体系平台单机系统,进行系列基本测量,标定程序状态相关的基本参数;其中,需要测量的基本状态包括空闲状态、CUDA库运行状态、MPI消息等待状态、数据传输状态;2)针对具体程序估算数据传输能耗根据所述参数的标定值对具体程序中数据传输能耗部分进行估算和预测。所述的源码级数据传输能耗估算方法,其特征是,步骤I)中,由于不同的GPU程序可能使用不同的传输模式和传输粒度组合,为了能够尽可能精确地估算传输能耗,先通过实验测量出平台本身在不同传输模式和传输粒度组合下的基本带宽和功耗数据。所述的源码级数据传输能耗估算方法,其特征是,根据步骤I)得到的基本带宽和功耗数据,分析具体GPU程序的源码,根据数据传输模式和数据量,估算程序的消耗于数据传输方面的总能耗。所述的源码级数据传输能耗估算方法,其特征是,线程执行不同原语后,处于多种状态的复合状态,其功耗可以近似分解为多个基本状态功耗的线性累加,简称为简单可加性,根据这种简单可加性,通过计算,完成基础数据的测量和程序能耗的估算。所述的源码级数据传输能耗估算方法,其特征是,线程状态下的传输功耗的基本测量方法如下分别测量计算机在空闲状态下的功SP1和每个原语执行后的功耗Ρχ,Ρχ的取值为 Pi> p2> Pcuda 或 Pteans,Pcuda=P「Pi,Pteans^-Pi Pteans 就是测得的传输功耗;其中,P1为CUDA库装载执行之后的功耗读数;P2为数据传输之后的功耗读数;POTA为装载CUDA库原语执行后导致的功耗值增量;PTKANS为CUDA中的数据传输原语执行后导致的功耗值增量。所述的源码级数据传输能耗估算方法,其特征是,采用连续多遍传输的办法,使传输总时间达到10秒以上,从而获得η个功耗读数,重复各种数据传输模式,在不同数据传输粒度下,记录其功耗和带宽,计算平均带宽和平均功耗如下权利要求1.一种针对GPU程序的源码级数据传输能耗估算方法,其特征是,包括如下步骤 1)基础参数测量计算针对具体的CPU+GPU异构体系平台单机系统,进行系列基本测量,标定程序状态相关的基本参数;其中,需要测量的基本状态包括空闲状态、CUDA库运行状态、MPI消息等待状态、数据传输状态; 2)针对具体程序估算数据传输能耗根据所述参数的标定值对具体程序中数据传输能耗部分进行估算和预测。2.如权利要求I所述的源码级数据传输能耗估算方法,其特征是,步骤I)中,由于不同的GPU程序可能使用不同的传输模式和传输粒度组合,为了能够尽可能精确地估算传输能耗,先通过实验测量出平台本身在不同传输模式和传输粒度组合下的基本带宽和功耗数据。3.如权利要求2所述的源码级数据传输能耗估算方法,其特征是,根据步骤I)得到的基本带宽和功耗数据,分析具体GPU程序的源码,根据数据传输模式和数据量,估算程序的消耗于数据传输方面的总能耗。4.如权利要求I所述的源码级数据传输能耗估算方法,其特征是,线程执行不同原语后,处于多种状态的复合状态,其功耗可以近似分解为多个基本状态功耗的线性累加,简称为简单可加性,根据这种简单可加性,通过计算,完成基础数据的测量和程序能耗的估算。5.如权利要求I所述的源码级数据传输能耗估算方法,其特征是,线程状态下的传输功耗的基本测量方法如下分别测量计算机在空闲状态下的功耗&和每个原语执行后的功耗Px,Px的取值为Pp P2、Pota或P Trans,Pcuda-Pi-Pi,Ptrans-F^-Pi,Ptean本文档来自技高网...

【技术保护点】
一种针对GPU程序的源码级数据传输能耗估算方法,其特征是,包括如下步骤:1)基础参数测量计算:针对具体的CPU+GPU异构体系平台单机系统,进行系列基本测量,标定程序状态相关的基本参数;其中,需要测量的基本状态包括:空闲状态、CUDA库运行状态、MPI消息等待状态、数据传输状态;2)针对具体程序估算数据传输能耗:根据所述参数的标定值对具体程序中数据传输能耗部分进行估算和预测。

【技术特征摘要】

【专利技术属性】
技术研发人员:张常有黄锟崔翔陈一峯张爽
申请(专利权)人:北京大学
类型:发明
国别省市:

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

1