CN114445260B - 基于fpga的分布式gpu通信的方法及装置 - Google Patents
基于fpga的分布式gpu通信的方法及装置 Download PDFInfo
- Publication number
- CN114445260B CN114445260B CN202210051088.4A CN202210051088A CN114445260B CN 114445260 B CN114445260 B CN 114445260B CN 202210051088 A CN202210051088 A CN 202210051088A CN 114445260 B CN114445260 B CN 114445260B
- Authority
- CN
- China
- Prior art keywords
- data
- processing chip
- gpu
- fpga processing
- fpga
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 172
- 238000013500 data storage Methods 0.000 claims abstract description 30
- 238000004148 unit process Methods 0.000 claims 1
- 230000008878 coupling Effects 0.000 abstract description 8
- 238000010168 coupling process Methods 0.000 abstract description 8
- 238000005859 coupling reaction Methods 0.000 abstract description 8
- 238000012546 transfer Methods 0.000 abstract description 4
- 230000015654 memory Effects 0.000 description 34
- 238000005516 engineering process Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 13
- 230000003993 interaction Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种基于FPGA的分布式GPU通信的方法及装置,该方法应用于通信装置,通信装置包括第一FPGA处理芯片,第一FPGA处理芯片通过接收GPU发送的请求信息,请求信息包括数据存储地址,从GPU的数据存储地址中读取数据,根据从远程资源调度中心设备接收到的配置信息向服务器发送数据,或者根据配置信息向第二FPGA处理芯片发送数据,FPGA处理芯片作为GPU与服务器之间的转接卡,降低了GPU与服务器之间的耦合度,还可以与相邻的FPGA处理芯片形成二维环形网络拓扑,极大地提高了GPU间的灵活性,减少GPU之间互相通信的时间。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种基于FPGA的分布式GPU通信的方法及装置。
背景技术
图形处理器(Graphics Processing Unit,GPU)是一种专用的图形处理芯片,无论是早期用于图形图像处理,还是现在广泛用于AI人工智能计算领域,都是一种重要的计算芯片。GPU作为一种高速串行计算机扩展总线标准(Peripheral Component Interconnectexpress,PCIe)设备插接在数据中心服务器插槽上,通过PCIe接口与主机服务器和其他GPU节点通信。
由于GPU与服务器通过PCIe接口连接的紧耦合关系,GPU无法独立于服务器单独运行,跨节点GPU间通信只能通过网卡连接到交换机的方式进行,通信网络拓扑不够灵活,数据转发效率低、通信延时大。
发明内容
基于此,有必要针对上述技术问题,提供一种基于FPGA的分布式GPU通信的方法及装置,FPGA处理芯片作为GPU与服务器之间的转接卡,不仅降低了GPU与服务器之间的耦合度,还可以与相邻的FPGA处理芯片形成二维环形网络拓扑,极大地提高了通信网络拓扑的灵活性,减少GPU之间互相通信的时间,提高数据转发效率。
第一方面,提供一种基于FPGA的分布式GPU通信的方法,该方法应用于通信装置,通信装置包括第一FPGA处理芯片,第一FPGA处理芯片包括第一接口、第二接口、第一网络接口和多个第二网络接口;第一FPGA处理芯片的第一接口与GPU通信连接,第一FPGA处理芯片的第二接口与服务器通信连接;第一网络接口与远程资源调度中心设备通信连接;多个第二网络接口用于与第二FPGA处理芯片通信连接;方法包括:
接收GPU发送的请求信息,请求信息包括数据存储的地址;
从GPU的数据存储地址中读取数据;
根据从远程资源调度中心设备接收到的配置信息向服务器发送数据;或者根据配置信息向第二FPGA处理芯片发送数据。
在一种可能的实现方式中,第一FPGA处理芯片还包括数据处理模块,数据处理模块包括GPU直接数据存取单元;从GPU的数据存储地址中读取数据,包括:
通过GPU直接数据存取单元从GPU的数据存储地址中读取数据。
在一种可能的实现方式中,第一FPGA处理芯片还包括桥梁模块;在根据从远程资源调度中心设备接收到的配置信息向服务器发送数据;或者根据配置信息向第二FPGA处理芯片发送数据之前,方法还包括:
通过桥梁模块接收远程资源调度中心设备发送的配置信息。
在一种可能的实现方式中,配置信息包括第一指示信息;根据配置信息向服务器发送数据,包括:
根据第一指示信息,向服务器发送数据。
在一种可能的实现方式中,配置信息包括第二指示信息;根据配置信息向第二FPGA处理芯片发送数据,包括:
根据第二指示信息,向第二FPGA处理芯片发送数据。
在一种可能的实现方式中,数据处理模块还包括运算单元,配置信息还包括运算规则的信息和目标网络接口的信息;根据第二指示信息,向第二FPGA处理芯片发送数据,包括:
根据第二指示信息,通过运算单元采用运算规则对数据进行处理得到处理结果;
通过多个第二网络接口中的目标网络接口向第二FPGA处理芯片发送数据。
第二方面,提供了一种基于FPGA的分布式GPU通信的装置,该装置包括第一FPGA处理芯片,第一FPGA处理芯片包括第一接口、第二接口、第一网络接口和多个第一网络接口;第一FPGA处理芯片的第一接口与GPU通信连接,第一FPGA处理芯片的第二接口与服务器通信连接;第一网络接口与远程资源调度中心设备通信连接;多个第二网络接口用于与第二FPGA处理芯片通信连接;第一FPGA处理芯片用于:
通过第一接口接收GPU发送的请求信息,请求信息包括数据存储的地址;
从GPU的数据存储地址中读取数据;
根据通过第一网络接口从远程资源调度中心设备接收到的配置信息向服务器发送数据;或者根据配置信息向第二FPGA处理芯片发送数据设备通信连接;第二网络接口用于与第二FPGA处理芯片通信连接。
在一种可能的实现方式中,第一FPGA处理芯片还包括数据处理模块,数据处理模块包括GPU直接数据存取单元;第一FPGA处理芯片具体用于:
通过GPU直接数据存取单元从GPU的数据存储地址中读取数据。
在一种可能的实现方式中,第一FPGA处理芯片还包括桥梁模块;第一FPGA处理芯片具体用于:
通过桥梁模块接收远程资源调度中心设备发送的配置信息。
在一种可能的实现方式中,配置信息包括第一指示信息;第一FPGA处理芯片具体用于:
根据第一指示信息,向服务器发送数据。
上述基于FPGA的分布式GPU通信的方法及装置,通过接收GPU发送的请求信息,请求信息包括数据存储地址,从GPU的数据存储地址中读取数据,根据从远程资源调度中心设备接收到的配置信息向服务器发送数据,或者根据配置信息向第二FPGA处理芯片发送数据,FPGA处理芯片作为GPU与服务器之间的转接卡,不仅降低了GPU与服务器之间的耦合度,减少服务器端CPU、内存、网络等资源的开销,还可以与相邻的FPGA处理芯片形成二维环形网络拓扑,极大地提高了GPU间的灵活性,减少GPU之间互相通信的时间。
附图说明
图1为本申请一个实施例中基于FPGA的分布式GPU方法的应用环境图;
图2为一个实施例中第一FPGA处理芯片的结构框图;
图3为一个实施例中基于FPGA的分布式GPU方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在现有技术中,GPUDirect系列是一种GPU直接内存访问技术,可以让GPU通过PCIe芯片集总线***访问其他子设备或主机的内存,从而减少不必要的内存拷贝、降低中央处理器(Central Processing Unit,CPU)使用开销,提高数据传输效率。其中,GPUDirectShared Memory是GPUDirect系列的一种GPU直接共享内存的技术,能够使GPU与其他PCIe设备共享主机的内存页来实现不同PCIe设备之间数据通信的技术。
GPUDirect P2P是GPUDirect系列的一种GPU间直接共享显存的技术,是指同一PCIe根复合体(PCIe Root Complex,PCIe RC)域下两个GPU设备直接互访GPU显存,GPU间不需要将数据拷贝到主机内存里中转,相比GPUDirect Shared Memory技术,减少了将数据从GPU显存拷贝到主机内存和从主机内存拷贝到GPU显存的步骤,降低了数据通路延时,提高了数据传输效率。
GPU直接远程直接内存访问(GPUDirect Remote Direct Memory Access,GPUDirect RDMA)技术是利用RDMA相关技术、物理网卡和传输网络实现GPU间直接交互显存数据,该技术解决了传统网络数据传输过程中处理延时大、CPU占用率高等问题,实现了不同节点间直接互访GPU显存的功能。
GPUDirect Shared Memory技术和GPUDirect P2P技术都是基于GPU作为主机下的PCIe设备开发实现,与其他设备通信依赖CPU、主机内存和PCIe交换***等参与,设备与服务器CPU、内存等通过PCIe紧耦合,通信仅限于单节点内的GPU。采用GPUDirect SharedMemory技术进行单节点内的GPU间交换显存数据时,需要经过每个CPU及CPU1内存等模块,CPU额外开销大、数据传输处理延时大。采用GPUDirect P2P技术进行GPU间显存数据交换时,仅限于同一PCIe RC域下的GPU间通过PCIe芯片集进行显存数据直接交互,如果跨两个CPU的PCIe RC域还需要CPU及CPU内存参与数据传输,导致GPU间显存数据交互延时和CPU开销依然很大。
GPUDirect RDMA技术虽然利用RDMA技术实现了跨节点间的GPU通信问题,但需要在同一PCIe域下的高性能网卡以及本地服务器CPU等参与帮助GPU完成跨节点的数据传输,GPU与服务器仍是通过PCIe连接的紧耦合关系,GPU无法独立于服务器单独运行,跨节点GPU间通信只能通过网卡连接到交换机的方式进行,通信网络拓扑不够灵活,数据包转发效率低、通信延时大。
为了解决现有技术问题,本申请实施例提供了一种基于FPGA的分布式GPU通信的方法及装置。下面首先对本申请实施例所提供的基于FPGA的分布式GPU通信的方法进行介绍,该方法应用于图1所示的应用环境,如图1所示,通信装置100包括多个FPGA处理芯片,每个FPGA处理芯片包含多个网络接口,其中第一网络接口230通过交换机与远程资源调度中心设备通信连接,第二网络接口240与周围其他FPGA处理芯片组成2D环形通信拓扑,第二网络接口240的数量可以根据用户需求进行调整,不以设置4个为限。FPGA处理芯片通过第二网络接口240可以向相邻的FPGA处理芯片发送数据,或者接收相邻的FPGA处理芯片发送的数据。第一网络接口和第二网络接口为100G网络光口,使GPU之间以及GPU与远程资源调度中心设备进行高效通信。
将其中任意一个FPGA处理芯片定义为第一FPGA处理芯片,与第一FPGA处理芯片相连接的FPGA处理芯片定义为第二FPGA处理芯片,第一FPGA处理芯片和第二FPGA处理芯片具有相同的结构。
如图2所示,第一FPGA处理芯片200包括第一接口210、第二接口220、第一网络接口230和多个第二网络接口240;第一FPGA处理芯片的第一接口210与GPU通信连接,第一FPGA处理芯片200的第二接口220与服务器通信连接;第一网络接口230与远程资源调度中心设备通信连接;多个第二网络接口240用于与第二FPGA处理芯片通信连接。
第一FPGA处理芯片200还包括指令配置模块270、路由模块280、第一收发模块290、第二收发模块2100,其中,第一收发模块290为RoCE收发模块,与第二网络接口240和路由模块280通信连接,通过RoCE协议接收来自相邻FPGA处理芯片的数据包,解析该数据包,并对第一FPGA处理芯片的数据进行组包,向相邻FPGA处理芯片发送数据包。
第二收发模块2100为RoCEv2收发模块,与第一网络接口230、路由模块280和指令配置模块270通信连接,通过RoCEv2协议接收远程资源调度中心设备通信向第一网络接口230发送的配置信息,并解析配置信息,将解析结果分发至对应的模块,比如说将运算法则的信息发送至指令配置模块270,完成GPU资源的注册、初始化等任务。同时,还可以将与第一FPGA处理芯片连接的GPU数据进行组包,通过第一网络接口230连接到交换机与其他FPGA处理芯片连接的GPU进行通信。
路由模块280在第一FPGA处理芯片上电后,通过第二网络接口240与相邻的FPGA处理芯片进行通信,获取相邻的FPGA处理芯片的第二网络接口240的MAC地址信息并保存至内存中,以便通过RoCE协议进行通信。
图3示出了本申请一个实施例提供基于FPGA的分布式GPU通信的方法的流程示意图。如图3所示,该方法可以包括以下步骤:
S310,接收GPU发送的请求信息,请求信息包括数据存储地址。
在进行数据通信之前,远程资源调度中心设备对通信装置进行初始化设置,通过服务器向GPU发送待处理的数据,GPU对接收到的数据进行处理,保存处理后的数据,向通信装置发送请求信息,以使通信装置将GPU保存的数据进行传输。其中,请求信息包括数据存储地址,以便通信装置准确地获取GPU需要传送的数据。
通信装置通过第一FPGA处理芯片200的第一接口210接收GPU发送的请求信息,其中,第一接口210为PCIe接口,以Root Point模式与GPU的PCIe接口采用Gen5x16标准金手指连接。
S320,从GPU的数据存储地址中读取数据。
第一FPGA处理芯片根据接收到的数据存储地址,采用Direct Memory Access直接数据存取(Direct Memory Access,DMA)的方式从GPU显存中的数据存储地址读取数据,使得数据的传输时延小,提高数据的读取效率。
S330,根据从远程资源调度中心设备接收到的配置信息向服务器发送数据;或者根据配置信息向第二FPGA处理芯片发送数据。
配置信息包括切换信息,其决定了数据的传输路径,当切换信息为由GPU向服务器通信时,第一FPGA处理芯片通过第二接口220向服务器发送数据,由于GPU与服务器之间引入了基于FPGA处理芯片的通信装置,降低了GPU和服务器的耦合度,便于GPU独立池化管理。其中,第二接口220为Endpoint模式的PCIe接口,与GPU的PCIe接口采用Gen5x16标准连接,以匹配GPU的通信接口模式。
当切换信息为由GPU向其他FPGA处理芯片通信时,第一FPGA处理芯片向第二FPGA处理芯片发送数据,GPU通过FPGA处理芯片的多个网络接口与其他FPGA处理芯片的GPU通信网络拓扑更加灵活。通过多个网络接口与多个FPGA处理芯片进行通信实现多个维度同时计算传输数据,减少数据计算传输经过PCIe总线的次数,降低数据更新所需时间,从而减小数据通信时间开销。
在本申请实施例中,通过接收GPU发送的请求信息,请求信息包括数据存储地址,从GPU的数据存储地址中读取数据,根据从远程资源调度中心设备接收到的配置信息向服务器发送数据,或者根据配置信息向第二FPGA处理芯片发送数据,FPGA处理芯片作为GPU与服务器之间的转接卡,不仅降低了GPU与服务器之间的耦合度,减少服务器端CPU、内存、网络等资源的开销,还可以与相邻的FPGA处理芯片形成二维环形网络拓扑,极大地提高了GPU间的灵活性,减少GPU之间互相通信的时间。
在一些实施例中,第一FPGA处理芯片还包括数据处理模块250,数据处理模块包括GPU直接数据存取单元251;从GPU的数据存储地址中读取数据,包括:
通过GPU直接数据存取单元251从GPU显存中的数据存储地址读取数据,第一FPGA处理芯片200通过PCIe和GPU直接数据存取单元251直接访问GPU内部显存,读取待传输数据,有效地降低了GPU间的通信延时。
在一些实施例中,第一FPGA处理芯片200还包括桥梁模块260;在根据从远程资源调度中心设备接收到的配置信息向服务器发送数据;或者根据配置信息向第二FPGA处理芯片发送数据之前,方法还包括:
通过桥梁模块260接收远程资源调度中心设备发送的配置信息。
通过桥梁模块260与指令配置模块270、第一接口210、第二接口220和数据处理模块连接,远程资源调度中心设备通过交换机网络将配置信息发送至第一网络接口230,第一网络接口230对配置信息进行解析得到切换PCIe RC信号,并切换PCIe RC信号发送至指令配置模块270,指令配置模块270对切换PCIe RC信号进行判断,并将判断结果发送至桥梁模块260,桥梁模块260根据判断结果可以切换GPU的PCIe总线的连接关系。
在通信装置初始化阶段,远程资源调度中心设备通过交换机网络向第一FPGA处理芯片发送配置信息,控制切换GPU的PCIe总线的连接关系,确定数据传输路径,灵活选择GPU中数据的传输对象,解除GPU对服务器主机的依赖性。
在一些实施例中,配置信息包括第一指示信息;根据配置信息向服务器发送数据,包括:
根据第一指示信息,向服务器发送数据。
指令配置模块270接收配置信息中的切换PCIe RC信号后并对其进行解析,判断切换PCIe RC信号对应的值是1还是0。其中,第一指示信息为0,当配置信息的解析结果为0时,GPU与服务器进行数据交互,桥梁模块260直接将数据发送至服务器。
所述配置信息包括第二指示信息;根据所述配置信息向所述第二FPGA处理芯片发送所述数据,包括:
根据所述第二指示信息,向所述第二FPGA处理芯片发送所述数据。
第二指示信息为1,当配置信息的解析结果为1时,GPU与第二FPGA处理芯片进行数据交互,桥梁模块260先将数据发送至数据处理模块250,数据处理模块250对其进行处理,将处理后的数据发送至第一收发模块290,最后通过第二网络接口240送至第二FPGA处理芯片。
在一些实施例中,数据处理模块250还包括运算单元252,配置信息还包括运算规则的信息和目标网络接口的信息;根据第二指示信息,向第二FPGA处理芯片发送数据,包括:
根据第二指示信息,通过运算模块采用运算规则对数据进行处理得到处理结果;
通过多个第二网络接口中的目标网络接口向第二FPGA处理芯片发送数据。
在GPU与第二FPGA处理芯片进行数据交互的过程中,若数据处理模块250的接收单元未收到其他GPU对应的FPGA处理芯片发送的待处理数据,指令配置模块270根据配置信息控制运算单元252不进行任何计算,直接将GPU直接数据存取单元251从GPU读取的数据发送至发送单元253,发送单元253将数据发送至第一收发模块290,第一收发模块290从路由模块280中获取配置信息中目标网络接口的AMC地址信息,通过目标网络接口向其他FPGA处理芯片发送该数据。
若数据处理模块的接收单元收到其他GPU对应的FPGA处理芯片发送的待处理数据,指令配置模块270根据运算规则的信息控制运算单元252进行相应的计算,GPU直接数据存取单元251从GPU获取到数据后,将数据发送至运算单元252,运算单元252根据预先配置的运算规则将GPU读取到的数据和通过接收单元254接收的FPGA处理芯片发送的数据进行混合计算,将计算结果发送至发送单元253,发送单元253将数据发送至第一收发模块290,第一收发模块290从路由模块280中获取配置信息中目标网络接口的AMC地址信息,通过目标网络接口向其他FPGA处理芯片发送该数据,FPGA处理芯片通过GPU直接数据存取单元251写入到对应的GPU显存中,完成GPU的数据的更新迭代。
在一个实施例中,提供了一种基于FPGA的分布式GPU通信的装置,该装置包括第一FPGA处理芯片,第一FPGA处理芯片包括第一接口、第二接口、第一网络接口和多个第一网络接口;第一FPGA处理芯片的第一接口与GPU通信连接,第一FPGA处理芯片的第二接口与服务器通信连接;第一网络接口与远程资源调度中心设备通信连接;多个第二网络接口用于与第二FPGA处理芯片通信连接;第一FPGA处理芯片用于:
通过第一接口接收GPU发送的请求信息,请求信息包括数据存储的地址;
从GPU的数据存储地址中读取数据;
根据通过第一网络接口从远程资源调度中心设备接收到的配置信息向服务器发送数据;或者根据配置信息向第二FPGA处理芯片发送数据设备通信连接;第二网络接口用于与第二FPGA处理芯片通信连接。
在本申请实施例中,第一FPGA处理芯片作为GPU与服务器之间的转接卡,不仅降低了GPU与服务器之间的耦合度,还可以与相邻的FPGA处理芯片形成二维环形网络拓扑,极大地提高了通信网络拓扑的灵活性,减少GPU之间互相通信的时间,提高数据转发效率。
在一个实施例中,第一FPGA处理芯片还包括数据处理模块,数据处理模块包括GPU直接数据存取单元;第一FPGA处理芯片具体用于:
通过GPU直接数据存取单元从GPU的数据存储地址中读取数据。
在一个实施例中,第一FPGA处理芯片还包括桥梁模块;第一FPGA处理芯片具体用于:
通过桥梁模块接收远程资源调度中心设备发送的配置信息。
在一个实施例中,配置信息包括第一指示信息;第一FPGA处理芯片具体用于:
根据第一指示信息,向服务器发送数据。
在一些实施例中,配置信息包括第二指示信息;第一FPGA处理芯片具体用于:
根据第二指示信息,向第二FPGA处理芯片发送数据。
在一些实施例中,数据处理模块还包括运算单元,配置信息还包括运算规则的信息和目标网络接口的信息;第一FPGA处理芯片具体用于:
根据第二指示信息,通过运算单元采用运算规则对数据进行处理得到处理结果;
通过多个第二网络接口中的目标网络接口向第二FPGA处理芯片发送数据。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (7)
1.一种基于FPGA的分布式GPU通信的方法,其特征在于,所述方法应用于通信装置,所述通信装置包括第一FPGA处理芯片,所述第一FPGA处理芯片包括第一接口、第二接口、第一网络接口和多个第二网络接口;所述第一FPGA处理芯片的第一接口与GPU通信连接,所述第一FPGA处理芯片的第二接口与服务器通信连接;所述第一网络接口与远程资源调度中心设备通信连接;所述多个第二网络接口用于与第二FPGA处理芯片通信连接;所述方法包括:
接收所述GPU发送的请求信息,所述请求信息包括数据存储的地址;
从所述GPU的所述数据存储地址中读取数据;
根据从所述远程资源调度中心设备接收到的配置信息向所述服务器发送所述数据;或者根据所述配置信息向所述第二FPGA处理芯片发送所述数据;其中,所述配置信息包括第一指示信息和第二指示信息,所述第一指示信息和所述第二指示信息为切换PCIe RC信号,根据所述配置信息向所述服务器发送所述数据,包括:
根据所述第一指示信息,向所述服务器发送所述数据;
根据所述配置信息向所述第二FPGA处理芯片发送所述数据,包括:
根据所述第二指示信息,向所述第二FPGA处理芯片发送所述数据。
2.根据权利要求1所述的方法,其特征在于,所述第一FPGA处理芯片还包括数据处理模块,所述数据处理模块包括GPU直接数据存取单元;所述从所述GPU的所述数据存储地址中读取数据,包括:
通过所述GPU直接数据存取单元从所述GPU的所述数据存储地址中读取数据。
3.根据权利要求1或2所述的方法,其特征在于,所述第一FPGA处理芯片还包括桥梁模块;在所述根据从所述远程资源调度中心设备接收到的配置信息向所述服务器发送所述数据;或者根据所述配置信息向所述第二FPGA处理芯片发送所述数据之前,所述方法还包括:
通过所述桥梁模块接收所述远程资源调度中心设备发送的所述配置信息。
4.根据权利要求1所述的方法,其特征在于,所述数据处理模块还包括运算单元,所述配置信息还包括运算规则的信息和目标网络接口的信息;所述根据所述第二指示信息,向所述第二FPGA处理芯片发送所述数据,包括:
根据所述第二指示信息,通过所述运算单元采用所述运算规则对所述数据进行处理得到处理结果;
通过所述多个第二网络接口中的所述目标网络接口向所述第二FPGA处理芯片发送所述数据。
5.一种基于FPGA的分布式GPU通信的装置,其特征在于,所述装置包括第一FPGA处理芯片,所述第一FPGA处理芯片包括第一接口、第二接口、第一网络接口和多个第二网络接口;所述第一FPGA处理芯片的第一接口与GPU通信连接,所述第一FPGA处理芯片的第二接口与服务器通信连接;所述第一网络接口与远程资源调度中心设备通信连接;所述多个第二网络接口用于与第二FPGA处理芯片通信连接;所述第一FPGA处理芯片用于:
通过所述第一接口接收所述GPU发送的请求信息,所述请求信息包括数据存储的地址;
从所述GPU的所述数据存储地址中读取数据;
根据通过所述第一网络接口从所述远程资源调度中心设备接收到的配置信息向所述服务器发送所述数据;或者根据所述配置信息向所述第二FPGA处理芯片发送所述数据;其中,所述配置信息包括第一指示信息和第二指示信息,所述第一指示信息和所述第二指示信息为切换PCIe RC信号,根据所述配置信息向所述服务器发送所述数据,包括:
根据所述第一指示信息,向所述服务器发送所述数据;
根据所述配置信息向所述第二FPGA处理芯片发送所述数据,包括:
根据所述第二指示信息,向所述第二FPGA处理芯片发送所述数据。
6.根据权利要求5所述的装置,其特征在于,所述第一FPGA处理芯片还包括数据处理模块,所述数据处理模块包括GPU直接数据存取单元;所述第一FPGA处理芯片具体用于:
通过所述GPU直接数据存取单元从所述GPU的所述数据存储地址中读取数据。
7.根据权利要求5或6所述的装置,其特征在于,所述第一FPGA处理芯片还包括桥梁模块;所述第一FPGA处理芯片具体用于:
通过所述桥梁模块接收所述远程资源调度中心设备发送的所述配置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210051088.4A CN114445260B (zh) | 2022-01-17 | 2022-01-17 | 基于fpga的分布式gpu通信的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210051088.4A CN114445260B (zh) | 2022-01-17 | 2022-01-17 | 基于fpga的分布式gpu通信的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114445260A CN114445260A (zh) | 2022-05-06 |
CN114445260B true CN114445260B (zh) | 2024-01-12 |
Family
ID=81368275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210051088.4A Active CN114445260B (zh) | 2022-01-17 | 2022-01-17 | 基于fpga的分布式gpu通信的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114445260B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383127B (zh) * | 2023-06-01 | 2023-08-18 | 苏州浪潮智能科技有限公司 | 节点间通信方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104583933A (zh) * | 2012-08-23 | 2015-04-29 | 微软公司 | Gpu和fpga组件之间的直接通信 |
CN107391432A (zh) * | 2017-08-11 | 2017-11-24 | 中国计量大学 | 一种异构并行计算装置及运算节点互联网络 |
CN108804376A (zh) * | 2018-06-14 | 2018-11-13 | 山东航天电子技术研究所 | 一种基于gpu和fpga的小型异构处理*** |
CN109240832A (zh) * | 2018-09-25 | 2019-01-18 | 中国电子科技集团公司电子科学研究院 | 一种硬件重构***及方法 |
CN113900793A (zh) * | 2021-07-29 | 2022-01-07 | 苏州浪潮智能科技有限公司 | 一种服务器集群及其深度学习的集合通信***和方法 |
-
2022
- 2022-01-17 CN CN202210051088.4A patent/CN114445260B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104583933A (zh) * | 2012-08-23 | 2015-04-29 | 微软公司 | Gpu和fpga组件之间的直接通信 |
CN107391432A (zh) * | 2017-08-11 | 2017-11-24 | 中国计量大学 | 一种异构并行计算装置及运算节点互联网络 |
CN108804376A (zh) * | 2018-06-14 | 2018-11-13 | 山东航天电子技术研究所 | 一种基于gpu和fpga的小型异构处理*** |
CN109240832A (zh) * | 2018-09-25 | 2019-01-18 | 中国电子科技集团公司电子科学研究院 | 一种硬件重构***及方法 |
CN113900793A (zh) * | 2021-07-29 | 2022-01-07 | 苏州浪潮智能科技有限公司 | 一种服务器集群及其深度学习的集合通信***和方法 |
Non-Patent Citations (1)
Title |
---|
A cloud-scale acceleration architecture;Adrian M. Caulfield等;2016 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114445260A (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8346928B2 (en) | Administering an epoch initiated for remote memory access | |
US7984450B2 (en) | Dispatching packets on a global combining network of a parallel computer | |
CN113485823A (zh) | 数据传输方法、装置、网络设备、存储介质 | |
US7705850B1 (en) | Computer system having increased PCIe bandwidth | |
US7797445B2 (en) | Dynamic network link selection for transmitting a message between compute nodes of a parallel computer | |
CN102263698B (zh) | 虚拟通道的建立方法、数据传输的方法及线卡 | |
CN114546913B (zh) | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 | |
US7966618B2 (en) | Controlling data transfers from an origin compute node to a target compute node | |
CN114647602B (zh) | 一种跨芯片访问控制的方法、装置、设备及介质 | |
CN101452430B (zh) | 多处理器之间的通信方法与包括多处理器的通信装置 | |
CN114445260B (zh) | 基于fpga的分布式gpu通信的方法及装置 | |
US20220114132A1 (en) | Data Switch Chip and Server | |
CN115296743A (zh) | 光纤通信转接*** | |
US20090235048A1 (en) | Information processing apparatus, signal transmission method, and bridge | |
CN115269174A (zh) | 一种数据传输方法、数据处理方法及相关产品 | |
US20240020261A1 (en) | Peer-to-peer route through in a reconfigurable computing system | |
US10614026B2 (en) | Switch with data and control path systolic array | |
CN116644010A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN106815176A (zh) | 用于经由柔性寄存器访问总线传输访问请求的***和方法 | |
KR20050080704A (ko) | 프로세서간 데이터 전송 장치 및 방법 | |
US20030041176A1 (en) | Data transfer algorithm that does not require high latency read operations | |
CN111400238B (zh) | 一种数据处理方法及装置 | |
CN102694717A (zh) | 在pcie总线上传输报文的方法、设备和*** | |
CN112597092B (zh) | 一种数据交互方法、机器人及存储介质 | |
US20230280907A1 (en) | Computer System Having Multiple Computer Devices Each with Routing Logic and Memory Controller and Multiple Computer Devices Each with Processing Circuitry |
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 |