一种基于AOV网关键路径查询的异构系统动态功耗优化方法技术方案

技术编号:14349430 阅读:163 留言:0更新日期:2017-01-04 20:05
本发明专利技术公开了一种基于AOV网关键路径查询的异构系统动态功耗优化方法,将动态功耗优化问题描述为将CUDA程序在异构系统上的执行过程描述为一种抽象的数据表示AOV网络,并基于AOV网络求解程序的关键路径,找到在不影响程序总执行时间的前提下可以进行DVFS降频优化的非关键任务,求解能量最优目标下每个非关键任务的频率调节幅度。该方法可以有效地将CUDA程序的能量优化问题转变为基于AOV网的数学规划问题,从而给出性能受限前提下能量最优的优化策略。

【技术实现步骤摘要】

本专利技术涉及异构系统低功耗领域,更具体地,设计面向CPU-GPU异构系统的动态功耗优化问题。
技术介绍
同行业已有一些降低异构系统动态功耗的方法,现有的GPU低功耗优化多是针对单个GPU任务的功耗问题,很少有工作针对CPU-GPU异构系统特点研究整个应用程序的功耗优化。然而在应用程序中存在多个不同类型任务,同时在CUDA编程环境中,主机CPU在调用cudaThreadSynchronize()后就处于空闲状态,这实际上是对计算资源的浪费,虽然GPU的计算能力非常强大,但处理大规模数据集时也是很耗时的,可以将一部分计算任务分配给处于空闲状态的CPU来处理,让CPU与GPU并行工作,势必会减少内核函数的执行时间,进而减少整个程序的执行时间。因此对于一个给定的任务(没有依赖关系的循环迭代),如何在CPU和GPU之间进行任务划分,使得异构系统在满足性能(能量)约束的条件下,取得能量(性能)最优是我们设计的新技术方案的设计初衷。
技术实现思路
本专利技术提出一种基于AOV网关键路径查询的异构系统动态功耗优化方法,在程序中寻找一组非关键任务(在程序运行过程汇总不影响整个程序执行时间的任务)并确定相应CPU或GPU频率调节系数,使得程序在CPU-GPU异构系统中运行时执行时间保持不变且能耗最优。为了解决上述问题,本专利技术的技术方案为:一种基于AOV网关键路径查询的异构系统动态功耗优化方法,分析CUDA应用程序在CPU-GPU异构系统上的运行特点,归纳其中的任务依赖关系,将一个包含多GPU任务完整程序的执行过程表示为一种基于图的数据结构AOV网,在此基础上分析程序运行的关键路径,找出程序中可以进行能耗优化部分,求解相应的频率调节幅度,在保持程序性能不变的前提下最小化程序的整体能量消耗。优化的对象是包含多个GPU任务的整个程序的动态功耗,具体如下:Step1:首先从程序中分离出不同类型的任务(CPU计算任务、通信任务、GPU计算任务),将单GPU任务再进行划分至CPU和GPU上同时执行。将运行的过程描述为任务之间的依赖关系,构造程序运行过程的AOV网络。Step2:其次对运行过程AOV网络进行分析,确定关键路径(由关键任务构成的有向图),则非关键路径(由非关键任务构成的有向图)上的CPU和GPU任务为可以进行频率调节以节省功耗的非关键任务。Step3:最后根据关键任务执行的时间确定非关键任务可以放松的执行时间范围,从而求解每个任务处理器频率调节幅度以最小化功耗的消耗。一个典型的CUDA程序如图1所示,假设此时将单个GPU任务划分为2个子任务。Block1,block2,block4表示和GPU任务不相关的CPU任务,将单个GPU任务划分为N个子任务,每个子任务对应一个子Kernel函数,每个子kernel函数结束时需要通过主机调用cudaThreadSynchronize()进行同步,block3_1-block3_N表示将每个子任务分一部分任务交由CPU处理。具体做法是:Step1:分析程序中的任务依赖关系建立程序任务依赖图。为了简化问题并不失一般性,假定单个GPU任务划分为2个子任务,每个子任务又进行CPU与GPU的任务划分,其程序任务依赖图G=(V,E)(V表示任务依赖图中节点,E表示任务依赖关系)如图2所示。图中C代表CPU计算任务,T代表数据在CPU与GPU之间进行传输,G代表GPU计算任务。Step2:构造AOV网络图。并发执行的任务之间存在资源冲突,遵循仲裁机制:假定若某一时刻任务流中同时存在多个满足先后依赖关系但存在资源冲突的任务,则优先选择任务流编号较小的任务执行。建立资源冲突任务之间的依赖关系。例如图2中,当CPU任务C1执行完成后,满足任务依赖关系的任务包括T1,C2和T2。其中T1和T2同属于通信任务,因此存在资源冲突不能同时执行,根据仲裁机制优先执行T1,因此应在原图的基础上增加T1与T2之间的任务依赖关系。程序依赖任务图扩展为图3。Step3:确定程序中各任务的最早开始时间与最迟开始时间。用EST(Mi)表示任务Mi最早开始时间函数,LST(Mi)表示任务Mi最晚开始时间函数,<vj,vi>则表示节点j要先于节点i执行。最早开始时间:EST(M1)=0EST(Mi)=max<vj,vi>∈E{EST(Mj)+Time(Mj)本文档来自技高网...
一种基于AOV网关键路径查询的异构系统动态功耗优化方法

【技术保护点】
一种基于AOV网关键路径查询的异构系统动态功耗优化方法,分析CUDA应用程序在CPU‑GPU异构系统上的运行特点,归纳其中的任务依赖关系,将一个包含多GPU任务完整程序的执行过程表示为一种基于图的数据结构AOV网,在此基础上分析程序运行的关键路径,找出程序中可以进行能耗优化部分,求解相应的频率调节幅度,在保持程序性能不变的前提下最小化程序的整体能量消耗,优化的对象是包含多个GPU任务的整个程序的动态功耗,具体如下:Step1:首先从程序中分离出不同类型的任务:CPU计算任务、通信任务、GPU计算任务,将单GPU任务再进行划分至CPU和GPU上同时执行,将运行的过程描述为任务之间的依赖关系,构造程序运行过程的AOV网络;Step2:其次对运行过程AOV网络进行分析,确定关键路径,则非关键路径上的CPU和GPU任务为可以进行频率调节以节省功耗的非关键任务;Step3:最后根据关键任务执行的时间确定非关键任务可以放松的执行时间范围,从而求解每个任务处理器频率调节幅度以最小化功耗的消耗。

【技术特征摘要】
1.一种基于AOV网关键路径查询的异构系统动态功耗优化方法,分析CUDA应用程序在CPU-GPU异构系统上的运行特点,归纳其中的任务依赖关系,将一个包含多GPU任务完整程序的执行过程表示为一种基于图的数据结构AOV网,在此基础上分析程序运行的关键路径,找出程序中可以进行能耗优化部分,求解相应的频率调节幅度,在保持程序性能不变的前提下最小化程序的整体能量消耗,优化的对象是包含多个GPU任务的整个程序的动态功耗,具体如下:Step1:首先从程序中分离出不同类型的任务:CPU计算任务、通信任务、GPU计算任务,将单GPU任务再进行划分至CPU和GPU上同时执行,将运行的过程描述为任务之间的依赖关系,构造程序运行过程的AOV网络;Step2:其次对运行过程AOV网络进行分析,确定关键路径,则非关键路径上的CPU和GPU任务为可以进行频率调节以节省功耗的非关键任务;Step3:最后根据关键任务执行的时间确定非关键任务可以放松的执行时间范围,从而求解每个任务处理器频率调节幅度以最小化功耗的消耗。2.根据权利要求1所述的异构...

【专利技术属性】
技术研发人员:王卓薇程良伦
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东;44

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

1