CN117609122A - 一种数据传输系统及方法、电子设备和存储介质 - Google Patents
一种数据传输系统及方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117609122A CN117609122A CN202311459841.4A CN202311459841A CN117609122A CN 117609122 A CN117609122 A CN 117609122A CN 202311459841 A CN202311459841 A CN 202311459841A CN 117609122 A CN117609122 A CN 117609122A
- Authority
- CN
- China
- Prior art keywords
- gpu
- storage device
- write request
- target
- data read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 19
- 239000008186 active pharmaceutical agent Substances 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 230000010365 information processing Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据传输系统及方法、电子设备和存储介质,所述系统包括:预定义用户态文件操作库、内核驱动、存储设备访问驱动、存储设备、GPU;预定义用户态文件操作库向GPU用户提供API,以及基于API接收GPU用户输入的数据读/写请求,其中,数据读/写请求中包括目标GPU虚拟地址;内核驱动在接收到数据读/写请求后进行地址映射,确定目标GPU虚拟地址对应的目标GPU物理地址;存储设备访问驱动响应数据读/写请求,基于目标GPU物理地址,在存储设备和GPU之间进行数据传输。本公开实施例可以提高存储设备和GPU之间的数据传输带宽,降低传输迟延。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据传输系统及方法、电子设备和存储介质。
背景技术
传统的存储访问方式是需要中央处理器(Central Processing Unit,CPU)的介入。以读数据至图形处理器(Graphics Processing Unit,GPU)为例,数据传输过程需要由CPU从存储设备中读取数据至内存,进而将其拷贝到GPU。这种数据传输方式会造成存储访问的瓶颈,导致GPU无法充分发挥性能优势。因此,亟需一种数据传输效率较高的数据传输系统。
发明内容
本公开提出了一种数据传输系统及方法、电子设备和存储介质的技术方案。
根据本公开的一方面,提供了一种数据传输系统,包括:预定义用户态文件操作库、内核驱动、存储设备访问驱动、存储设备、GPU;所述预定义用户态文件操作库,用于向GPU用户提供API,以及基于所述API接收GPU用户输入的数据读/写请求,其中,所述数据读/写请求中包括目标GPU虚拟地址;所述内核驱动,用于在接收到所述数据读/写请求后进行地址映射,确定所述目标GPU虚拟地址对应的目标GPU物理地址;所述存储设备访问驱动,用于响应所述数据读/写请求,基于所述目标GPU物理地址,在所述存储设备和所述GPU之间进行数据传输。
在一种可能的实现方式中,所述预定义用户态文件操作库,用于进行数据传输路径验证,确定是否支持所述存储设备和所述GPU之间的直接数据传输;所述预定义用户态文件操作库,用于在确定支持所述存储设备和所述GPU之间的直接数据传输的情况下,通过发起IOCTL系统调用,将所述数据读/写请求发送至所述内核驱动。
在一种可能的实现方式中,所述内核驱动,用于在接收到所述数据读/写请求后,创建CPU代理缓存,以及将所述CPU代理缓存对应的目标CPU地址发送至所述存储设备访问驱动,其中,所述CPU代理缓存用于存储所述目标GPU虚拟地址对应的所述目标GPU物理地址。
在一种可能的实现方式中,所述系统包括:GPU驱动;所述内核驱动,用于基于所述GPU驱动,确定所述目标GPU虚拟地址对应的所述目标GPU物理地址,以及将所述目标GPU物理地址存储在所述CPU代理缓存。
在一种可能的实现方式中,所述存储设备访问驱动,用于响应所述数据读/写请求,通过访问所述目标CPU地址,从所述CPU代理缓存中获取所述目标GPU物理地址。
在一种可能的实现方式中,所述存储设备包括:DMA引擎;所述DMA引擎,用于基于所述目标GPU物理地址,在所述存储设备和所述GPU之间进行数据传输。
在一种可能的实现方式中,所述存储设备访问驱动,用于向所述内核驱动返回响应结果,其中,所述响应结果用于指示所述数据读/写请求对应的数据传输操作是否完成。
根据本公开的一方面,提供了一种数据传输方法,包括:预定义用户态文件操作库向GPU用户提供API,以及基于所述API接收GPU用户输入的数据读/写请求,其中,所述数据读/写请求中包括目标GPU虚拟地址;内核驱动在接收到所述数据读/写请求后进行地址映射,确定所述目标GPU虚拟地址对应的目标GPU物理地址;存储设备访问驱动响应所述数据读/写请求,基于所述目标GPU物理地址,在所述存储设备和所述GPU之间进行数据传输。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
在本公开实施例中,预定义用户态文件操作库用于向GPU用户提供API,以使得GPU用户通过调用该API输入包括目标GPU虚拟地址的数据读/写请求;内核层面的内核驱动在接收到数据读/写请求后进行地址映射,确定目标GPU虚拟地址对应的目标GPU物理地址;存储设备访问驱动响应数据读/写请求,基于目标GPU物理地址,在存储设备和GPU之间直接进行数据传输。由于数据传输过程无需CPU物理内存参与,从而可以提高存储设备和GPU之间的数据传输带宽,降低传输迟延。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的一种数据传输系统的框图;
图2示出根据本公开实施例的一种数据传输方法的流程图。
图3示出根据本公开实施例的一种电子设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
相关技术中,提高存储性能的方法包括:Direct Storage、AMD Direct GMA、GPUDirect Storage等。
Direct Storage是微软开发的一项技术,旨在提高Windows游戏系统的存储性能,Direct Storage利用硬件加速器和应用程序接口(Application Programming Interface,API)技术,使游戏可以直接访问NVMe SSD,从而大大提高了游戏加载速度和数据传输效率。Direct Storage需要硬件支持,因此,需要具备特定的硬件加速器才能实现最佳性能。此外,Direct Storage只适用于Windows 11操作系统,这限制了它在其他操作系统上的使用。且该技术未开源。
AMD Direct GMA是AMD开发的一项技术,旨在提高数据传输效率,AMD Direct GMA可以利用DMA引擎直接访问物理存储设备,绕过CPU的介入和数据拷贝,从而大大提高了数据传输效率,它可以支持多种操作系统和硬件平台,并提供较低的延迟。AMD Direct GMA只能适用于AMD的GPU和CPU。此外,如果DMA引擎在不同的硬件平台上有所不同,可能需要不同的驱动程序和软件开发工具包(Software Development Kit,SDK)。且该技术未开源。
GPU Direct Storage是NVIDIA开发的一项技术,旨在提高存储访问效率,GPUDirect Storage可以利用NVIDIA硬件加速器和API技术,使GPU可以直接访问NVMe SSD,从而大大提高了数据传输效率,它可以通过绕过操作系统和CPU的路径来实现低延迟存储访问,并提供较好的可扩展性。GPU Direct Storage只能适用于NVIDIA特定的硬件。且该技术未完全开源。
本公开实施例提供了一种数据传输系统,可以将存储访问过程从CPU转移到GPU,直接在存储设备和GPU之间进行数据传输,从而提高数据传输带宽,降低传输迟延。下面对本公开实施例提供的数据传输系统进行详细描述。
图1示出根据本公开实施例的一种数据传输系统的框图。如图1所示,该数据传输系统包括:预定义用户态文件操作库、内核驱动、存储设备访问驱动、存储设备、GPU;预定义用户态文件操作库,用于向GPU用户提供API,以及基于该API接收GPU用户输入的数据读/写请求,其中,数据读/写请求中包括目标GPU虚拟地址;内核驱动,用于在接收到数据读/写请求后进行地址映射,确定目标GPU虚拟地址对应的目标GPU物理地址;存储设备访问驱动,用于响应数据读/写请求,基于目标GPU物理地址,在存储设备和GPU之间进行数据传输。
根据本公开的实施例的数据传输系统,GPU用户仅需调用预定义用户态文件操作库提供的API以输入包括目标GPU虚拟地址的数据读/写请求,在内核层面基于内核驱动进行地址映射,确定目标GPU虚拟地址对应的目标GPU物理地址,以使得存储设备访问驱动基于目标GPU物理地址在存储设备和GPU之间直接进行数据传输,由于数据传输过程无需CPU物理内存参与,从而可以提高存储设备和GPU之间的数据传输带宽,降低传输迟延。
其中,预定义用户态文件操作库可以是基于统一系统架构运行时实现的用户态文件库,可以向GPU用户提供File Driver Open、File Buf Register、File HandleRegister、File Read、File Write等API。用户可以通过调用预定义用户态文件操作库提供的API实现直接从物理存储设备到GPU显存的理想数据传输路径。
在一示例中,GPU用户在GPU应用程序中调用预定义用户态文件操作库提供的API以输入数据读/写请求。
在一种可能的实现方式中,预定义用户态文件操作库,用于进行数据传输路径验证,确定是否支持存储设备和GPU之间的直接数据传输;预定义用户态文件操作库,用于在确定支持存储设备和GPU之间的直接数据传输的情况下,通过发起IOCTL系统调用,将数据读/写请求发送至内核驱动。
预定义用户态文件操作库对用户发起的数据读/写请求进行数据传输路径验证,确定是否支持存储设备和GPU显存之间的理想数据传输路径。在确定支持存储设备和GPU显存之间的理想数据传输路径的情况下,通过发起IOCTL系统调用,将数据读/写请求从用户态发送至内核态的内核驱动。
本公开实施例的预定义用户态文件操作库兼容可移植操作系统接口(PortableOperating System Interface,POSIX),在上述理想传输路径不满足的情况下,可以基于POSIX提供的vfs read/write正确读写GPU显存。
在一种可能的实现方式中,内核驱动,用于在接收到数据读/写请求后,创建CPU代理缓存,以及将CPU代理缓存对应的目标CPU地址发送至存储设备访问驱动,其中,CPU代理缓存用于存储目标GPU虚拟地址对应的目标GPU物理地址。
内核驱动在接收到基于预定义用户态文件操作库下发的数据读/写请求后,在内核驱动内部创建CPU代理缓存,该CPU代理缓存用于存储数据读/写请求中包括的目标GPU虚拟地址对应的目标GPU物理地址,以实现该CPU代理缓存的目标CPU地址和目标GPU物理地址之间的地址映射。
在一种可能的实现方式中,该数据传输系统包括:GPU驱动;内核驱动,用于基于GPU驱动,确定目标GPU虚拟地址对应的目标GPU物理地址,以及将目标GPU物理地址存储在CPU代理缓存。
针对数据读/写请求中包括目标GPU虚拟地址,内核驱动通过调用GPU驱动,确定目标GPU虚拟地址对应的目标GPU物理地址。
在一种可能的实现方式中,存储设备访问驱动,用于响应数据读/写请求,通过访问目标CPU地址,从CPU代理缓存中获取目标GPU物理地址。
在进行真正的数据传输之前,存储访问设备驱动响应数据读/写请求,通过访问目标CPU地址,从CPU代理缓存中获取数据读/写请求对应的目标GPU物理地址。
在一种可能的实现方式中,存储设备包括:DMA引擎;DMA引擎,用于基于目标GPU物理地址,在存储设备和GPU之间进行数据传输。
存储设备访问驱动获取到数据读/写请求对应的目标GPU物理地址之后,物理存储设备自带的DMA引擎,可以基于该目标GPU物理地址,在存储设备和GPU显存之间直接进行数据传输,数据传输过程无需经过CPU物理内存。
在一示例中,存储设备访问驱动可以是添加了特定补丁的NVMe驱动,基于NVMe驱动,可以在物理磁盘(物理存储设备)和GPU显存之间直接进行数据访问。
在一示例中,存储设备访问驱动可以是添加了特定补丁的RDMA驱动,基于RDMA驱动,可以实现网络文件系统(Network File System,NFS)(物理存储设备)和GPU显存的跨主机数据访问。
特定补丁用于实现物理存储设备和GPU显存之间的直接数据访问,具体形式可以根据实际场景灵活调整,本公开对此不做具体限定。
在一种可能的实现方式中,存储设备访问驱动,用于向内核驱动返回响应结果,其中,响应结果用于指示数据读/写请求对应的数据传输操作是否完成。
在物理存储设备和GPU显存之间数据传输操作结束之后,存储设备访问驱动向内核驱动返回响应结果以完成回调,其中,响应结果用于指示数据读/写请求对应的数据传输操作是否完成。
根据本公开的实施例的数据传输系统,GPU用户仅需调用预定义用户态文件操作库提供的API以输入包括目标GPU虚拟地址的数据读/写请求,在内核层面基于内核驱动进行地址映射,确定目标GPU虚拟地址对应的目标GPU物理地址,以使得存储设备访问驱动基于目标GPU物理地址在存储设备和GPU之间直接进行数据传输,由于数据传输过程无需CPU物理内存参与,从而可以提高存储设备和GPU之间的数据传输带宽,降低传输迟延。
图2示出根据本公开实施例的一种数据传输方法的流程图。该方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,该方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。或者,可通过服务器执行该方法。如图2所示,该方法可以包括:
在步骤S21中,预定义用户态文件操作库向GPU用户提供API,以及基于该API接收GPU用户输入的数据读/写请求,其中,数据读/写请求中包括目标GPU虚拟地址;
在步骤S22中,内核驱动在接收到数据读/写请求后进行地址映射,确定目标GPU虚拟地址对应的目标GPU物理地址;
在步骤S23中,存储设备访问驱动响应数据读/写请求,基于目标GPU物理地址,在存储设备和GPU之间进行数据传输。
在一种可能的实现方式中,该方法还包括:预定义用户态文件操作库进行数据传输路径验证,确定是否支持存储设备和GPU之间的直接数据传输;预定义用户态文件操作库在确定支持存储设备和GPU之间的直接数据传输的情况下,通过发起IOCTL系统调用,将数据读/写请求发送至内核驱动。
在一种可能的实现方式中,该方法还包括:内核驱动在接收到数据读/写请求后,创建CPU代理缓存,以及将CPU代理缓存对应的目标CPU地址发送至存储设备访问驱动,其中,CPU代理缓存用于存储目标GPU虚拟地址对应的目标GPU物理地址。
在一种可能的实现方式中,内核驱动在接收到数据读/写请求后进行地址映射,确定目标GPU虚拟地址对应的目标GPU物理地址,包括:内核驱动基于GPU驱动,确定目标GPU虚拟地址对应的目标GPU物理地址,以及将目标GPU物理地址存储在CPU代理缓存。
在一种可能的实现方式中,该方法还包括:存储设备访问驱动响应数据读/写请求,通过访问目标CPU地址,从CPU代理缓存中获取目标GPU物理地址。
在一种可能的实现方式中,该方法还包括:存储设备中的DMA引擎基于目标GPU物理地址,在存储设备和GPU之间进行数据传输。
在一种可能的实现方式中,该方法还包括:存储设备访问驱动向内核驱动返回响应结果,其中,响应结果用于指示数据读/写请求对应的数据传输操作是否完成。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种数据传输方法/系统,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
该方法与计算机系统的内部结构存在特定技术关联,且能够解决如何提升硬件运算效率或执行效果的技术问题(包括减少数据存储量、减少数据传输量、提高硬件处理速度等),从而获得符合自然规律的计算机系统内部性能改进的技术效果。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述系统和/或上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以运行上述系统和/或执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器运行上述系统和/或执行上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图3示出根据本公开实施例的一种电子设备的框图。参照图3,电子设备1900可以被提供为一服务器或终端设备。参照图3,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(Mac OS XTM),多用户多进程的计算机操作系统(UnixTM),自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种数据传输系统,其特征在于,所述系统包括:预定义用户态文件操作库、内核驱动、存储设备访问驱动、存储设备、图形处理器GPU;
所述预定义用户态文件操作库,用于向GPU用户提供应用程序接口API,以及基于所述API接收GPU用户输入的数据读/写请求,其中,所述数据读/写请求中包括目标GPU虚拟地址;
所述内核驱动,用于在接收到所述数据读/写请求后进行地址映射,确定所述目标GPU虚拟地址对应的目标GPU物理地址;
所述存储设备访问驱动,用于响应所述数据读/写请求,基于所述目标GPU物理地址,在所述存储设备和所述GPU之间进行数据传输。
2.根据权利要求1所述的系统,其特征在于,所述预定义用户态文件操作库,用于进行数据传输路径验证,确定是否支持所述存储设备和所述GPU之间的直接数据传输;
所述预定义用户态文件操作库,用于在确定支持所述存储设备和所述GPU之间的直接数据传输的情况下,通过发起IOCTL系统调用,将所述数据读/写请求发送至所述内核驱动。
3.根据权利要求1或2所述的系统,其特征在于,所述内核驱动,用于在接收到所述数据读/写请求后,创建CPU代理缓存,以及将所述CPU代理缓存对应的目标CPU地址发送至所述存储设备访问驱动,其中,所述CPU代理缓存用于存储所述目标GPU虚拟地址对应的所述目标GPU物理地址。
4.根据权利要求3所述的系统,其特征在于,所述系统包括:GPU驱动;
所述内核驱动,用于基于所述GPU驱动,确定所述目标GPU虚拟地址对应的所述目标GPU物理地址,以及将所述目标GPU物理地址存储在所述CPU代理缓存。
5.根据权利要求3所述的系统,其特征在于,所述存储设备访问驱动,用于响应所述数据读/写请求,通过访问所述目标CPU地址,从所述CPU代理缓存中获取所述目标GPU物理地址。
6.根据权利要求1所述的系统,其特征在于,所述存储设备包括:DMA引擎;
所述DMA引擎,用于基于所述目标GPU物理地址,在所述存储设备和所述GPU之间进行数据传输。
7.根据权利要求1所述的系统,其特征在于,所述存储设备访问驱动,用于向所述内核驱动返回响应结果,其中,所述响应结果用于指示所述数据读/写请求对应的数据传输操作是否完成。
8.一种数据传输方法,其特征在于,包括:
预定义用户态文件操作库向GPU用户提供API,以及基于所述API接收GPU用户输入的数据读/写请求,其中,所述数据读/写请求中包括目标GPU虚拟地址;
内核驱动在接收到所述数据读/写请求后进行地址映射,确定所述目标GPU虚拟地址对应的目标GPU物理地址;
存储设备访问驱动响应所述数据读/写请求,基于所述目标GPU物理地址,在所述存储设备和所述GPU之间进行数据传输。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以运行权利要求1至7中任意一项所述的系统,或,执行权利要求8所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的系统,或,实现权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311459841.4A CN117609122B (zh) | 2023-11-03 | 2023-11-03 | 一种数据传输系统及方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311459841.4A CN117609122B (zh) | 2023-11-03 | 2023-11-03 | 一种数据传输系统及方法、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117609122A true CN117609122A (zh) | 2024-02-27 |
CN117609122B CN117609122B (zh) | 2024-06-18 |
Family
ID=89956985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311459841.4A Active CN117609122B (zh) | 2023-11-03 | 2023-11-03 | 一种数据传输系统及方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117609122B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200128A (zh) * | 2013-04-01 | 2013-07-10 | 华为技术有限公司 | 一种网络包处理的方法、装置和系统 |
CN106683035A (zh) * | 2015-11-09 | 2017-05-17 | 龙芯中科技术有限公司 | Gpu加速方法和装置 |
CN108123894A (zh) * | 2017-12-22 | 2018-06-05 | 湖南卫导信息科技有限公司 | 一种基于Intel万兆网卡实现采样数据流低延迟传输的方法 |
CN110392084A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 在分布式系统中管理地址的方法、设备和计算机程序产品 |
US20200183872A1 (en) * | 2020-02-13 | 2020-06-11 | Amit K Srivastava | Platform controller hub (pch) chipsets in platforms as extended io expander(s) |
CN111768330A (zh) * | 2019-03-30 | 2020-10-13 | 华为技术有限公司 | 图像处理方法及计算机系统 |
CN113312283A (zh) * | 2021-05-28 | 2021-08-27 | 北京航空航天大学 | 一种基于fpga加速的异构图学习系统 |
CN113674133A (zh) * | 2021-07-27 | 2021-11-19 | 阿里巴巴新加坡控股有限公司 | Gpu集群共享显存系统、方法、装置及设备 |
CN114356802A (zh) * | 2021-12-10 | 2022-04-15 | 北京镁伽科技有限公司 | 直接访问内存物理地址的方法和装置、系统及存储介质 |
CN115454358A (zh) * | 2022-11-09 | 2022-12-09 | 摩尔线程智能科技(北京)有限责任公司 | 数据的存储控制方法及其装置、图像处理系统 |
CN115794419A (zh) * | 2023-02-06 | 2023-03-14 | 深流微智能科技(深圳)有限公司 | Gpu的调控系统及方法 |
WO2023066268A1 (zh) * | 2021-10-21 | 2023-04-27 | 华为技术有限公司 | 一种处理请求的方法、装置及系统 |
CN116028455A (zh) * | 2023-01-06 | 2023-04-28 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
CN116136826A (zh) * | 2021-11-17 | 2023-05-19 | 华为技术有限公司 | 内存访问方法、芯片、电子设备及计算机可读存储介质 |
CN116755902A (zh) * | 2023-06-09 | 2023-09-15 | 海光信息技术股份有限公司 | 数据通信方法及装置、处理系统、电子设备、存储介质 |
CN116954947A (zh) * | 2023-07-31 | 2023-10-27 | 北京火山引擎科技有限公司 | 数据请求处理方法、装置、设备及存储介质 |
-
2023
- 2023-11-03 CN CN202311459841.4A patent/CN117609122B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200128A (zh) * | 2013-04-01 | 2013-07-10 | 华为技术有限公司 | 一种网络包处理的方法、装置和系统 |
CN106683035A (zh) * | 2015-11-09 | 2017-05-17 | 龙芯中科技术有限公司 | Gpu加速方法和装置 |
CN108123894A (zh) * | 2017-12-22 | 2018-06-05 | 湖南卫导信息科技有限公司 | 一种基于Intel万兆网卡实现采样数据流低延迟传输的方法 |
CN110392084A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 在分布式系统中管理地址的方法、设备和计算机程序产品 |
CN111768330A (zh) * | 2019-03-30 | 2020-10-13 | 华为技术有限公司 | 图像处理方法及计算机系统 |
US20200183872A1 (en) * | 2020-02-13 | 2020-06-11 | Amit K Srivastava | Platform controller hub (pch) chipsets in platforms as extended io expander(s) |
CN113312283A (zh) * | 2021-05-28 | 2021-08-27 | 北京航空航天大学 | 一种基于fpga加速的异构图学习系统 |
CN113674133A (zh) * | 2021-07-27 | 2021-11-19 | 阿里巴巴新加坡控股有限公司 | Gpu集群共享显存系统、方法、装置及设备 |
WO2023066268A1 (zh) * | 2021-10-21 | 2023-04-27 | 华为技术有限公司 | 一种处理请求的方法、装置及系统 |
CN116136826A (zh) * | 2021-11-17 | 2023-05-19 | 华为技术有限公司 | 内存访问方法、芯片、电子设备及计算机可读存储介质 |
CN114356802A (zh) * | 2021-12-10 | 2022-04-15 | 北京镁伽科技有限公司 | 直接访问内存物理地址的方法和装置、系统及存储介质 |
CN115454358A (zh) * | 2022-11-09 | 2022-12-09 | 摩尔线程智能科技(北京)有限责任公司 | 数据的存储控制方法及其装置、图像处理系统 |
CN116028455A (zh) * | 2023-01-06 | 2023-04-28 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
CN115794419A (zh) * | 2023-02-06 | 2023-03-14 | 深流微智能科技(深圳)有限公司 | Gpu的调控系统及方法 |
CN116755902A (zh) * | 2023-06-09 | 2023-09-15 | 海光信息技术股份有限公司 | 数据通信方法及装置、处理系统、电子设备、存储介质 |
CN116954947A (zh) * | 2023-07-31 | 2023-10-27 | 北京火山引擎科技有限公司 | 数据请求处理方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
凌明;武建平;柳琦;杨晓东;张阳;: "面向国产Unicore架构的Android图形系统优化", 东南大学学报(自然科学版), no. 06, 20 November 2012 (2012-11-20) * |
屠雪真;: "一种优化的内核态文件发送方法", 计算机与现代化, no. 05, 15 May 2019 (2019-05-15) * |
郑晨;陆钢;谭崇康;詹剑锋;张立新;: "面向数据中心计算的操作系统架构与关键技术综述", 高技术通讯, no. 08, 15 August 2017 (2017-08-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117609122B (zh) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389936B (zh) | 一种启动小程序的方法、设备和计算机存储介质 | |
CN107870728B (zh) | 用于移动数据的方法和设备 | |
WO2020119316A1 (zh) | 终端系统构架、通信系统及通信方法、存储介质 | |
US10565131B2 (en) | Main memory including hardware accelerator and method of operating the same | |
US8843631B2 (en) | Dynamic local function binding apparatus and method | |
CN114625481A (zh) | 数据处理方法、装置、可读介质及电子设备 | |
US11159322B2 (en) | Secure multiparty computing framework using a restricted operating environment with a guest agent | |
CN109976787B (zh) | 应用程序升级方法、装置、终端及计算机可读存储介质 | |
CN114201317B (zh) | 数据传输方法、装置、存储介质及电子设备 | |
CN114089920A (zh) | 数据存储方法、装置、可读介质及电子设备 | |
CN113886019B (zh) | 虚拟机创建方法、装置、系统、介质和设备 | |
CN110825435B (zh) | 用于处理数据的方法和装置 | |
CN114595065A (zh) | 数据获取方法、装置、存储介质以及电子设备 | |
CN117130663B (zh) | 一种指令读取方法及l2指令缓存、电子设备和存储介质 | |
CN117609122B (zh) | 一种数据传输系统及方法、电子设备和存储介质 | |
WO2023226720A1 (zh) | 资源文件的传输方法、装置、设备及存储介质 | |
US10728342B1 (en) | Plug and play multi tenancy support for cloud applications | |
CN111797270A (zh) | 音频播放方法、装置、电子设备及计算机可读存储介质 | |
CN112839071B (zh) | 训练系统、训练数据访问方法及装置、电子设备、介质 | |
US11481255B2 (en) | Management of memory pages for a set of non-consecutive work elements in work queue designated by a sliding window for execution on a coherent accelerator | |
US11128617B2 (en) | Token based secure multiparty computing framework using a restricted operating environment | |
CN112988604A (zh) | 对象测试方法、测试系统、电子设备及可读存储介质 | |
CN117891624B (zh) | 基于虚拟化设备的应用间通信方法、装置及电子设备 | |
CN115297169B (zh) | 数据处理方法、装置、电子设备及介质 | |
CN117742957B (zh) | 内存分配方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |