CN117312229B - 一种数据传输装置、数据处理设备、***、方法及介质 - Google Patents
一种数据传输装置、数据处理设备、***、方法及介质 Download PDFInfo
- Publication number
- CN117312229B CN117312229B CN202311607588.2A CN202311607588A CN117312229B CN 117312229 B CN117312229 B CN 117312229B CN 202311607588 A CN202311607588 A CN 202311607588A CN 117312229 B CN117312229 B CN 117312229B
- Authority
- CN
- China
- Prior art keywords
- address
- memory
- processor
- data
- data transmission
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 156
- 230000005540 biological transmission Effects 0.000 title claims abstract description 126
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000001133 acceleration Effects 0.000 claims abstract description 53
- 238000013507 mapping Methods 0.000 claims description 47
- 238000004364 calculation method Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 17
- 238000003672 processing method Methods 0.000 claims description 12
- 238000012546 transfer Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了计算机技术领域内的一种数据传输装置、数据处理设备、***、方法及介质。本发明所提供数据传输装置的每一内存访问模块能够直接访问至少一个远端设备的一段内存地址,因此远端设备的内存中存储的加速任务的待处理数据,可从远端设备的内存直达数据传输装置的内存访问模块;并且,处理器所连加速器输出的加速任务的处理结果,也可以通过内存访问模块直达远端设备的内存,减少了数据搬移次数,降低了加速任务执行过程中的资源消耗和处理时间。被每一内存访问模块直接访问的各远端设备可以共享数据传输装置所连的处理器及处理器所连的加速器,提高了处理器及加速器的资源利用率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据传输装置、数据处理设备、***、方法及介质。
背景技术
目前,远程客户机可以远程利用服务器上的加速器执行加速任务。在服务器上的加速器执行加速任务之前,需要将远程客户机提供的加速任务的相关数据从远程客户机内存搬移至服务器内存,之后再由服务器内存搬移至加速器。并且加速任务的最终执行结果也需要从加速器搬移至服务器内存,再从服务器内存搬移至远程客户机内存。可见此过程需要多次搬移大量数据,增加了资源消耗和加速任务处理时间。
因此,如何降低加速任务执行过程中的资源消耗和处理时间,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种数据传输装置、数据处理设备、***、方法及介质,以降低加速任务执行过程中的资源消耗和处理时间。其具体方案如下:
第一方面,本发明提供了一种数据传输装置,包括:地址解析模块和多个内存访问模块;
每一内存访问模块用于根据至少一个远端设备的内存申请直连相应远端设备的一段内存地址,并支持其所连的不同远端设备的分时复用,被每一内存访问模块直接访问的各远端设备共享所述数据传输装置所连的处理器及所述处理器所连的加速器;
所述地址解析模块用于:根据接收到的地址访问请求,确定与所述处理器要访问的目标远端设备的目标内存地址具有映射关系的目标内存访问模块;
所述目标内存访问模块用于:读取所述目标内存地址中存储的加速任务的待处理数据,以使所述处理器所连的加速器处理所述待处理数据;和/或将所述处理器所连加速器输出的加速任务的处理结果存储至所述目标内存地址。
可选地,每一内存访问模块配置有至少一个远端设备的一段内存地址;
任意内存访问模块具体用于:根据所述处理器发送的地址配置操作,在自身中配置所述地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接;
相应地,所述地址解析模块具体用于:记录所述内存地址范围、所述当前远端设备和配置有所述内存地址范围的内存访问模块之间的映射关系;
可选地,任意内存访问模块具体用于:根据所述处理器发送的地址释放操作,断开与所连远端设备之间的远程内存访问连接,以便该内存访问模块直连其他远端设备的内存地址;
相应地,所述地址解析模块具体用于:删除相应映射关系。
可选地,还包括:空地址处理模块;
相应地,所述地址解析模块还用于:若不存在与所述目标内存地址具有映射关系的目标内存访问模块,则转发所述地址访问请求至所述空地址处理模块;
相应地,所述空地址处理模块用于:按照预设策略为所述地址访问请求构造无意义的响应数据,发送无意义的响应数据至所述处理器。
可选地,还包括:高速互连模块;
相应地,所述高速互连模块用于:通过高速互连接口与所述处理器通信;
相应地,所述高速互连接口至少包括:
配置接口,用于传输所述处理器发送的地址释放操作和/或地址配置操作;
访问接口,用于传输所述地址访问请求及相应响应数据。
第二方面,本发明提供了一种数据处理设备,包括:处理器以及与所述处理器连接的加速器和数据传输装置;
所述数据传输装置用于:根据至少一个远端设备的内存申请直连相应远端设备的一段内存地址;
所述处理器用于:在所述数据传输装置直连有远端设备的内存地址的情况下,利用所述加速器生成并发送地址访问请求至所述数据传输装置;
所述数据传输装置用于:根据接收到的地址访问请求,读取与所述处理器要访问的目标远端设备的目标内存地址,具有映射关系的目标内存地址中存储的加速任务的待处理数据,以使所述加速器处理所述待处理数据;和/或将所述加速器输出的加速任务的处理结果存储至所述目标内存地址。
可选地,所述处理器具体用于:将任意远端设备发送的计算请求分配至所述加速器对应的请求队列;
相应地,所述加速器具体用于:从所述请求队列读取所述计算请求,生成含所述计算请求的地址访问请求,发送该地址访问请求至所述数据传输装置,以获取所述待处理数据;
相应地,所述加速器具体用于:处理所述待处理数据得到所述处理结果,生成含所述处理结果的地址访问请求,发送该地址访问请求至所述数据传输装置,以将所述处理结果传回相应远端设备。
可选地,所述处理器还用于:根据任意远端设备发送的内存申请,针对所述数据传输装置中的空闲的内存访问模块生成地址配置操作,发送所述地址配置操作至所述数据传输装置;
相应地,所述数据传输装置用于:使空闲的内存访问模块根据所述地址配置操作,在自身中配置所述地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接;
相应地,所述处理器还用于:若未查询到空闲的内存访问模块,则返回申请失败消息至相应远端设备。
可选地,所述处理器还用于:根据任意远端设备发送的内存申请检测内存地址范围的内存空间大小;确定与内存空间大小匹配的内存模式;按照所述内存模式管理相应内存空间。
可选地,所述处理器还用于:为所述数据传输装置中的每一内存访问模块设定可配置的地址范围大小。
可选地,所述数据处理设备包括多个处理器和多个数据传输装置;每一处理器连接一个数据传输装置和多个加速器。
可选地,所述数据传输装置还用于:若不存在所述目标内存地址,则利用自身中的空地址处理模块,按照预设策略为当前地址访问请求构造无意义的响应数据,发送无意义的响应数据至所述处理器。
第三方面,本发明提供了一种数据处理***,包括:多个远端设备、网络设备和上述任一项所述的数据处理设备;所述数据处理设备通过所述网络设备与所述多个远端设备连接。
可选地,所述数据处理设备与所述网络设备之间,所述网络设备与所述多个远端设备之间,以RDMA方式进行数据传输。
第四方面,本发明提供了一种数据处理方法,应用于数据处理设备中的处理器,所述处理器连接有加速器和数据传输装置;该方法包括:
检测所述数据传输装置是否直连有远端设备的内存地址;
在所述数据传输装置直连有远端设备的内存地址的情况下,利用所述加速器生成并发送地址访问请求至所述数据传输装置,以使所述数据传输装置根据接收到的地址访问请求,读取与所述处理器要访问的目标远端设备的目标内存地址,具有映射关系的目标内存地址中存储的加速任务的待处理数据,以使所述加速器处理所述待处理数据;和/或将所述加速器输出的加速任务的处理结果存储至所述目标内存地址。
可选地,还包括:
根据任意远端设备发送的内存申请在所述数据传输装置中查询空闲的内存访问模块;
若查询到空闲的内存访问模块,则针对空闲的内存访问模块生成地址配置操作,发送所述地址配置操作至空闲的内存访问模块,以使空闲的内存访问模块根据所述地址配置操作,在自身中配置所述地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接。
可选地,还包括:
根据任意远端设备发送的内存申请检测内存地址范围的内存空间大小;
确定与内存空间大小匹配的内存模式;
按照所述内存模式管理相应内存空间。
可选地,还包括:
为所述数据传输装置中的每一内存访问模块设定可配置的地址范围大小。
可选地,还包括:
接收所述数据传输装置发送的无意义的响应数据;所述数据传输装置在确定不存在所述目标内存地址的情况下,利用自身中的空地址处理模块,按照预设策略为当前地址访问请求构造无意义的响应数据。
第五方面,本发明提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的数据处理方法。
可见,本发明的有益效果为:数据传输装置提供的每一内存访问模块能够直接访问至少一个远端设备的一段内存地址,因此远端设备的内存中存储的加速任务的待处理数据,可从远端设备的内存直达数据传输装置的内存访问模块;并且,处理器所连加速器输出的加速任务的处理结果,也可以通过内存访问模块直达远端设备的内存,由此减少了数据搬移次数,简化了处理流程,降低了加速任务执行过程中的资源消耗和处理时间。被每一内存访问模块直接访问的各远端设备可以共享数据传输装置所连的处理器及处理器所连的加速器,提高了处理器及加速器的资源利用率。
相应地,本发明提供的一种数据处理设备、方法、***及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明公开的一种数据传输装置示意图;
图2为本发明公开的一种数据处理设备示意图;
图3为本发明公开的另一种数据处理设备示意图;
图4为本发明公开的一种数据处理***示意图;
图5为本发明公开的一种数据处理方法流程图;
图6为本发明公开的另一种数据处理***示意图;
图7为本发明公开的另一种数据传输装置示意图;
图8为本发明公开的一种内存访问请求的处理流程图;
图9为本发明公开的一种内存申请流程图;
图10为本发明公开的一种内存模式管理的示意图;
图11为本发明提供的一种服务器结构图;
图12为本发明提供的一种终端结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本申请保护的范围。
目前,在服务器上的加速器执行加速任务之前,需要将远程客户机提供的加速任务的相关数据从远程客户机内存搬移至服务器内存,之后再由服务器内存搬移至加速器。并且加速任务的最终执行结果也需要从加速器搬移至服务器内存,再从服务器内存搬移至远程客户机内存。可见此过程需要多次搬移大量数据,增加了资源消耗和加速任务处理时间。为此,本发明提供了一种数据处理方案,能够降低加速任务执行过程中的资源消耗和处理时间。
参见图1所示,本发明实施例公开了一种数据传输装置,包括:地址解析模块和多个内存访问模块。每一内存访问模块用于直接访问至少一个远端设备的一段内存地址。每一内存访问模块用于根据至少一个远端设备的内存申请直连相应远端设备的一段内存地址,并支持其所连的不同远端设备的分时复用,被每一内存访问模块直接访问的各远端设备共享数据传输装置所连的处理器及处理器所连的加速器。远端设备即:远程客户机,该设备可以为服务器等。
地址解析模块用于:根据接收到的地址访问请求,确定与所述处理器要访问的目标远端设备的目标内存地址具有映射关系的目标内存访问模块。具体的,解析接收到的地址访问请求,得到处理器要访问的目标远端设备的目标内存地址,并确定与目标内存地址具有映射关系的目标内存访问模块。目标远端设备为:被各个内存访问模块直接访问的各远端设备中的其中一个或多个。目标内存地址为:目标内存访问模块中配置的目标远端设备的内存地址。
目标内存访问模块用于:读取目标内存地址中存储的加速任务的待处理数据,以使处理器所连的加速器处理待处理数据;和/或将处理器所连加速器输出的加速任务的处理结果存储至目标内存地址。加速任务的待处理数据包括:处理加速任务的人工智能模型以及模型输入数据。
本实施例提供了一个具有数据地址解析和传输功能的数据传输装置,该装置设置于服务器侧,与服务器的处理器连接。其中的每一个内存访问模块中可以配置至少一个远端设备的一段内存地址(该段地址的长度由服务器决定)。
在一种实施方式中,每一内存访问模块配置有至少一个远端设备的一段内存地址。其中,任意内存访问模块具体用于:根据处理器发送的地址配置操作,在自身中配置地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接;其中,远程内存访问连接如:RDMA(Remote Direct Memory Access,远程直接数据存取)连接,此情况下内存访问模块为RDMA模块。RDMA是一种高性能、低延迟的网络通信技术,可以直接访问远程计算机的内存,实现零拷贝的数据传输。
相应地,地址解析模块具体用于:记录内存地址范围、当前远端设备和配置有内存地址范围的内存访问模块之间的映射关系。地址解析模块中可以设置地址映射关系表,在该地址映射关系表中记录内存访问模块与其所配置的内存地址范围、以及相关远端设备的IP等信息之间的映射关系。
其中,同一内存访问模块可被其所连接的多个远端设备分时复用。任意内存访问模块具体用于:根据所述处理器发送的地址释放操作,断开与所连远端设备之间的远程内存访问连接,以便该内存访问模块直连其他远端设备的内存地址;相应地,所述地址解析模块具体用于:删除相应映射关系。
其中,内存地址范围由处理器为每一内存访问模块灵活设定,其实质为每一内存访问模块可配置的地址范围大小,不代表具体的地址信息;不同内存访问模块对应的内存地址范围(可配置的地址范围大小)可以相等也可以不等。所有内存访问模块对应的内存地址范围之和由处理器配置。例如:处理器配置1T空间给数据传输装置,那么数据传输装置中的所有内存访问模块瓜分这1T空间。
当任意远端设备发送内存申请至处理器;处理器根据任意远端设备发送的内存申请在数据传输装置中查询空闲的内存访问模块;若查询到空闲的内存访问模块,则按照为每一内存访问模块设定的可配置的地址范围大小,针对空闲的内存访问模块生成地址配置操作(该地址配置操作用于使当前远端设备与空闲的内存访问模块建立绑定关系),发送地址配置操作至空闲的内存访问模块。空闲的内存访问模块根据地址配置操作,在自身中配置地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接,由此可使空闲的内存访问模块与当前远端设备绑定。相应地,地址解析模块用于:记录内存地址范围、当前远端设备和配置有内存地址范围的内存访问模块之间的映射关系。
需要说明的是,在处理器为每一内存访问模块设定内存地址范围之后,若处理器为任意远端设备查询到空闲的内存访问模块,那么该空闲的内存访问模块所配置的内存地址范围与当前的远端设备可构成对应关系。若处理器未查询到空闲的内存访问模块,则返回申请失败消息至相应远端设备。
为了对内存空间进行管理,处理器还根据任意远端设备发送的内存申请检测内存地址范围的内存空间大小;确定与内存空间大小匹配的内存模式;按照内存模式管理相应内存空间。
在一种实施方式中,数据传输装置还包括:空地址处理模块;相应地,地址解析模块还用于:若不存在与目标内存地址具有映射关系的目标内存访问模块,则转发地址访问请求至空地址处理模块;相应地,空地址处理模块用于:按照预设策略(如乱码字符生成策略和/或全零字符生成策略)为地址访问请求构造无意义的响应数据,发送无意义的响应数据至处理器。空地址处理模块在内存访问模块没有进行地址配置时,响应服务器中处理器的请求,以让服务器在没有地址配置的情况下也能得到响应,由此形成请求闭环处理,以免处理器长久得不到响应而报错。
在一种实施方式中,数据传输装置还包括:高速互连模块;高速互连模块用于:通过高速互连接口(如CXL接口)与处理器通信。CXL接口是遵循CXL(Compute Express Link,一种技术规范)协议的接口,是一种新型的高速互联接口技术,能够提供更高的数据吞吐量和更低的延迟。
相应地,所述高速互连接口至少包括:配置接口,用于传输所述处理器发送的地址释放操作和/或地址配置操作;访问接口,用于传输所述地址访问请求及相应响应数据。具体的,高速互连接口包括CXL.io和CXL.mem两种接口。处理器通过CXL.io接口对数据传输装置中的各模块进行配置,通过CXL.mem接口接收并响应请求。
可见,在本实施例中,数据传输装置提供的每一内存访问模块能够直接访问至少一个远端设备的一段内存地址,因此远端设备的内存中存储的加速任务的待处理数据,可从远端设备的内存直达数据传输装置的内存访问模块;并且,处理器所连加速器输出的加速任务的处理结果,也可以通过内存访问模块直达远端设备的内存,由此减少了数据搬移次数,简化了处理流程,降低了加速任务执行过程中的资源消耗和处理时间。被每一内存访问模块直接访问的各远端设备可以共享数据传输装置所连的处理器及处理器所连的加速器,提高了处理器及加速器的资源利用率。
下面对本发明实施例提供的一种数据处理设备进行介绍,下文描述的一种数据处理设备与本文描述的其他实施例可以相互参照。
参见图2所示,本实施例提供了一种数据处理设备,包括:处理器以及与处理器连接的加速器和数据传输装置。
数据传输装置用于:根据至少一个远端设备的内存申请直连相应远端设备的一段内存地址。
处理器用于:在数据传输装置直连有远端设备的内存地址的情况下,利用加速器生成并发送地址访问请求至数据传输装置。
数据传输装置用于:根据接收到的地址访问请求,读取与处理器要访问的目标远端设备的目标内存地址,具有映射关系的目标内存地址中存储的加速任务的待处理数据,以使加速器处理待处理数据;和/或将加速器输出的加速任务的处理结果存储至目标内存地址。
其中,数据传输装置包括:地址解析模块和多个内存访问模块;每一内存访问模块用于根据至少一个远端设备的内存申请直连相应远端设备的一段内存地址,并支持其所连的不同远端设备的分时复用,被每一内存访问模块直接访问的各远端设备共享处理器及加速器。
处理器用于:在所述数据传输装置直连有远端设备的内存地址的情况下,利用所述加速器生成并发送地址访问请求至所述数据传输装置。
地址解析模块用于:解析接收到的地址访问请求,得到处理器要访问的目标远端设备的目标内存地址,并确定与目标内存地址具有映射关系的目标内存访问模块。
目标内存访问模块用于:读取目标内存地址中存储的加速任务的待处理数据,以使加速器处理待处理数据;和/或将加速器输出的加速任务的处理结果存储至目标内存地址。
在本实施例中,处理器接收任意远端设备发送的计算请求后,将任意远端设备发送的计算请求分配至加速器对应的请求队列;相应地,加速器具体用于:从请求队列读取计算请求,生成含计算请求的地址访问请求,发送该地址访问请求至数据传输装置,以获取待处理数据;相应地,加速器具体用于:处理待处理数据得到处理结果,生成含处理结果的地址访问请求,发送该地址访问请求至数据传输装置,以将处理结果传回相应远端设备。
相应地,加速器具体用于:从请求队列读取计算请求,生成含计算请求的地址访问请求,发送该地址访问请求至地址解析模块,以获取待处理数据;相应地,加速器具体用于:处理待处理数据得到处理结果,生成含处理结果的地址访问请求,发送该地址访问请求至地址解析模块,以将处理结果传回相应远端设备。
在一种实施方式中,处理器还用于:根据任意远端设备发送的内存申请在数据传输装置中查询空闲的内存访问模块;若查询到空闲的内存访问模块,则针对空闲的内存访问模块生成地址配置操作,发送地址配置操作至空闲的内存访问模块;相应地,空闲的内存访问模块用于:根据地址配置操作,在自身中配置地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接;相应地,地址解析模块用于:记录内存地址范围、当前远端设备和配置有内存地址范围的内存访问模块之间的映射关系。处理器还用于:根据任意远端设备发送的内存申请,针对所述数据传输装置中的空闲的内存访问模块生成地址配置操作,发送所述地址配置操作至所述数据传输装置;相应地,所述数据传输装置用于:使空闲的内存访问模块根据所述地址配置操作,在自身中配置所述地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接。
在一种实施方式中,处理器还用于:若未查询到空闲的内存访问模块,则返回申请失败消息至相应远端设备。
在一种实施方式中,处理器还用于:根据任意远端设备发送的内存申请检测内存地址范围的内存空间大小;确定与内存空间大小匹配的内存模式;按照内存模式管理相应内存空间。
在一种实施方式中,处理器还用于:为所述数据传输装置中的每一内存访问模块设定可配置的地址范围大小。
参见图3所示,本实施例提供了另一种数据处理设备,该数据处理设备包括多个处理器和多个数据传输装置;每一处理器连接一个数据传输装置和多个加速器。
在一种实施方式中,数据传输装置还用于:若不存在所述目标内存地址,则利用自身中的空地址处理模块,按照预设策略为当前地址访问请求构造无意义的响应数据,发送无意义的响应数据至所述处理器。数据传输装置还包括:空地址处理模块;相应地,地址解析模块还用于:若不存在与目标内存地址具有映射关系的目标内存访问模块,则转发地址访问请求至空地址处理模块;相应地,空地址处理模块用于:按照预设策略为当前地址访问请求构造无意义的响应数据,发送无意义的响应数据至处理器。
可见,在本实施例中,多个远端设备可以共享同一处理器及该处理器所连的加速器,提高了处理器及加速器的资源利用率,并可实现:远端设备的内存中存储的加速任务的待处理数据,可从远端设备的内存直达数据传输装置的内存访问模块;处理器所连加速器输出的加速任务的处理结果,也可以通过内存访问模块直达远端设备的内存,减少了数据搬移次数,简化了处理流程,降低了加速任务执行过程中的资源消耗和处理时间。
下面对本发明实施例提供的一种数据处理***进行介绍,下文描述的一种数据处理***与本文描述的其他实施例可以相互参照。
参见图4所示,本实施例提供了一种数据处理***,包括:多个远端设备、网络设备和前文所述的数据处理设备;数据处理设备通过网络设备与多个远端设备连接。网络设备如交换机等。数据处理设备可以是服务器。
其中,数据处理设备包括:处理器以及与处理器连接的加速器和数据传输装置。
其中,数据传输装置包括:地址解析模块和多个内存访问模块;每一内存访问模块用于根据至少一个远端设备的内存申请直连相应远端设备的一段内存地址,并支持其所连的不同远端设备的分时复用,被每一内存访问模块直接访问的各远端设备共享处理器及加速器。
处理器用于:在所述数据传输装置直连有远端设备的内存地址的情况下,利用所述加速器生成并发送地址访问请求至所述数据传输装置。
地址解析模块用于:解析接收到的地址访问请求,得到处理器要访问的目标远端设备的目标内存地址,并确定与目标内存地址具有映射关系的目标内存访问模块。
目标内存访问模块用于:读取目标内存地址中存储的加速任务的待处理数据,以使加速器处理待处理数据;和/或将加速器输出的加速任务的处理结果存储至目标内存地址。
在本实施例中,处理器接收任意远端设备发送的计算请求后,将任意远端设备发送的计算请求分配至加速器对应的请求队列;相应地,加速器具体用于:从请求队列读取计算请求,生成含计算请求的地址访问请求,发送该地址访问请求至地址解析模块,以获取待处理数据;相应地,加速器具体用于:处理待处理数据得到处理结果,生成含处理结果的地址访问请求,发送该地址访问请求至地址解析模块,以将处理结果传回相应远端设备。
在一种实施方式中,数据处理设备与网络设备之间,网络设备与多个远端设备之间,以RDMA方式进行数据传输。
在一种实施方式中,数据处理***包括多个数据处理设备,每一数据处理设备包括多个处理器。每一数据处理设备中的每一处理器连接有一个数据传输装置和多个加速器。
可见,在本实施例中,多个远端设备可以共享同一处理器及该处理器所连的加速器,提高了处理器及加速器的资源利用率,并可实现:远端设备的内存中存储的加速任务的待处理数据,可从远端设备的内存直达数据传输装置的内存访问模块;处理器所连加速器输出的加速任务的处理结果,也可以通过内存访问模块直达远端设备的内存,减少了数据搬移次数,简化了处理流程,降低了加速任务执行过程中的资源消耗和处理时间。
下面对本发明实施例提供的一种数据传输方法进行介绍,下文描述的一种数据传输方法与本文描述的其他实施例可以相互参照。
本实施例提供了一种数据处理方法,该方法应用于数据处理设备中的处理器,处理器连接有加速器和数据传输装置;数据传输装置包括:地址解析模块和多个内存访问模块;每一内存访问模块用于根据至少一个远端设备的内存申请直连相应远端设备的一段内存地址,并支持其所连的不同远端设备的分时复用,被每一内存访问模块直接访问的各远端设备共享处理器及加速器。
参见图5所示,本实施例提供的数据处理方法包括:
S501、数据处理设备中的处理器检测数据传输装置是否直连有远端设备的内存地址。
S502、数据处理设备中的处理器在数据传输装置直连有远端设备的内存地址的情况下,利用加速器生成地址访问请求。
S503、数据处理设备中的处理器发送地址访问请求至数据传输装置。
S504、数据传输装置根据接收到的地址访问请求,读取与处理器要访问的目标远端设备的目标内存地址,具有映射关系的目标内存地址中存储的加速任务的待处理数据,以使加速器处理待处理数据;和/或将加速器输出的加速任务的处理结果存储至目标内存地址。
具体的,数据处理设备中的处理器利用加速器生成并发送地址访问请求至地址解析模块。利用地址解析模块解析地址访问请求,得到处理器要访问的目标远端设备的目标内存地址,并确定与目标内存地址具有映射关系的目标内存访问模块。利用目标内存访问模块读取目标内存地址中存储的加速任务的待处理数据,以使加速器处理待处理数据;和/或利用目标内存访问模块将加速器输出的加速任务的处理结果存储至目标内存地址。
在一种示例中,本实施例提供的数据处理方法包括:数据处理设备中的处理器检测所述数据传输装置是否直连有远端设备的内存地址;在所述数据传输装置直连有远端设备的内存地址的情况下,利用所述加速器生成并发送地址访问请求至所述数据传输装置,以使所述数据传输装置根据接收到的地址访问请求,读取与所述处理器要访问的目标远端设备的目标内存地址,具有映射关系的目标内存地址中存储的加速任务的待处理数据,以使所述加速器处理所述待处理数据;和/或将所述加速器输出的加速任务的处理结果存储至所述目标内存地址。
数据处理设备中的处理器接收所述数据传输装置发送的无意义的响应数据;所述数据传输装置在确定不存在所述目标内存地址的情况下,利用自身中的空地址处理模块,按照预设策略为当前地址访问请求构造无意义的响应数据。
在一种实施方式中,数据处理设备中的处理器根据任意远端设备发送的内存申请在数据传输装置中查询空闲的内存访问模块;若查询到空闲的内存访问模块,则针对空闲的内存访问模块生成地址配置操作,发送地址配置操作至空闲的内存访问模块,以使空闲的内存访问模块根据地址配置操作,在自身中配置地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接;在地址解析模块中记录内存地址范围、当前远端设备和配置有内存地址范围的内存访问模块之间的映射关系。
在一种实施方式中,数据处理设备中的处理器根据任意远端设备发送的内存申请检测内存地址范围的内存空间大小;确定与内存空间大小匹配的内存模式;按照内存模式管理相应内存空间。
在一种实施方式中,数据处理设备中的处理器为所述数据传输装置中的每一内存访问模块设定可配置的地址范围大小。
在一种实施方式中,数据传输装置还包括:空地址处理模块;数据处理设备中的处理器若利用地址解析模块确定不存在与目标内存地址具有映射关系的目标内存访问模块,则使地址解析模块转发地址访问请求至空地址处理模块;数据处理设备中的处理器利用空地址处理模块按照预设策略为当前地址访问请求构造无意义的响应数据;数据处理设备中的处理器接收空地址处理模块发送的无意义的响应数据。
在一种实施方式中,数据传输装置还包括:高速互连模块;数据处理设备中的处理器通过高速互连模块的高速互连接口与数据传输装置通信。
可见,本实施例可使多个远端设备可以共享同一处理器及该处理器所连的加速器,提高了处理器及加速器的资源利用率,并可实现:远端设备的内存中存储的加速任务的待处理数据,可从远端设备的内存直达数据传输装置的内存访问模块;处理器所连加速器输出的加速任务的处理结果,也可以通过内存访问模块直达远端设备的内存,减少了数据搬移次数,简化了处理流程,降低了加速任务执行过程中的资源消耗和处理时间。
需要说明的是,CXL技术可以使GPU(Graphics Processing Unit,图像处理器)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)等加速器更好地与处理器进行协作,提高人工智能模型训练和推理的速度。
请参见图6,图6所示***结合CXL和RDMA远程内存访问的特性,呈现了一个加速器共享集群,包括:2台提供GPU/FPGA加速器的服务器、RDMA交换机(即网络设备)和多台共享GPU/FPGA的客户机(即远端设备)。这样的集群设计既可以使GPU/FPGA得到充分利用,也可以降低加速器配置的成本。
在图6中,服务器中的处理器连接一个数据传输装置(下文称为CXL地址解码器)。请参见图7,CXL地址解码器由CXL高速互连模块、地址解析模块、RDMA模块和空地址处理模块组成。
CXL高速互连模块支持CXL.io和CXL.mem两种接口。处理器通过CXL.io接口(配置接口)配置或控制地址解析模块、RDMA模块和空地址处理模块,通过CXL.mem接口(访问接口)接收并响应处理器的内存访问请求(即地址访问请求)。
请参见图8,地址解析模块接收来自CXL.mem接口的地址访问请求,并解析地址访问请求内携带的内存地址。在地址解析模块内维护了一张地址映射关系表,该表保存了内存地址范围到RDMA模块的映射关系,地址解析模块先根据内存地址查询地址映射关系表,如果在表中存在相应的映射关系,则将内存访问请求转发给RDMA模块处理。地址映射关系表通过CXL.io接口来配置。从CXL.mem接口下发的内存地址在地址映射关系表中没有RDMA模块与之对应,则将内存访问请求转发给空地址处理模块。由于处理器向CXL地址解码器下发了内存访问请求后,会一直等待访问的结果返回,如果访问超时会导致处理器报错,从而引起***崩溃。因此本实施例利用空地址处理模块给处理器以无实际意义的响应数据,避免处理器报错。
RDMA模块的功能是访问远端计算机上的内存,RDMA模块接收来自地址解析模块的内存访问请求后,会根据事先配置好的设置访问远程客户机内存,之后将访问结果返回给地址解析模块。RDMA模块通过CXL.io接口配置。
在服务器的***初始化期间,服务器的处理器按照用户对CXL地址解码器的配置信息,确定每一RDMA模块的地址空间范围(即内存地址范围),并通过CXL.mem接口将这一信息分配给CXL地址解码器。但此时并不能通过这一地址空间范围真实地使用RDMA模块,这是因为RDMA模块只知道自己能访问的空间大小,而不知道这段空间的具体地址。也即:能够被访问的实际内存地址还没有映射到RDMA模块。此情况下CXL地址解码器上的内存访问请求都由空地址处理模块来处理。
图6是加速器共享集群的组织结构的示例图。图中服务器和客户机的数量可以随需要调整,CXL地址解码器安装在服务器内,服务器内的CXL地址解码器数量和加速器数量可以随需要调整。多个客户机可以远程通过CXL地址解码器共享服务器内的加速器。
如图6和图7所示,CXL地址解码器是一个智能设备,其上有多个RDMA模块连接到交换机。处理器通过CXL.io配置了设备上的RDMA模块后,随即触发RDMA模块自动与配置的客户机连接,一个RDMA模块与至少一台客户机连接,由于有多个RDMA模块,所以服务器上的加速器可以通过CXL地址解码器被多个客户机共享。当一个RDMA模块与多台客户机连接时,这多个客户机分时复用该RDMA模块。
请参见图9,CXL地址解码器初始化完成后,客户机就可以向服务器申请CXL内存地址空间(内存地址范围)和RDMA模块,并使用服务器上的加速器资源。如果客户机要向服务器申请1TB的空间用于计算,那么服务器先检查空闲CXL内存空间(由服务器指定其大小)是否足够,申请完CXL内存空间后,客户机还需要再申请RDMA模块,然后把CXL内存空间的范围和客户机的信息配置给RDMA模块,并触发RDMA模块自动与客户机建立连接,连接成功后把内存地址范围和RDMA模块的地址映射关系表写入地址映射关系表。如果仅申请到空闲CXL内存范围或仅申请到空闲RDMA模块,把申请失败的信息返回给客户机,并需释放相关资源。
并且,服务器为***内每组GPU/FPGA加速器维护一个计算请求队列,当客户机向服务器请求计算的时候,找到最短队列,并把新的计算请求***到该队列队尾。当加速器有空闲资源时,会从它所属的队列里取出排在第一位的计算请求,并处理该计算请求。计算请求记录了计算模型和数据的实际内存地址(数据在客户机上的内存地址),GPU/FPGA可以直接访问。由于RDMA远程内存访问的速度远大于硬盘,所以计算的效率会有很大的提升。
在本实施例中,客户机把本机内存通过RDMA和CXL暴露给服务器,服务器可以直接如访问本机内存一样地访问客户机内存。客户机内存上的计算模型和数据直接被搬移至GPU/FPGA加速器,不占用服务器的资源。客户机提供计算所用的模型和数据,服务器的GPU/FPGA加速器则专注于计算。
客户机的计算请求被加速器完成之后,把计算结果也直接放入到客户机内存,然后卸载该计算请求占用的CXL内存范围和RDMA模块。
CXL地址解码器上的CXL内存范围的经过多次的申请和卸载之后,会导致CXL内存碎片的产生,所以需要对CXL内存范围进行管理,假定CXL内存范围大小有4TB空间,图10是内存模式管理的示例图。
如图11可知,有4种内存空间模式(即内存模式):128GB、256GB、512GB、1TB。每个1TB空间可以被配置成4种模式的任何一种。当这1TB的空间设置成其中的一种模式之后,就不能被设置成其它模式,当相同模式的1TB空间全部释放后,就回收这1TB空间,恢复成没有模式的状态。
初始状态下,当客户机申请的内存空间大小小于或等于128GB时,CXL地址解码器的第一个1TB空间被设置成128GB模式,然后把第一个128GB分配给该客户机。当第二个申请小于或等于128GB,就从这1TB空间中分配第二个128GB空间。如果第二个申请大于128GB但小于等于256GB,就会把第二个1TB空间设置成256GB模式,并把它的第一个256GB分配给第二个申请。
当某个模式的1TB空间全部被分配之后,就会在把一个新的1TB空间设置成该模式,并从这1TB空间分配模式大小的空间给计算申请。本例中的模式大小可以随需要调整。
本实施例中,可以直接在客户机内存上做算法计算而无需再次倒换数据,既可以使GPU/FPGA加速器得到充分使用,又可以降低模型计算的使用成本。
下面对本发明实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与本文描述的其他实施例可以相互参照。该电子设备可以是本文描述的数据传输装置或数据处理设备。
本发明实施例公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
进一步的,本发明实施例还提供了一种电子设备。其中,上述电子设备既可以是如图11所示的服务器,也可以是如图12所示的终端。图11和图12均是根据一示例性实施例示出的电子设备结构图,图中的内容不能被认为是对本发明的使用范围的任何限制。
图11为本发明实施例提供的一种服务器的结构示意图。该服务器具体可以包括:至少一个处理器、至少一个存储器、电源、通信接口、输入输出接口和通信总线。其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的数据处理中的相关步骤。
本实施例中,电源用于为服务器上的各硬件设备提供工作电压;通信接口能够为服务器创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本发明技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作***、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
其中,操作***用于管理与控制服务器上的各硬件设备以及计算机程序,以实现处理器对存储器中数据的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序除了包括能够用于完成前述任一实施例公开的数据处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据除了可以包括应用程序的更新信息等数据外,还可以包括应用程序的开发商信息等数据。
图12为本发明实施例提供的一种终端的结构示意图,该终端具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端包括有:处理器和存储器。
其中,处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU,GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器至少用于存储以下计算机程序,其中,该计算机程序被处理器加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的数据处理方法中的相关步骤。另外,存储器所存储的资源还可以包括操作***和数据等,存储方式可以是短暂存储或者永久存储。其中,操作***可以包括Windows、Unix、Linux等。数据可以包括但不限于应用程序的更新信息。
在一些实施例中,终端还可包括有显示屏、输入输出接口、通信接口、传感器、电源以及通信总线。
本领域技术人员可以理解,图12中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件。
下面对本发明实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与本文描述的其他实施例可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的数据处理方法。其中,可读存储介质为计算机可读存储介质,其作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作***、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (20)
1.一种数据传输装置,其特征在于,包括:地址解析模块和多个内存访问模块;
每一内存访问模块配置有至少一个远端设备的一段内存地址;用于根据至少一个远端设备的内存申请直连相应远端设备的一段内存地址,并支持其所连的不同远端设备的分时复用,被每一内存访问模块直接访问的各远端设备共享所述数据传输装置所连的处理器及所述处理器所连的加速器;数据处理设备如访问本机内存一样访问远端设备的内存;所述数据处理设备包括:所述处理器以及与所述处理器连接的加速器和所述数据传输装置;
所述地址解析模块用于:根据接收到的地址访问请求,确定与所述处理器要访问的目标远端设备的目标内存地址具有映射关系的目标内存访问模块;所述地址解析模块中设置地址映射关系表,该地址映射关系表中记录内存访问模块与相关远端设备的IP之间的映射关系;
所述目标内存访问模块用于:读取所述目标内存地址中存储的加速任务的待处理数据,以使所述处理器所连的加速器处理所述待处理数据;和/或将所述处理器所连加速器输出的加速任务的处理结果存储至所述目标内存地址。
2.根据权利要求1所述的装置,其特征在于,任意内存访问模块具体用于:根据所述处理器发送的地址配置操作,在自身中配置所述地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接;
相应地,所述地址解析模块具体用于:记录所述内存地址范围、所述当前远端设备和配置有所述内存地址范围的内存访问模块之间的映射关系。
3.根据权利要求2所述的装置,其特征在于,任意内存访问模块具体用于:根据所述处理器发送的地址释放操作,断开与所连远端设备之间的远程内存访问连接,以便该内存访问模块直连其他远端设备的内存地址。
4.根据权利要求1至3任一项所述的装置,其特征在于,还包括:空地址处理模块;
相应地,所述地址解析模块还用于:若不存在与所述目标内存地址具有映射关系的目标内存访问模块,则转发所述地址访问请求至所述空地址处理模块;
相应地,所述空地址处理模块用于:按照预设策略为所述地址访问请求构造无意义的响应数据,发送无意义的响应数据至所述处理器。
5.根据权利要求1至3任一项所述的装置,其特征在于,还包括:高速互连模块;
相应地,所述高速互连模块用于:通过高速互连接口与所述处理器通信;
相应地,所述高速互连接口至少包括:
配置接口,用于传输所述处理器发送的地址释放操作和/或地址配置操作;
访问接口,用于传输所述地址访问请求及相应响应数据。
6.一种数据处理设备,其特征在于,包括:处理器以及与所述处理器连接的加速器和数据传输装置;
所述数据传输装置用于:根据至少一个远端设备的内存申请直连相应远端设备的一段内存地址;使所述数据传输装置中的空闲的内存访问模块根据地址配置操作,在自身中配置所述地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接;数据处理设备如访问本机内存一样访问远端设备的内存;
所述处理器用于:在所述数据传输装置直连有远端设备的内存地址的情况下,利用所述加速器生成并发送地址访问请求至所述数据传输装置;
所述数据传输装置用于:根据接收到的地址访问请求,读取与所述处理器要访问的目标远端设备的目标内存地址,具有映射关系的目标内存地址中存储的加速任务的待处理数据,以使所述加速器处理所述待处理数据;和/或将所述加速器输出的加速任务的处理结果存储至所述目标内存地址;所述数据传输装置中的地址解析模块中设置地址映射关系表,该地址映射关系表中记录内存访问模块与相关远端设备的IP之间的映射关系。
7.根据权利要求6所述的设备,其特征在于,所述处理器具体用于:将任意远端设备发送的计算请求分配至所述加速器对应的请求队列;
相应地,所述加速器具体用于:从所述请求队列读取所述计算请求,生成含所述计算请求的地址访问请求,发送该地址访问请求至所述数据传输装置,以获取所述待处理数据;
相应地,所述加速器具体用于:处理所述待处理数据得到所述处理结果,生成含所述处理结果的地址访问请求,发送该地址访问请求至所述数据传输装置,以将所述处理结果传回相应远端设备。
8.根据权利要求6所述的设备,其特征在于,所述处理器还用于:根据任意远端设备发送的内存申请,针对所述数据传输装置中的空闲的内存访问模块生成地址配置操作,发送所述地址配置操作至所述数据传输装置;
相应地,所述处理器还用于:若未查询到空闲的内存访问模块,则返回申请失败消息至相应远端设备。
9.根据权利要求8所述的设备,其特征在于,所述处理器还用于:根据任意远端设备发送的内存申请检测内存地址范围的内存空间大小;确定与内存空间大小匹配的内存模式;按照所述内存模式管理相应内存空间。
10.根据权利要求8所述的设备,其特征在于,所述处理器还用于:为所述数据传输装置中的每一内存访问模块设定可配置的地址范围大小。
11.根据权利要求6至10任一项所述的设备,其特征在于,所述数据处理设备包括多个处理器和多个数据传输装置;每一处理器连接一个数据传输装置和多个加速器。
12.根据权利要求6至10任一项所述的设备,其特征在于,所述数据传输装置还用于:若不存在所述目标内存地址,则利用自身中的空地址处理模块,按照预设策略为当前地址访问请求构造无意义的响应数据,发送无意义的响应数据至所述处理器。
13.一种数据处理***,其特征在于,包括:多个远端设备、网络设备和如权利要求6至12任一项所述的数据处理设备;所述数据处理设备通过所述网络设备与所述多个远端设备连接。
14.根据权利要求13所述的***,其特征在于,所述数据处理设备与所述网络设备之间,所述网络设备与所述多个远端设备之间,以RDMA方式进行数据传输。
15.一种数据处理方法,其特征在于,应用于数据处理设备中的处理器,所述处理器连接有加速器和数据传输装置;该方法包括:
检测所述数据传输装置是否直连有远端设备的内存地址;
在所述数据传输装置直连有远端设备的内存地址的情况下,利用所述加速器生成并发送地址访问请求至所述数据传输装置,以使所述数据传输装置根据接收到的地址访问请求,读取与所述处理器要访问的目标远端设备的目标内存地址,具有映射关系的目标内存地址中存储的加速任务的待处理数据,以使所述加速器处理所述待处理数据;和/或将所述加速器输出的加速任务的处理结果存储至所述目标内存地址;所述数据传输装置中的地址解析模块中设置地址映射关系表,该地址映射关系表中记录内存访问模块与相关远端设备的IP之间的映射关系;
使所述数据传输装置中的空闲的内存访问模块根据地址配置操作,在自身中配置所述地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接;数据处理设备如访问本机内存一样访问远端设备的内存。
16.根据权利要求15所述的方法,其特征在于,还包括:
根据任意远端设备发送的内存申请在所述数据传输装置中查询空闲的内存访问模块;
若查询到空闲的内存访问模块,则针对空闲的内存访问模块生成地址配置操作,发送所述地址配置操作至空闲的内存访问模块,以使空闲的内存访问模块根据所述地址配置操作,在自身中配置所述地址配置操作携带的与任意远端设备对应的内存地址范围,并与当前远端设备建立远程内存访问连接。
17.根据权利要求16所述的方法,其特征在于,还包括:
根据任意远端设备发送的内存申请检测内存地址范围的内存空间大小;
确定与内存空间大小匹配的内存模式;
按照所述内存模式管理相应内存空间。
18.根据权利要求15至17任一项所述的方法,其特征在于,还包括:
为所述数据传输装置中的每一内存访问模块设定可配置的地址范围大小。
19.根据权利要求15至17任一项所述的方法,其特征在于,还包括:
接收所述数据传输装置发送的无意义的响应数据;所述数据传输装置在确定不存在所述目标内存地址的情况下,利用自身中的空地址处理模块,按照预设策略为当前地址访问请求构造无意义的响应数据。
20.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求15至19任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311607588.2A CN117312229B (zh) | 2023-11-29 | 2023-11-29 | 一种数据传输装置、数据处理设备、***、方法及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311607588.2A CN117312229B (zh) | 2023-11-29 | 2023-11-29 | 一种数据传输装置、数据处理设备、***、方法及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117312229A CN117312229A (zh) | 2023-12-29 |
CN117312229B true CN117312229B (zh) | 2024-02-23 |
Family
ID=89274095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311607588.2A Active CN117312229B (zh) | 2023-11-29 | 2023-11-29 | 一种数据传输装置、数据处理设备、***、方法及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117312229B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785489B (zh) * | 2024-02-27 | 2024-05-10 | 苏州元脑智能科技有限公司 | 一种服务器及一种任务执行方法、装置和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200104275A1 (en) * | 2019-12-02 | 2020-04-02 | Intel Corporation | Shared memory space among devices |
US20200272579A1 (en) * | 2019-02-22 | 2020-08-27 | Microsoft Technology Licensing, Llc | Rdma transport with hardware integration |
CN115964319A (zh) * | 2023-01-30 | 2023-04-14 | 珠海星云智联科技有限公司 | 远程直接内存访问的数据处理方法及相关产品 |
CN116627888A (zh) * | 2023-07-25 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 硬件计算模块、设备、方法、电子设备及存储介质 |
CN117033275A (zh) * | 2023-10-07 | 2023-11-10 | 浪潮(北京)电子信息产业有限公司 | 加速卡间的dma方法、装置、加速卡、加速平台及介质 |
-
2023
- 2023-11-29 CN CN202311607588.2A patent/CN117312229B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200272579A1 (en) * | 2019-02-22 | 2020-08-27 | Microsoft Technology Licensing, Llc | Rdma transport with hardware integration |
US20200104275A1 (en) * | 2019-12-02 | 2020-04-02 | Intel Corporation | Shared memory space among devices |
CN115964319A (zh) * | 2023-01-30 | 2023-04-14 | 珠海星云智联科技有限公司 | 远程直接内存访问的数据处理方法及相关产品 |
CN116627888A (zh) * | 2023-07-25 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 硬件计算模块、设备、方法、电子设备及存储介质 |
CN117033275A (zh) * | 2023-10-07 | 2023-11-10 | 浪潮(北京)电子信息产业有限公司 | 加速卡间的dma方法、装置、加速卡、加速平台及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117312229A (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3916566B1 (en) | System and method for managing memory resources | |
US11416431B2 (en) | System with cache-coherent memory and server-linking switch | |
WO2018035856A1 (zh) | 实现硬件加速处理的方法、设备和*** | |
CN117312229B (zh) | 一种数据传输装置、数据处理设备、***、方法及介质 | |
US11863469B2 (en) | Utilizing coherently attached interfaces in a network stack framework | |
CN114153754B (zh) | 用于计算集群的数据传输方法、装置及存储介质 | |
CN115576654B (zh) | 一种请求处理方法、装置、设备及存储介质 | |
CN109857545A (zh) | 一种数据传输方法及装置 | |
CN117591450B (zh) | 一种数据处理***、方法、设备及介质 | |
CN117033275B (zh) | 加速卡间的dma方法、装置、加速卡、加速平台及介质 | |
CN111201516A (zh) | 数据处理***中的消息传递 | |
CN117370046A (zh) | 进程间通信方法、***、设备和存储介质 | |
US20170063972A1 (en) | System and method for avoiding proxy connection latency | |
CN116244231A (zh) | 一种数据传输方法、装置、***、电子设备及存储介质 | |
CN114595080A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN114625220A (zh) | 服务器及其数据处理方法 | |
CN111240845A (zh) | 一种数据处理方法、装置和存储介质 | |
CN114253733B (zh) | 一种内存管理方法、装置、计算机设备和存储介质 | |
CN117806833B (zh) | 一种数据处理***、方法及介质 | |
CN117112466B (zh) | 一种数据处理方法、装置、设备、存储介质及分布式集群 | |
CN117041147B (zh) | 智能网卡设备、主机设备和方法及*** | |
CN115237626A (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
CN114911411A (zh) | 一种数据存储方法、装置及网络设备 | |
CN117421268A (zh) | 一种互联***、设备及网络 | |
CN118093225A (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 |