【技术实现步骤摘要】
本专利技术涉及异构系统低功耗领域,更具体地,设计面向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网,在此基础上分析程序运行的 ...
【技术保护点】
一种基于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所述的异构...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。