[发明专利]虚拟化环境下基于OpenMP的多GPU协同计算方法在审

专利信息
申请号: 201310695055.4 申请日: 2013-12-17
公开(公告)号: CN103713938A 公开(公告)日: 2014-04-09
发明(设计)人: 秦谦;袁家斌 申请(专利权)人: 江苏名通信息科技有限公司
主分类号: G06F9/455 分类号: G06F9/455;G06F9/38
代理公司: 南京纵横知识产权代理有限公司 32224 代理人: 董建林
地址: 212000 江苏省镇江市*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 虚拟 环境 基于 openmp gpu 协同 计算方法
【说明书】:

技术领域

发明涉及虚拟化环境下单任务多GPU计算领域,尤其涉及虚拟化环境下基于OpenMP的多GPU协同计算方法。

背景技术

现有的多GPU协同计算技术都是基于物理机,OpenMP一般是用于CPU并行计算的,将其用在GPU中也就在NVIDIA官方的sdk中给出了示例,并没有支持多GPU完整的API,gVirtuS是目前较为成熟的GPU虚拟化解决方案,它解决了在虚拟化环境下利用GPU进行CUDA编程的问题,但它的解决方案全部针对单GPU,并没有对多GPU进行研究,总之,现有技术中,在虚拟化环境下不能利用多GPU对数据规模很大的任务进行同时加速。

发明内容

本发明克服了现有技术的不足,提供一种虚拟化环境下基于OpenMP的多GPU协同计算方法。

为解决上述技术问题,本发明采用的技术方案为:

虚拟化环境下基于OpenMP的多GPU协同计算方法,包括以下步骤,

步骤S01, 在服务端部署GPU虚拟化(gVirtuS)服务端组件,将在客户端拦截的参数在本地执行,即在物理机上执行,物理机通过OpenMP在主机端开设和GPU个数相同的主机端线程,每个主机端线程负责控制一个GPU, 通过编程接口函数将主机端线程的ID号同GPU的设备号对应,将GPU计算的对象定义为N*N矩阵; 编程接口函数为cudaSetDevice(cpu_thread_id)函数;

现有技术中,在虚拟化环境下并没有针对GPU的驱动程序,步骤S01, 在服务端部署GPU虚拟化(gVirtuS)服务端组件后将具体的执行传递给服务端,服务端完成后将结果传递给虚拟机;

步骤S02,在每个设备上为每个线程分配显存,并各自启动内核函数,计算矩阵复合运算,所述显存大小依据需要计算的数据大小分配,所述内核函数为用于计算矩阵相乘的内核函数;

步骤S03,数据分解, 每个线程设置自己私有主机端和设备的数据指针,私有主机端线程指向原始指针不同的起始位置, 并通过CUDA复制函数,即cudaMemcpy()函数从自己私有主机端线程的位置拷贝N/n个数据规模达到规模划分的目的,其中N为矩阵的行数或者列数,n为GPU的个数;

步骤S04,数据计算,根据矩阵相乘法则对n个GPU的矩阵进行计算,OpenMP同步模块控制所述GPU计算结果的输出时间,通过ccudaDeviceSynchronize()函数同步输出数据;

步骤S05,数据合并, 所述步骤S04中同步数据的数据通过GPU私有的设备端数据指针拷贝回私有主机端,在私有主机端进行数据合并,服务端完成计算后通过socket通信给将计算结果传递给客户端,所述客户端为虚拟机。

步骤S03中GPU个数为4个,分别为GPU0、GPU1、GPU2和GPU3,所述矩阵为A、B、C和D,A*B+C*D数据分解包括以下步骤:

1)GPU 0执行矩阵A的一半乘以B,GPU 1执行矩阵A的另一半乘以B,GPU 2执行矩阵C的一半乘以D,GPU 3执行矩阵C的另一半乘以D;

2)OpenMP同步模块等待GPU0、GPU1、GPU2和GPU3的相乘运算全部完成,将全部数据通过cudaMemcpy()函数拷贝到GPU 0上,主机端校验结果的正确性。

数据计算采用矩阵乘法计算,包括以下步骤:将A矩阵分为4个A/4(N/4*N),并分别与矩阵B相乘,分别得到4个AB/4矩阵,4个AB/4矩阵组合可以得到结果矩阵AB,以此方法分别计算GPU0、GPU1、GPU2和GPU3中矩阵相乘,AB矩阵为N*N矩阵, AB矩阵同样为N*N矩阵。。

与现有技术相比,本发明的有益效果有:本发明在虚拟化环境下实现多GPU协同计算,利用多GPU对单任务进行加速,对基于CPU+GPU异构平台的超级计算、云计算以及网格计算具有重大的理论和现实意义。

附图说明

图1为本发明的方法流程图。

图2为本发明数据分解算法示意图。

图3为本发明数据计算算法示意图。

图4为A*B+C*D在多GPU与单GPU环境下的计算时间对比图。

具体实施方式

下面结合附图对本发明作更进一步的说明。

如图1所示,虚拟化环境下基于OpenMP的多GPU协同计算方法,包括以下步骤,

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏名通信息科技有限公司,未经江苏名通信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310695055.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top