一种数据传输和任务处理方法、装置及设备制造方法及图纸

技术编号:24573697 阅读:21 留言:0更新日期:2020-06-21 00:04
本说明书实施例公开了数据传输和任务处理方法、装置及设备。方案包括:获取客户端发送的数据传输请求;获取所述数据传输请求中的第一虚拟地址;获取所述第一虚拟地址对应的物理内存地址;基于物理内存地址与虚拟地址的映射关系,确定所述物理内存地址对应的第二虚拟地址;获取为所述数据传输请求分配的GPU地址;生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令;调用GPU驱动的接口执行所述数据拷贝指令。

【技术实现步骤摘要】
一种数据传输和任务处理方法、装置及设备
本申请涉及计算机
,尤其涉及一种数据传输和任务处理方法、装置及设备。
技术介绍
现有技术中,深度学习(DeepLearning,DL)被广泛利用在人工智能(ArtificialIntelligence,AI)领域。AI特别是深度学习目前已经广泛用于支付(人脸识别)、定损(图片识别)、交互与客服(语音识别)等多种场景,并且取得了显著效果。典型DL任务需要强大的算力支撑,因此当前绝大多数任务运行在图形处理器(GraphicsProcessingUnit,GPU)等加速设备之上。以图形处理器等为代表的加速器芯片是推动AI发展和落地的重要保障。然而GPU在使用过程中普遍存在平均利用率不高的问题。需要提供一个提高GPU的平均利用率的方案。
技术实现思路
有鉴于此,本申请实施例提供了一种数据传输和任务处理方法、装置及设备,用于提高GPU资源虚拟化的效率。为解决上述技术问题,本说明书实施例是这样实现的:本说明书实施例提供的一种数据传输方法,所述方法应用于GPU虚拟化系统中的服务端,包括:获取客户端发送的数据传输请求;获取所述数据传输请求中的第一虚拟地址;获取所述第一虚拟地址对应的物理内存地址;基于物理内存地址与虚拟地址的映射关系,确定所述物理内存地址对应的第二虚拟地址;获取为所述数据传输请求分配的GPU地址;生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令;调用GPU驱动的接口执行所述数据拷贝指令。本说明书实施例提供的一种任务处理方法,所述方法应用于GPU虚拟化系统中的服务端,包括:获取客户端发送的任务计算请求;获取所述任务计算请求中的第一虚拟地址;获取所述第一虚拟地址对应的物理内存地址;基于物理内存地址与虚拟地址的映射关系,确定所述物理内存地址对应的第二虚拟地址;获取为所述任务计算请求分配的GPU地址;生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令;调用GPU驱动的接口执行所述数据拷贝指令;将所述任务计算请求发送至GPU;当所述GPU完成所述任务计算请求对应的计算任务后,生成所述任务计算请求对应的处理状态信息;存储所述处理状态信息。本说明书实施例提供的一种数据传输方法,所述方法应用于GPU虚拟化系统中的客户端,包括:获取应用发送的数据传输请求;获取所述数据传输请求中的第一虚拟地址;基于物理内存地址与虚拟地址的映射关系,确定所述第一虚拟地址对应的物理内存地址;将所述数据传输请求和所述物理内存地址发送至服务端,以便所述服务端根据所述数据传输请求和所述物理内存地址执行数据传输,其中,所述服务器基于物理内存地址与虚拟地址的映射关系,确定所述物理内存地址对应的第二虚拟地址;获取为所述数据传输请求分配的GPU地址;生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令;调用GPU驱动的接口执行所述数据拷贝指令。本说明书实施例提供的一种任务处理方法,所述方法应用于GPU虚拟化系统中的客户端,包括:获取应用发送的任务处理请求;转发所述任务处理请求,以便服务端进行获取;当获取到所述服务端发送的所述任务处理请求的处理状态信息时,发出同步请求;当获取到所述服务端发送的所述同步请求的成功通知后,获取所述任务处理请求的第一虚拟地址;基于物理内存地址与虚拟地址的映射关系,确定所述第一虚拟地址对应的物理内存地址;从所述第一虚拟地址对应的物理内存地址中读取所述任务处理请求的计算结果;将所述任务处理请求的计算结果发送至所述应用。本说明书实施例提供的一种数据传输装置,包括:数据传输请求获取模块,用于获取客户端发送的数据传输请求;第一虚拟地址获取模块,用于获取所述数据传输请求中的第一虚拟地址;物理内存地址获取模块,用于获取所述第一虚拟地址对应的物理内存地址;第二虚拟地址确定模块,用于基于物理内存地址与虚拟地址的映射关系,确定所述物理内存地址对应的第二虚拟地址;GPU地址获取模块,用于获取为所述数据传输请求分配的GPU地址;数据拷贝指令生成模块,用于生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令;接口调用模块,用于调用GPU驱动的接口执行所述数据拷贝指令。本说明书实施例提供的一种任务处理装置,包括:任务计算请求获取模块,用于获取客户端发送的任务计算请求;第一虚拟地址获取模块,用于获取所述任务计算请求中的第一虚拟地址;物理内存地址获取模块,用于获取所述第一虚拟地址对应的物理内存地址;第二虚拟地址确定模块,用于基于物理内存地址与虚拟地址的映射关系,确定所述物理内存地址对应的第二虚拟地址;GPU地址获取模块,用于获取为所述任务计算请求分配的GPU地址;数据拷贝指令生成模块,用于生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令;GPU驱动接口调用模块,用于调用GPU驱动的接口执行所述数据拷贝指令;任务计算请求发送模块,用于将所述任务计算请求发送至GPU;处理状态信息生成模块,用于当所述GPU完成所述任务计算请求对应的计算任务后,生成所述任务计算请求对应的处理状态信息;处理状态信息存储模块,用于存储所述处理状态信息。本说明书实施例提供的一种数据传输装置,包括:数据传输请求获取模块,用于获取应用发送的数据传输请求;第一虚拟地址获取模块,用于获取所述数据传输请求中的第一虚拟地址;物理内存地址确定模块,用于基于物理内存地址与虚拟地址的映射关系,确定所述第一虚拟地址对应的物理内存地址;数据传输请求和所述物理内存地址发送模块,用于将所述数据传输请求和所述物理内存地址发送至服务端,以便所述服务端根据所述数据传输请求和所述物理内存地址执行数据传输,其中,所述服务器基于物理内存地址与虚拟地址的映射关系,确定所述物理内存地址对应的第二虚拟地址;获取为所述数据传输请求分配的GPU地址;生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令;调用GPU驱动的接口执行所述数据拷贝指令。本说明书实施例提供的一种任务处理装置,包括:任务处理请求获取模块,用于获取应用发送的任务处理请求;任务处理请求转发模块,用于转发所述任务处理请求,以便服务端进行获取;同步请求发送模块,用于当获取到所述服务端发送的所述任务处理请求的处理状态信息时,发出同步请求;第一虚拟地址获取模块,用于当获取到所述服务端发送的所述同步请求的成功通知后,获取所述任务处理请求的第一虚拟地址;物理内存地址确定模块,用于基于物理内存地址与虚拟地址的映射关系,确定所述第一虚拟地址对应的物理内存地址;计算结果读取模块,用于从所述第一虚拟地址对应的物理内存地址中读取所述任务处理请求的计本文档来自技高网...

【技术保护点】
1.一种数据传输方法,所述方法应用于GPU虚拟化系统中的服务端,包括:/n获取客户端发送的数据传输请求;/n获取所述数据传输请求中的第一虚拟地址;/n获取所述第一虚拟地址对应的物理内存地址;/n基于物理内存地址与虚拟地址的映射关系,确定所述物理内存地址对应的第二虚拟地址;/n获取为所述数据传输请求分配的GPU地址;/n生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令;/n调用GPU驱动的接口执行所述数据拷贝指令。/n

【技术特征摘要】
1.一种数据传输方法,所述方法应用于GPU虚拟化系统中的服务端,包括:
获取客户端发送的数据传输请求;
获取所述数据传输请求中的第一虚拟地址;
获取所述第一虚拟地址对应的物理内存地址;
基于物理内存地址与虚拟地址的映射关系,确定所述物理内存地址对应的第二虚拟地址;
获取为所述数据传输请求分配的GPU地址;
生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令;
调用GPU驱动的接口执行所述数据拷贝指令。


2.如权利要求1所述的方法,在所述确定所述物理内存地址对应的第二虚拟地址之前,还包括:
判断所述物理内存地址是否存储于映射表中;
若否,生成所述物理内存地址对应的第二虚拟地址,并将所述物理内存地址与所述第二虚拟地址的映射关系存储于所述映射表中;
所述确定所述物理内存地址对应的第二虚拟地址,具体包括:
若是,获取所述物理内存地址对应的第二虚拟地址。


3.一种任务处理方法,所述方法应用于GPU虚拟化系统中的服务端,包括:
获取客户端发送的任务计算请求;
获取所述任务计算请求中的第一虚拟地址;
获取所述第一虚拟地址对应的物理内存地址;
基于物理内存地址与虚拟地址的映射关系,确定所述物理内存地址对应的第二虚拟地址;
获取为所述任务计算请求分配的GPU地址;
生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令;
调用GPU驱动的接口执行所述数据拷贝指令;
将所述任务计算请求发送至GPU;
当所述GPU完成所述任务计算请求对应的计算任务后,生成所述任务计算请求对应的处理状态信息;
存储所述处理状态信息。


4.如权利要求3所述的方法,所述第一虚拟地址包括计算数据获取虚拟地址和计算结果存放虚拟地址,所述获取所述任务计算请求中的第一虚拟地址,具体包括:
获取所述任务计算请求中的计算数据获取虚拟地址;
所述获取所述第一虚拟地址对应的物理内存地址,具体包括:
获取所述计算数据获取虚拟地址对应的第一物理内存地址;
所述确定所述物理内存地址对应的第二虚拟地址,具体包括:
确定所述第一物理内存地址对应的第二虚拟地址。


5.如权利要求4所述的方法,所述获取为所述任务计算请求分配的GPU地址,具体包括:
获取为所述任务计算请求分配的计算数据存储GPU地址和计算结果存储GPU地址;
所述生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令,具体包括:
生成从所述第二虚拟地址至所述计算数据存储GPU地址的数据拷贝指令。


6.如权利要求5所述的方法,在所述生成所述任务计算请求对应的处理状态信息之后,还包括:
当获取到所述客户端发送的计算结果同步请求时,获取所述计算结果存放虚拟地址对应的第二物理内存地址;
基于物理内存地址与虚拟地址的映射关系,确定所述第二物理内存地址对应的第三虚拟地址;
生成将计算结果从所述计算结果存储GPU地址中拷贝至所述第三虚拟地址的数据拷贝指令;
调用GPU驱动的接口执行所述数据拷贝指令。


7.如权利要求3所述的方法,所述获取客户端发送的任务计算请求,具体包括:
从提交队列中获取所述客户端发送的任务计算请求;所述提交队列中包含多个所述客户端提交的未经过处理的任务计算请求;
在生成所述任务计算请求对应的处理状态信息之后,还包括:
将所述任务计算请求对应的处理状态信息发送至完成队列,所述完成队列中包含多个所述服务端提交的未被所述客户端读取的处理状态信息。


8.一种数据传输方法,所述方法应用于GPU虚拟化系统中的客户端,包括:
获取应用发送的数据传输请求;
获取所述数据传输请求中的第一虚拟地址;
基于物理内存地址与虚拟地址的映射关系,确定所述第一虚拟地址对应的物理内存地址;
将所述数据传输请求和所述物理内存地址发送至服务端,以便所述服务端根据所述数据传输请求和所述物理内存地址执行数据传输,其中,所述服务器基于物理内存地址与虚拟地址的映射关系,确定所述物理内存地址对应的第二虚拟地址;获取为所述数据传输请求分配的GPU地址;生成从所述第二虚拟地址至所述GPU地址的数据拷贝指令;调用GPU驱动的接口执行所述数据拷贝指令。


9.如权利要求8所述的方法,在所述获取应用发送的数据传输请求之前,还包括:
获取应用发送的内存分配请求;
获取所述内存分配请求中的数据;
将所述数据存储至第一物理内存地址;
将所述第一物理内存地址映射到所述应用的进程空间,生成所述第一物理内存地址对应的第一虚拟地址;
将所述第一虚拟地址发送给所述应用,并存储所述物理内存地址和所述第一虚拟地址的映射关系。


10.如权利要求9所述的方法,所述确定所述第一虚拟地址对应的物理内存地址,具体包括:
根据所述映射关系确定所述第一虚拟地址对应的物理内存地址。


11.一种任务处理方法,所述方法应用于GPU虚拟化系统中的客户端,包括:
获取应用发送的任务处理请求;
转发所述任务处理请求,以便服务端进行获取;
当获取到所述服务端发送的所述任务处理请求的处理状态信息时,发出同步请求;
当获取到所述服务端发送的所述同步请求的成功通知后,获取所述任务处理请求的第一虚拟地址;
基于物理内存地址与虚拟地址的映射关系,确定所述第一虚拟地址对应的物理内存地址;
从所述第一虚拟地址对应的物理内存地址中读取所述任务处理请求的计算结果;
将所述任务处理请求的计算结果发送至所述应用。


12.如权利要求11所述的方法,所述第一虚拟地址包括计算数据获取虚拟地址和计算结果存放虚拟地址;
所述获取所述任务处理请求的第一虚拟地址,具体包括:
获取所述任务处理请求的计算结果存放虚拟地址;
所述确定所述第一虚拟地址对应的物理内存地址,具体包括:
确定所述计算结果存放虚拟地址对应的物理内存地址。


13.如权利要求11所述的方法,所述转发所述任务处理请求,具体包括:
将所述任务处理请求发送至提交队列,以便所述服务端从所述提交队列中获取所述任务处理请求,所述提交队列中包含多个所述客户端提交的未经过处理的任务计算请求;
当获取到所述服务端发送的所述任务处理请求的处理状态信息时,发出同步请求,具体包括:
查询完成队列,当查询到所述服务端发送的所述任务处理请求的处理状态信息时,发出同步请求,所述完成队列中包含多个所述服务端提交的未被所述客户端读取的处理状态信息;
当获取到所述服务端发送的所述同步请求的成功通知后,获取所述任务处理请求的第一虚拟地址,具体包括:
查询所述完成队列,当查询到所述服务端发送的所述同步请求的成功通知后,获取所述任务处理请求的第一虚...

【专利技术属性】
技术研发人员:赵军平
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1