[发明专利]一种基于GPU的多应用调度系统和方法有效
申请号: | 201910627242.6 | 申请日: | 2019-07-12 |
公开(公告)号: | CN110532071B | 公开(公告)日: | 2023-06-09 |
发明(设计)人: | 徐宝宇;唐泽 | 申请(专利权)人: | 上海大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06T1/20 |
代理公司: | 上海上大专利事务所(普通合伙) 31205 | 代理人: | 何文欣 |
地址: | 200444*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gpu 应用 调度 系统 方法 | ||
1.一种基于GPU的多应用调度系统,包括应用分析模块(1)、应用管理模块(2)、系统信息模块(3)和应用调度模块(4),其特征在于:
(1)所述应用分析模块(1)连接应用管理模块(2)和应用调度模块(4),主要用于分析应用所需GPU内存大小、数据局部性,并结合应用的优先级生成应用信息;
(2)所述应用管理模块(2)连接应用分析模块(1)和应用调度模块(4),主要将新应用和执行失败应用的信息分别按照时间先后顺序存放在两个队列里,称它们为新应用队列和执行失败应用队列;
(3)所述系统信息模块(3)连接应用调度模块(4),主要用于收集应用在GPU系统中执行信息和GPU内存和缓存信息;
(4)所述应用调度模块(4)连接应用分析模块(1)、应用管理模块(2)和系统信息模块(3),主要用一种基于GPU的多应用调度方法调度应用的执行,以此实现GPU内存和缓存资源的分配;
所述应用分析模块(1)的功能:
应用数据局部性用该应用的缓存未命中率表示,应用数据局部性值等于应用缓存未命中率,并且将已知的应用数据局部性值保存到一个基本应用表中;
基本应用表的数据包括了已知应用的数据局部性值和GPU模拟器测试应用的数据局部性值;每次更新基本应用表后,用基本应用表中所有应用的数据局部性值的一个统计值作为数据局部性值阈值;
应用信息应记录应用名、应用进入系统的时间、应用的优先级、应用所需GPU内存大小和应用数据局部性值。
2.根据权利要求1所述的一种基于GPU的多应用调度系统,其特征在于:所述应用分析模块(1)中分析应用所需GPU内存大小的方法:
首先在应用源代码中搜索到GPU内存分配函数代码,然后从中获取GPU内存分配大小的参数值,并将参数值保存到应用信息中。
3.根据权利要求1所述的一种基于GPU的多应用调度系统,其特征在于:所述应用分析模块(1)的分析应用数据局部性方法如下:
分析应用的数据局部性首先查询基本应用表中是否存在该应用对应的数据局部性值;如果存在,则将其数据局部性值写入应用信息中,如果不存在,则将该应用数据局部性值设置为空,并将该应用提交给GPU模拟器进行仿真测试,并将测试后的应用数据局部性值写入基本应用表。
4.根据权利要求1所述的一种基于GPU的多应用调度系统,其特征在于:所述系统信息模块(3)主要用于收集应用在GPU系统中执行信息和GPU内存和缓存信息:
收集应用在GPU系统中执行信息通过跟踪应用执行的CPU进程来获取GPU内应用执行的信息,包括应用是否执行成功;
收集GPU内存信息首先根据应用执行信息判断应用是否执行,若应用执行,则用剩余GPU内存值减去应用所需的GPU内存值得到新的剩余GPU内存值,并将该值保留在一个信号量中;剩余GPU内存的初始值为GPU内存值;
收集缓存信息通过一个信号量保存缓存是否被使用的信息。
5.一种基于GPU的多应用调度方法,采用根据权利要求1所述的基于GPU的多应用调度系统进行操作,其特征在于:应用调度模块(4)主要用一种基于GPU的多应用调度方法调度应用的执行,以此实现GPU内存和缓存资源的分配,该方法按如下步骤执行:
步骤1:从应用管理模块的执行失败应用队列和新进应用队列中选择最高优先级的应用;
步骤2:在最高优先级的应用中,选出所需GPU内存小于剩余GPU内存量的应用,且将它们标记为待执行应用;
步骤3:结合应用的数据局部性值、所需内存值和缓存信息从待执行应用中选中一个应用;
步骤4:将被选中的应用提交给GPU执行,从系统信息模块中获取被选中应用的执行信息;
步骤5:若被选中应用提交执行失败,则将该应用信息加入应用管理模块中的执行失败应用队列,若该应用执行成功,则删除应用管理模块中该应用信息。
6.根据权利要求5所述的一种基于GPU的多应用调度方法,其特征在于:所述步骤3结合应用的数据局部性值、所需内存值和缓存信息从待执行应用中选中一个应用,步骤如下:
步骤3-1:从待执行应用中搜索数据局部性值小于数据局部性值阈值且数据局部性值最小的应用;
步骤3-2:若有该应用,则读取系统信息模块中缓存信息;若缓存没有被使用,则该应用被选中,若缓存已被使用,则将该应用加入应用管理模块中的执行失败应用队列;
步骤3-3:如果没有小于数据局部性值阈值的应用,则选中待执行应用中所需GPU内存最小的应用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大学,未经上海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910627242.6/1.html,转载请声明来源钻瓜专利网。