并行运行gpu运算程序的实现方法及装置的制造方法_4

文档序号:9910846阅读:来源:国知局
要素。
[0120]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0121]本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:R0M/RAM、磁碟、光盘等。
[0122]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【主权项】
1.一种在一台物理主机上并行运行GRJ运算程序的实现方法,其特征在于,包括: 获得待运行的至少一个GRJ运算程序; 分别获得每个待运行的GHJ运算程序适用的容器镜像;所述容器镜像为依据所述物理主机已安装的GPU的相关信息预先构建的;所述GPU的相关信息至少包括:已安装的各个GPU的硬件型号、每种型号GPU的驱动程序及每种型号GPU的运算框架; 根据每个待运行的GPU运算程序适用的容器镜像,为每个待运行的GPU运算程序创建对应的容器; 为每个容器配置非GRJ的硬件资源; 按照预设的绑定粒度为每个容器绑定GPU硬件资源; 将各个GPU运算程序提交给对应的容器; 各个容器利用自身被配置的非GPU的硬件资源和绑定的GPU硬件资源,运行GPU运算程序。2.根据权利要求1所述的实现方法,其特征在于,所述获得待运行的至少一个GPU运算程序,包括: 获得存储在所述物理主机中的GPU运算程序; 和/或 通过网络接收GRJ运算程序。3.根据权利要求1所述的实现方法,其特征在于,所述的GPU运算程序中包含有与GPU相关的描述信息;所述描述信息中包括:该GPU运算程序所需要的GPU的硬件型号、该GPU的驱动程序及该GPU的运算框架; 所述分别获得每个待运行的GHJ运算程序适用的容器镜像,包括: 获得每个待运行的GHJ运算程序中的与GRJ相关的描述信息; 将获得的每个待运行的GHJ运算程序的所述描述信息,与预先构建的各个容器镜像的GHJ的相关信息进行匹配; 将匹配成功的容器镜像,确定为待运行的GRJ运算程序适用的容器镜像。4.根据权利要求1所述的实现方法,其特征在于,所述容器镜像保存在所述物理主机中或预先设置的容器镜像服务器中; 所述分别获得每个待运行的GHJ运算程序适用的容器镜像,包括: 分别从所述物理主机中保存的容器镜像中或容器镜像服务器中储存的容器镜像中获得每个待运行的GPU运算程序使用的容器镜像。5.根据权利要求1所述的实现方法,其特征在于,所述非GRJ的硬件资源,至少包括: CRJ核心的使用数量、CRJ的占用比、内存容量和磁盘容量。6.根据权利要求1所述的实现方法,其特征在于,所述预设的绑定粒度,包括: 物理显卡中至少一个芯片或GPU芯片中至少一个计算单元。7.根据权利要求1所述的实现方法,其特征在于,所述的容器镜像为利用Linux容器镜像构建指令,或者通过容器镜像构建工具构建的。8.根据权利要求7所述的实现方法,其特征在于,所述根据每个待运行的GHJ运算程序适用的容器镜像,为每个待运行的GPU运算程序创建对应的容器,包括: 调用Linux容器构建指令或通过容器构建工具创建容器。9.根据权利要求1至8任意一项所述的实现方法,其特征在于,还包括: 在运行完GPU运算程序后,保存为该GHJ运算程序创建的容器,继续执行所述获得待运行的至少一个GPU运算程序; 针对所获得的每个GPU运算程序,从已保存的容器中查找与该GPU运算程序相匹配的容器; 如查找到与该GPU运算程序相匹配的容器,则将该GPU运算程序提交给与其相匹配的容器,与该GPU运算程序相匹配的容器利用自身被配置的非GPU的硬件资源和绑定的GPU硬件资源,运行该GPU运算程序; 如未查找到与该GPU运算程序相匹配的容器,则获得该GPU运算程序使用的容器镜像;根据该容器镜像,创建该GPU运算程序对应的容器;为该容器配置非GPU的硬件资源;按照预设的绑定粒度为该容器绑定GPU硬件资源;将该GPU运算程序提交给该容器;该容器利用自身被配置的非GHJ的硬件资源和绑定的GPU硬件资源,运行该GPU运算程序。10.一种在一台物理主机上并行运行GRJ运算程序的实现装置,其特征在于,包括: GRJ运算程序获得单元,用于获得待运行的至少一个GRJ运算程序; 容器镜像获得单元,用于分别获得每个待运行的GPU运算程序适用的容器镜像;所述的容器镜像为依据所述物理主机已安装的GPU的相关信息预先构建的;所述GPU的相关信息至少包括:已安装的各个GPU的硬件型号、每种型号GPU的驱动程序及每种型号GPU的运算框架; 容器创建单元,用于根据每个待运行的GPU运算程序适用的容器镜像,为每个待运行的GHJ运算程序创建对应的容器; 非GRJ的硬件资源配置单元,用于为每个容器配置非GRJ的硬件资源; GHJ硬件资源绑定单元,用于按照预设的绑定粒度为每个容器绑定GRJ硬件资源; 程序提交单元,用于将各个GPU运算程序提交给对应的容器; 容器运行单元,用于各个容器利用自身被配置的非GPU的硬件资源和绑定的GPU硬件资源,运行GPU运算程序。11.根据权利要求10所述的实现装置,其特征在于,所述GPU运算程序获得单元,具体用于: 获得存储在所述物理主机中的GPU运算程序; 和/或 通过网络接收GRJ运算程序。12.根据权利要求10所述的实现装置,其特征在于,所述的GPU运算程序中包含有与GPU相关的描述信息;所述描述信息中包括:该GPU运算程序所需要的GPU的硬件型号、该GPU驱动程序及该GPU的运算框架; 所述容器镜像获得单元包括:描述信息获得子单元、匹配子单元和确定子单元; 所述描述信息获得子单元,用于获得每个待运行的GPU运算程序中的与GPU相关的描述信息; 所述匹配子单元,用于将获得的每个待运行的GPU运算程序的所述描述信息,与预先构建的各个容器镜像的GPU的相关信息进行匹配; 所述确定子单元,用于将匹配成功的容器镜像,确定为待运行的GPU运算程序适用的容器镜像。13.根据权利要求10所述的实现装置,其特征在于,所述容器镜像保存在所述物理主机中或预先设置的容器镜像服务器中; 所述容器镜像获得单元,具体用于: 分别从所述物理主机中保存的容器镜像中或容器镜像服务器中存储的容器镜像中获得每个待运行的GPU运算程序适用的容器镜像。14.根据权利要求10至13任意一项所述的实现装置,其特征在于,还包括:容器存储单元和容器匹配单元; 所述容器存储单元,用于在运行完GPU运算程序后,保存为该GPU运算程序创建的容器,触发所述GHJ运算程序获得单元; 所述容器匹配单元,用于针对所述GPU运算程序获得单元所获得的每个GHJ运算程序,从已保存的容器中查找与该GPU运算程序相匹配的容器; 如果查找到,则触发所述程序提交单元,以使所述程序提交单元触发所述容器运行单元,运行该GPU运算程序; 如果未查找,则触发所述容器镜像获得单元。
【专利摘要】本发明实施例提供了一种在一台物理主机上并行运行GPU运算程序的实现方法及装置,方法包括:获得待运行的至少一个GPU运算程序;分别获得每个待运行的GPU运算程序适用的容器镜像;根据每个待运行的GPU运算程序适用的容器镜像,为每个待运行的GPU运算程序创建对应的容器;为每个容器配置非GPU的硬件资源;按照预设的绑定粒度为每个容器绑定GPU硬件资源;将各个GPU运算程序提交给对应的容器;各个容器利用自身被配置的非GPU的硬件资源和绑定的GPU硬件资源,运行GPU运算程序。应用本发明实施例,实现了在一台物理主机上并行运行不同的GPU运算程序,提高了虚拟化技术对GPU的支持程度。
【IPC分类】G06F9/38, G06F9/50
【公开号】CN105677479
【申请号】CN201511024848
【发明人】潘昊
【申请人】北京奇艺世纪科技有限公司
【公开日】2016年6月15日
【申请日】2015年12月30日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1