[发明专利]一种基于AOV网关键路径查询的异构系统动态功耗优化方法在审
申请号: | 201710020077.9 | 申请日: | 2017-01-11 |
公开(公告)号: | CN106896895A | 公开(公告)日: | 2017-06-27 |
发明(设计)人: | 王卓薇;程良伦 | 申请(专利权)人: | 广东工业大学 |
主分类号: | G06F1/32 | 分类号: | G06F1/32 |
代理公司: | 广东广信君达律师事务所44329 | 代理人: | 杨晓松 |
地址: | 510062 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 aov 网关 路径 查询 系统 动态 功耗 优化 方法 | ||
技术领域
本发明涉及异构系统低功耗领域,尤其涉及一种基于AOV网关键路径查询的异构系统动态功耗优化方法。
背景技术
同行业已有一些降低异构系统动态功耗的方法,现有的GPU低功耗优化多是针对单个GPU任务的功耗问题,很少有工作针对CPU-GPU异构系统特点研究整个应用程序的功耗优化。然而在应用程序中存在多个不同类型任务,同时在CUDA编程环境中,主机CPU在调用cudaThreadSynchronize()后就处于空闲状态,这实际上是对计算资源的浪费,虽然GPU的计算能力非常强大,但处理大规模数据集时也是很耗时的,可以将一部分计算任务分配给处于空闲状态的CPU来处理,让CPU与GPU并行工作,势必会减少内核函数的执行时间,进而减少整个程序的执行时间。因此对于一个给定的任务(没有依赖关系的循环迭代),如何在CPU和GPU之间进行任务划分,使得异构系统在满足性能(能量)约束的条件下,取得能量(性能)最优是我们设计的新技术方案的设计初衷。
发明内容
为克服现有技术的不足,在程序中寻找一组非关键任务(在程序运行过程汇总不影响整个程序执行时间的任务)并确定相应CPU或GPU频率调节系数,使得程序在CPU-GPU异构系统中运行时执行时间保持不变且能耗最优,本发明提出一种基于AOV网关键路径查询的异构系统动态功耗优化方法。
本发明的技术方案是这样实现的:
一种基于AOV网关键路径查询的异构系统动态功耗优化方法,包括步骤
S1:从程序中分离出不同类型的任务,将单GPU任务再进行划分至CPU和GPU上同时执行,同时运行的过程描述为任务之间的依赖关系,构造程序运行过程的AOV网络;
S2:对运行过程的AOV网络进行分析,确定关键路径,将非关键路径上的CPU和GPU任务进行频率调节以节省功耗;
S3:根据关键任务执行的时间确定非关键任务可以放松的执行时间范围,从而求解每个任务处理器频率调节幅度以最小化功耗的消耗。
进一步地,步骤S1中所述不同类型的任务包括CPU计算任务、通信任务和GPU计算任务。
本发明的有益效果在于,与现有技术相比,本发明无需中心节点,针对用户任务需求,通过分布式搜索并综合考虑服务节点可用能源与网络通信延迟等问题,提高了服务组合寻优搜索效率,并得到能满足应用服务质量需求的最佳节点组合。
附图说明
图1是本发明一种基于AOV网关键路径查询的异构系统动态功耗优化方法;
图2是本发明一种基于AOV网关键路径查询的异构系统动态功耗优化方法的一个实施例的典型CUDA程序示意图;
图3是图2的程序任务依赖图;
图4是图3的程序AOV示意图;
图5a-图5f是图4的案例分析图;
图6是图2中的各任务的EST和LST图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,本发明一种基于AOV网关键路径查询的异构系统动态功耗优化方法,包括步骤
S1:从程序中分离出不同类型的任务,将单GPU任务再进行划分至CPU和GPU上同时执行,同时运行的过程描述为任务之间的依赖关系,构造程序运行过程的AOV网络;
S2:对运行过程的AOV网络进行分析,确定关键路径,将非关键路径上的CPU和GPU任务进行频率调节以节省功耗;
S3:根据关键任务执行的时间确定非关键任务可以放松的执行时间范围,从而求解每个任务处理器频率调节幅度以最小化功耗的消耗。
进一步地,步骤S1中所述不同类型的任务包括CPU计算任务、通信任务和GPU计算任务。
一个典型的CUDA程序如图2所示,假设此时将单个GPU任务划分为2个子任务。Block1,block2,block4表示和GPU任务不相关的CPU任务,将单个GPU任务划分为N个子任务,每个子任务对应一个子Kernel函数,每个子kernel函数结束时需要通过主机调用cudaThreadSynchronize()进行同步,block3_1-block3_N表示将每个子任务分一部分任务交由CPU处理。具体做法是:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东工业大学,未经广东工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710020077.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:直热式电子管多级放大器电路
- 下一篇:省电方法、装置及电子设备