CN112087471A - 一种数据传输方法及fpga云平台 - Google Patents

一种数据传输方法及fpga云平台 Download PDF

Info

Publication number
CN112087471A
CN112087471A CN202011035640.8A CN202011035640A CN112087471A CN 112087471 A CN112087471 A CN 112087471A CN 202011035640 A CN202011035640 A CN 202011035640A CN 112087471 A CN112087471 A CN 112087471A
Authority
CN
China
Prior art keywords
acceleration
fpga
data
card
cloud platform
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.)
Pending
Application number
CN202011035640.8A
Other languages
English (en)
Inventor
王江为
王媛丽
张静东
阚宏伟
刘钧锴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202011035640.8A priority Critical patent/CN112087471A/zh
Publication of CN112087471A publication Critical patent/CN112087471A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种数据传输方法及FPGA云平台,该方法包括:通过云平台管理服务器获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和路由信息;通过对应的加速主机获取数据加速处理请求对应的待加速数据,并通过加速主机上的PCIE接口将待加速数据传输到第一FPGA加速卡的加速单元;通过网络和第一FPGA加速卡的MAC接口将第一加速数据传输到FPGA资源池中的第二FPGA加速卡的加速单元;直至加速完成,由完成加速的FPGA加速卡将加速完成的目标数据返回第一FPGA加速卡;通过第一FPGA加速卡将目标数据传输回加速主机。这样能够减少数据传输的延时,从而提高数据加速效果。

Description

一种数据传输方法及FPGA云平台
技术领域
本申请涉及FPGA技术领域,特别涉及一种数据传输方法及FPGA云平台。
背景技术
越来越多的数据中心推出了FPGA(Field Programmable Gate Array,现场可编程门阵列)云平台,把FPGA作为云上可共享的资源实现网络加速、计算加速、存储加速等。FPGA云平台的一个重要特性是将多个FPGA加速单元组成FPGA加速资源池,实现分布式数据加速。目前,在已公布的FPGA云中,除了微软云,其他数据中心的FPGA云平台只是把FPGA当作服务器节点的附属加速单元,由软件实现各个节点的分布式处理。而微软云,把FPGA加速单元作为一个节点,通过网络连接在一起,组成加速资源池,但在微软云,每个FPGA加速单元都需要一台服务器对其进行配置。
参见图1所示,在微软云平台中,主机先通过PCIE(peripheral componentinterconnect express)DMA(Direct Memory Access,直接数据存取)把待加速数据传输到本地FPGA加速单元的memory,再把memory中的数据传输给加速单元kernel,加速单元kernel完成当前的加速处理后把后续待加速的数据写入数据缓存区,再通过DMA MAC(Media Access Control,媒体存取控制)接口发送给远端的FPGA加速卡。远端的FPGA加速卡收到DMA MAC传输的加速数据后也先缓存到memory,再由加速单元kernel读取memory中的数据进行加速处理,处理完成后再存回memory。
在上述数据传输方法中,加速数据不管是在加速前还是在加速后都需要先写入memory进行缓存,然后在从memory取数进行相应的处理。这种方式一个来回的传输延时较大,在延时敏感的应用加速中,这种方式会极大影响加速效果。
发明内容
有鉴于此,本申请的目的在于提供一种数据传输方法及FPGA云平台,能够减少数据传输的延时,从而提高数据加速效果。其具体方案如下:
第一方面,本申请公开了一种数据传输方法,应用于FPGA云平台,包括:
通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息;
通过所述FPGA资源池对应的加速主机获取所述数据加速处理请求对应的待加速数据,并通过所述加速主机上的PCIE接口将所述待加速数据传输到所述FPGA资源池中的第一FPGA加速卡的加速单元;
通过所述第一FPGA加速卡的加速单元对所述待加速数据进行加速,得到第一加速数据,并通过网络和所述第一FPGA加速卡的MAC接口将所述第一加速数据传输到所述FPGA资源池中的第二FPGA加速卡的加速单元,其中,所述第二FPGA加速卡为所述路由信息中与所述第一FPGA加速卡相连的下一个FPGA加速卡;
通过所述第二FPGA加速卡的加速单元对所述第一加速数据进行加速,并根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡;
直至加速完成,通过完成加速的FPGA加速卡将加速完成的目标数据返回所述第一FPGA加速卡,并通过所述第一FPGA加速卡将所述目标数据传输回所述加速主机。
可选地,所述通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息,包括:
通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求;
根据所述数据加速处理请求确定出待分配FPGA加速卡,其中,所述待分配加速卡中包括与所述加速主机连接的所述第一FPGA加速卡;
将所述待分配FPGA加速卡作为FPGA资源池;
根据所述FPGA资源池中的FPGA加速卡数量确定所述待加速数据对应的加速层级,并配置所述待分配FPGA加速卡之间的路由信息。
可选地,所述根据所述加速层级确定出待分配FPGA加速卡,包括:
根据所述数据加速处理请求确定出待分配FPGA加速卡数量;
从所述FPGA云平台中空闲的FPGA加速卡中确定出数量与所述待分配FPGA加速卡数量相同的待分配FPGA加速卡。
可选地,所述通过所述第二FPGA加速卡的加速单元对所述第一加速数据进行加速,并根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡,包括:
通过所述第二FPGA加速卡的加速单元对所述第一加速数据进行加速,得到第二加速数据;
通过所述网络和所述第二FPGA加速卡上的MAC接口将所述第二加速数据传输到所述路由信息中与所述第二FPGA加速卡相连的下一个FPGA加速卡。
可选地,所述通过所述第一FPGA加速卡将所述目标数据传输回所述加速主机,包括:
通过所述第一FPGA加速卡上的MAC接口获取所述目标数据;
通过所述第一FPGA加速卡上的PCIE接口直接将所述目标数据传输到所述加速主机。
第二方面,本申请公开了一种FPGA云平台,包括:
云平台管理服务器,用于获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息;
加速主机,用于获取所述数据加速处理请求对应的待加速数据,并通过本地的PCIE接口,将所述待加速数据传输到所述FPGA资源池中的第一FPGA加速卡的加速单元;
所述第一FPGA加速卡,用于通过本地的加速单元对所述待加速数据进行加速,得到第一加速数据,并通过网络和本地的MAC接口将所述第一加速数据传输到所述FPGA资源池中的第二FPGA加速卡的加速单元,其中,所述第二FPGA加速卡为所述路由信息中与所述第一FPGA加速卡相连的下一个FPGA加速卡;
所述第二FPGA加速卡,用于通过本地的加速单元对所述第一加速数据进行加速,并根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡;
完成加速的FPGA加速卡,用于在加速完成时,将加速完成的目标数据返回所述第一FPGA加速卡;
所述第一FPGA加速卡,用于将所述目标数据传输回所述加速主机。
可选地,所述云平台管理服务器,用于:
通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求;
根据所述数据加速处理请求确定出待分配FPGA加速卡,其中,所述待分配加速卡中包括与所述加速主机连接的所述第一FPGA加速卡;
将所述待分配FPGA加速卡作为FPGA资源池;
根据所述FPGA资源池中的FPGA加速卡数量确定所述待加速数据对应的加速层级,并配置所述待分配FPGA加速卡之间的路由信息。
可选地,所述云平台管理服务器,用于:
根据所述数据加速处理请求确定出待分配FPGA加速卡数量;
从所述FPGA云平台中空闲的FPGA加速卡中确定出数量与所述待分配FPGA加速卡数量相同的待分配FPGA加速卡。
可选地,所述第二FPGA加速卡,用于:
通过本地的加速单元对所述第一加速数据进行加速,得到第二加速数据;
通过本地的MAC接口将所述第二加速数据传输到所述路由信息中与所述第二FPGA加速卡相连的下一个FPGA加速卡。
可选地,所述第一FPGA加速卡,用于:
通过本地的MAC接口获取所述目标数据;
通过本地的PCIE接口直接将所述目标数据传输到所述加速主机。
可见,本申请先通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息,通过所述FPGA资源池对应的加速主机获取所述数据加速处理请求对应的待加速数据,并通过所述加速主机上的PCIE接口将所述待加速数据传输到所述FPGA资源池中的第一FPGA加速卡的加速单元,然后通过所述第一FPGA加速卡的加速单元对所述待加速数据进行加速,得到第一加速数据,并通过网络和所述第一FPGA加速卡的MAC接口将所述第一加速数据传输到所述FPGA资源池中的第二FPGA加速卡的加速单元,其中,所述第二FPGA加速卡为所述路由信息中与所述第一FPGA加速卡相连的下一个FPGA加速卡,然后通过所述第二FPGA加速卡的加速单元对所述第一加速数据进行加速,并根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡,直至加速完成,通过完成加速的FPGA加速卡将加速完成的目标数据返回所述第一FPGA加速卡,并通过所述第一FPGA加速卡将所述目标数据传输回所述加速主机。这样加速主机在获取到待加速数据之后,可以通过PCIF接口直接将待加速数据发送到本地的第一FPGA加速卡的加速单元进行加速,第一FPGA加速卡的加速单元加速完成之后,直接通过MAC接口和网络直接将第一加速数据发送到远端的第二FPGA加速卡的加速单元进行加速,并在第二FPGA加速卡的加速单元完成加速之后,根据路由信息将第二加速数据发送到下一个FPGA加速卡进行加速,直至加速完成,再返回所述第一FPGA加速卡,这样直接将数据传输到FPGA加速卡的加速单元中进行加速,并在加速完成之后,直接将数据传输出去,不需要再先将数据下写入到FPGA加速卡的memory中,然后再从memory中读取数据进行加速或者传输,可以减少数据传输的延时,从而提高数据加速效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有的一种FPGA云平台上的数据传输示意图;
图2为本申请公开的一种FPGA云平台结构示意图;
图3为本申请公开的一种具体的FPGA云平台结构示意图;
图4为本申请公开的一种数据传输方法流程图;
图5为本申请公开的一种具体的FPGA云平台结构示意图;
图6为本申请公开的一种FPGA云平台结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图2所示,为FPGA云平台的结构示意图。FPGA加速单元为整个云平台的核心节点,FPGA加速单元间通过网络进行连接,同时,FPGA加速单元可以脱离一对一的服务器,多个FPGA加速单元只需一台服务器对其进行管理。多个单独的FPGA加速单元构成FPGA加速资源池,连接到交换网络,一个交换网络对应一个云平台管理服务器完成相关的管理配置。FPGA资源池可进行AI算法,基因测序等分布式计算加速,完全实现纯硬件加速。
参见图3所示,为上述图2所示的FPGA云平台的局部结构示意图。加速主机连接本地FPGA加速卡,各个FPGA加速卡之间又通过网络进行连接。
参见图4所示,本申请实施例公开了一种数据传输方法,应用于如上述图2和3所示的FPGA云平台,该方法包括:
步骤S11:通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息。
在具体的实施过程中,需要先由所述FPGA云平台中的云平台管理服务器来获取数据加速处理请求,并根据所述数据加速处理请求中的相关数据配置所述数据加速处理请求对应的FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息,其中,所述路由信息表明所述FPGA资源池中各个FPGA加速卡之间的加速路径,并将所述FPGA资源池分配给所述数据加速处理请求对应的用户使用。
具体的,就是通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求;根据所述数据加速处理请求确定出待分配FPGA加速卡,其中,所述待分配加速卡中包括与所述加速主机连接的所述第一FPGA加速卡;将所述待分配FPGA加速卡作为FPGA资源池;根据所述FPGA资源池中的FPGA加速卡数量确定所述待加速数据对应的加速层级,并配置所述待分配FPGA加速卡之间的路由信息。
也即,在获取到所述数据加速处理请求之后,根据所述数据加速处理请求先确定出待加速数据需要多少待分配FPGA加速卡,这些待分配FPGA加速卡组成FPGA加速池,然后配置所述待分配FPGA加速卡之间的路由信息,以便根据所述路由信息确定具体的加速路径。
根据所述数据加速处理请求确定出待分配FPGA加速卡,包括:根据所述数据加速处理请求确定出待分配FPGA加速卡数量;从所述FPGA云平台中空闲的FPGA加速卡中确定出数量与所述待分配FPGA加速卡数量相同的待分配FPGA加速卡。
例如,参见图5所示,可以先由服务器获取数据加速处理请求,然后确定出包括FPGA-1、FPGA-2以及FPGA-3这3个FPGA加速卡的FPGA资源池。
步骤S12:通过所述FPGA资源池对应的加速主机获取所述数据加速处理请求对应的待加速数据,并通过所述加速主机上的PCIE接口将所述待加速数据传输到所述FPGA资源池中的第一FPGA加速卡的加速单元。
可以理解的是,在所述FPGA资源池准备完毕之后,还需要由所述通过所述FPGA资源池对应的加速主机获取所述数据加速处理请求对应的待加速数据,并将所述待加速数据通过所述加速主机上的PCIE接口传输到连接的第一FPGA加速卡的加速单元(Kernel)中,以便所述第一FPGA加速卡的加速单元对所述待加速数据进行初步加速。
步骤S13:通过所述第一FPGA加速卡的加速单元对所述待加速数据进行加速,得到第一加速数据,并通过网络和所述第一FPGA加速卡的MAC接口将所述第一加速数据传输到所述FPGA资源池中的第二FPGA加速卡的加速单元,其中,所述第二FPGA加速卡为所述路由信息中与所述第一FPGA加速卡相连的下一个FPGA加速卡。
所述第一FPGA加速卡通过自身的PCIE接口接收到所述待加速数据之后,便将所述待加速数据放入到加速单元中进行初步加速,得到第一加速数据,然后通过网络和本地的MAC接口直接将所述第一加速数据传输到所述FPGA资源池中的第二FPGA加速卡的加速单元中,其中,所述第二FPGA加速卡为所述路由信息中与所述第一FPGA加速卡相连的下一个FPGA加速卡。
具体的,就是所述第一FPGA加速卡完成初步加速之后,将得到的第一加速数据通过网络和本地的MAC接口传输给所述路由信息中所述第一FPGA加速卡之后的下一个加速卡节点。
步骤S14:通过所述第二FPGA加速卡的加速单元对所述第一加速数据进行加速,并根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡。
相应的,所述第二FPGA加速卡通过自身的MAC接口接收到所述第一加速数据之后,直接将所述第一加速数据放入到所述第二FPGA加速卡的加速单元中进行加速,得到第二加速数据,然后根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡。
具体的,就是通过所述第二FPGA加速卡的加速单元对所述第一加速数据进行加速,得到第二加速数据,然后根据所述路由信息找到与所述第二FPGA相连的下一个FPGA加速卡,并将第二加速数据传输到与所述第二FPGA加速卡相连的下一个FPGA加速卡。
步骤S15:直至加速完成,通过完成加速的FPGA加速卡将加速完成的目标数据返回所述第一FPGA加速卡,并通过所述第一FPGA加速卡将所述目标数据传输回所述加速主机。。
在所述第二FPGA加速卡完成对所述第一加速数据的加速之后,便可以根据所述路由信息确定是否将所述第二加速数据转发到下一个FPGA加速卡,如果是,则转发到下一个FPGA加速卡,直到完成对所述待加速数据的加速处理,则由完成加速的FPGA加速卡将加速完成的目标数据返回所述第一FPGA加速卡,其中,所述完成加速的FPGA加速卡为对所述待加速数据进行最后一层级加速的FPGA加速卡。
在具体的实施过程中,所述完成加速的FPGA加速卡可以为所述第二FPGA加速卡,也即待加速数据可以只需要进行两个层级的加速,也即,在所述第二FPGA加速卡完成对所述第一加速数据的加速,得到所述第二加速数据之后,待加速数据的加速处理已完成。
相应的,还需要通过所述第一FPGA加速卡将所述目标数据传输回所述加速主机。具体的,通过所述第一FPGA加速卡上的MAC接口获取所述目标数据;通过所述第一FPGA加速卡上的PCIE接口将所述目标数据传输到所述加速主机。
也即,所述第一FPGA加速卡通过自身的MAC接口接收到所述目标数据之后,不需要再进行相关的加速处理,可以直接通过自身的PCIE接口传输到所述加速主机中,这时所述第一FPGA加速卡只是作为一个数据传输中转,充当网卡的功能。
可见,本申请先通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息,通过所述FPGA资源池对应的加速主机获取所述数据加速处理请求对应的待加速数据,并通过所述加速主机上的PCIE接口将所述待加速数据传输到所述FPGA资源池中的第一FPGA加速卡的加速单元,然后通过所述第一FPGA加速卡的加速单元对所述待加速数据进行加速,得到第一加速数据,并通过网络和所述第一FPGA加速卡的MAC接口将所述第一加速数据传输到所述FPGA资源池中的第二FPGA加速卡的加速单元,其中,所述第二FPGA加速卡为所述路由信息中与所述第一FPGA加速卡相连的下一个FPGA加速卡,然后通过所述第二FPGA加速卡的加速单元对所述第一加速数据进行加速,并根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡,直至加速完成,通过完成加速的FPGA加速卡将加速完成的目标数据返回所述第一FPGA加速卡,并通过所述第一FPGA加速卡将所述目标数据传输回所述加速主机。这样加速主机在获取到待加速数据之后,可以通过PCIF接口直接将待加速数据发送到本地的第一FPGA加速卡的加速单元进行加速,第一FPGA加速卡的加速单元加速完成之后,直接通过MAC接口和网络直接将第一加速数据发送到远端的第二FPGA加速卡的加速单元进行加速,并在第二FPGA加速卡的加速单元完成加速之后,根据路由信息将第二加速数据发送到下一个FPGA加速卡进行加速,直至加速完成,再返回所述第一FPGA加速卡,这样直接将数据传输到FPGA加速卡的加速单元中进行加速,并在加速完成之后,直接将数据传输出去,不需要再先将数据下写入到FPGA加速卡的memory中,然后再从memory中读取数据进行加速或者传输,可以减少数据传输的延时,从而提高数据加速效果。
例如,以加速AI算法ResNet50为例进行实施例的说明。云平台管理服务器自动分解ResNet50算法,把ResNet50算法分解成3层,并分别完成对新形成的FPGA资源池的配置。新的FPGA资源池参加上述图4所示,加速主机把ResNet50原始数据通过PCIE接口传输给FPGA-1的Kernel进行加速,完成第一层数据的处理后Kernel通过MAC接口通过交换矩阵把数据传输给FPGA-2中的Kernel单元进行第二层的计算加速,完成计算后再通过网络矩阵传输给FPGA-3的kernel进行最后一层的加速,完成所有层的计算加速后,通过交换矩阵传输给FPGA-1,再通过该卡的网卡功能把加速结果传回给主机,完成ResNet50数据的分布式加速。
使用OpenCL(Open Computing Language,开放运算语言)编程语言来描述上述流程,假设上图5中的三块FPGA加速卡的ID分别为1,2,3,云平台管理服务器先完成算法的网络层次分解,并完成整个资源池路由信息的配置以及FPGA板卡上电配置:
FPGA1对应的主机把原始ResNet50数据通过PCIE接口传输给FPGA1的Kernel,对应的编程语言:write_pipe(p1,&data);(p1为pipe ID,值为1,data为待传输的数据)。
FPGA1 Kernel完成第一层网络数据的加速后通过网络接口把第二次待加速的数据传输给FPGA2,其中,FPGA1对应的编程语言:write_channel_intel(channel_id1,data)(channel id1为channel ID,值为1,data为第一层待加速的数据);FPGA2对应的编程语言:read_channel_intel(channel_id2)。
FPGA2 kernel接收到数据后进行第二层网络数据的加速,加速完成后通过网络矩阵把第三次的数据传输给FPGA3,其中,FPGA2对应的编程语言:write_channel_intel(channel_id2,data)(channel id2为channel ID,值为2,data为第二层待加速的数据),FPGA3对应的编程语言:read_channel_intel(channel_id3)。
FPGA3 kernel接收到数据后进行最后一层网络数据的加速处理,加速完成后通过网络接口传输给FPGA1,此时,FPGA1作为网卡把计算结果直接传给主机。其中,FPGA3对应的编程语言:write_channel_intel(channel_id3,data)(channel id3为channel ID,值为3,data加速结果数据)。
通过刚才上述的流程可实现ResNet50应用数据的分布式加速,并且通信延时可达到最低。该方法基于接口带宽与处理带宽的匹配(可通过FPGA内部反压机制实现丢包处理),抛弃memory的缓存功能,主机处理单元和多个FPGA kernel处理单元间可直接通信,节省了写memory和读memory的时间,在延时敏感性应用中具有很大的竞争力。
参见图6所示,本申请实施例公开了一种FPGA云平台,包括:
云平台管理服务器11,用于获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息;
加速主机12,用于获取所述数据加速处理请求对应的待加速数据,并通过本地的PCIE接口将所述待加速数据传输到所述FPGA资源池中的第一FPGA加速卡的加速单元;
所述第一FPGA加速卡13,用于通过本地的加速单元对所述待加速数据进行加速,得到第一加速数据,并通过网络和本地的MAC接口将所述第一加速数据传输到所述FPGA资源池中的第二FPGA加速卡的加速单元,其中,所述第二FPGA加速卡为所述路由信息中与所述第一FPGA加速卡相连的下一个FPGA加速卡;
所述第二FPGA加速卡14,用于通过本地的加速单元对所述第一加速数据进行加速,并根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡;
完成加速的FPGA加速卡15,用于在加速完成时,将加速完成的目标数据返回所述第一FPGA加速卡;
所述第一FPGA加速卡13,用于将所述目标数据传输回所述加速主机。
可见,本申请先通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息,通过所述FPGA资源池对应的加速主机获取所述数据加速处理请求对应的待加速数据,并通过所述加速主机上的PCIE接口将所述待加速数据传输到所述FPGA资源池中的第一FPGA加速卡的加速单元,然后通过所述第一FPGA加速卡的加速单元对所述待加速数据进行加速,得到第一加速数据,并通过网络和所述第一FPGA加速卡的MAC接口将所述第一加速数据传输到所述FPGA资源池中的第二FPGA加速卡的加速单元,其中,所述第二FPGA加速卡为所述路由信息中与所述第一FPGA加速卡相连的下一个FPGA加速卡,然后通过所述第二FPGA加速卡的加速单元对所述第一加速数据进行加速,并根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡,直至加速完成,通过完成加速的FPGA加速卡将加速完成的目标数据返回所述第一FPGA加速卡,并通过所述第一FPGA加速卡将所述目标数据传输回所述加速主机。这样加速主机在获取到待加速数据之后,可以通过PCIF接口直接将待加速数据发送到本地的第一FPGA加速卡的加速单元进行加速,第一FPGA加速卡的加速单元加速完成之后,直接通过MAC接口和网络直接将第一加速数据发送到远端的第二FPGA加速卡的加速单元进行加速,并在第二FPGA加速卡的加速单元完成加速之后,根据路由信息将第二加速数据发送到下一个FPGA加速卡进行加速,直至加速完成,再返回所述第一FPGA加速卡,这样直接将数据传输到FPGA加速卡的加速单元中进行加速,并在加速完成之后,直接将数据传输出去,不需要再先将数据下写入到FPGA加速卡的memory中,然后再从memory中读取数据进行加速或者传输,可以减少数据传输的延时,从而提高数据加速效果。
进一步的,所述云平台管理服务器,用于:
通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求;
根据所述数据加速处理请求确定出待分配FPGA加速卡,其中,所述待分配加速卡中包括与所述加速主机连接的所述第一FPGA加速卡;
将所述待分配FPGA加速卡作为FPGA资源池;
根据所述FPGA资源池中的FPGA加速卡数量确定所述待加速数据对应的加速层级,并配置所述待分配FPGA加速卡之间的路由信息。
具体的,所述云平台管理服务器,用于:
根据所述数据加速处理请求确定出待分配FPGA加速卡数量;
从所述FPGA云平台中空闲的FPGA加速卡中确定出数量与所述待分配FPGA加速卡数量相同的待分配FPGA加速卡。
具体的,所述第二FPGA加速卡,用于:
通过本地的加速单元对所述第一加速数据进行加速,得到第二加速数据;
通过本地的MAC接口将所述第二加速数据传输到所述路由信息中所述第二FPGA加速卡的下一个FPGA加速卡。
具体的,所述第一FPGA加速卡,用于:
通过本地的MAC接口获取所述目标数据;
通过本地的PCIE接口直接将所述目标数据传输到所述加速主机。
在具体的实施过程中,所述第二FPGA加速卡14和所述完成加速的FPGA加速卡15可以为同一个FPGA加速卡。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种数据传输方法及FPGA云平台进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种数据传输方法,应用于FPGA云平台,包括:
通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息;
通过所述FPGA资源池对应的加速主机获取所述数据加速处理请求对应的待加速数据,并通过所述加速主机上的PCIE接口将所述待加速数据传输到所述FPGA资源池中的第一FPGA加速卡的加速单元;
通过所述第一FPGA加速卡的加速单元对所述待加速数据进行加速,得到第一加速数据,并通过网络和所述第一FPGA加速卡的MAC接口将所述第一加速数据传输到所述FPGA资源池中的第二FPGA加速卡的加速单元,其中,所述第二FPGA加速卡为所述路由信息中与所述第一FPGA加速卡相连的下一个FPGA加速卡;
通过所述第二FPGA加速卡的加速单元对所述第一加速数据进行加速,并根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡;
直至加速完成,通过完成加速的FPGA加速卡将加速完成的目标数据返回所述第一FPGA加速卡,并通过所述第一FPGA加速卡将所述目标数据传输回所述加速主机。
2.根据权利要求1所述的数据传输方法,其特征在于,所述通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息,包括:
通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求;
根据所述数据加速处理请求确定出待分配FPGA加速卡,其中,所述待分配加速卡中包括与所述加速主机连接的所述第一FPGA加速卡;
将所述待分配FPGA加速卡作为FPGA资源池;
根据所述FPGA资源池中的FPGA加速卡数量确定所述待加速数据对应的加速层级,并配置所述待分配FPGA加速卡之间的路由信息。
3.根据权利要求2所述的数据传输方法,其特征在于,所述根据所述数据加速处理请求确定出待分配FPGA加速卡,包括:
根据所述数据加速处理请求确定出待分配FPGA加速卡数量;
从所述FPGA云平台中空闲的FPGA加速卡中确定出数量与所述待分配FPGA加速卡数量相同的待分配FPGA加速卡。
4.根据权利要求1所述的数据传输方法,其特征在于,所述通过所述第二FPGA加速卡的加速单元对所述第一加速数据进行加速,并根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡,包括:
通过所述第二FPGA加速卡的加速单元对所述第一加速数据进行加速,得到第二加速数据;
通过所述网络和所述第二FPGA加速卡上的MAC接口将所述第二加速数据传输到所述路由信息中与所述第二FPGA加速卡相连的下一个FPGA加速卡。
5.根据权利要求1至4任一项所述的数据传输方法,其特征在于,所述通过所述第一FPGA加速卡将所述目标数据传输回所述加速主机,包括:
通过所述第一FPGA加速卡上的MAC接口获取所述目标数据;
通过所述第一FPGA加速卡上的PCIE接口直接将所述目标数据传输到所述加速主机。
6.一种FPGA云平台,其特征在于,包括:
云平台管理服务器,用于获取数据加速处理请求,并根据所述数据加速处理请求配置FPGA资源池和所述FPGA资源池中各个FPGA加速卡之间的路由信息;
加速主机,用于获取所述数据加速处理请求对应的待加速数据,并通过本地的PCIE接口将所述待加速数据传输到所述FPGA资源池中的第一FPGA加速卡的加速单元;
所述第一FPGA加速卡,用于通过本地的加速单元对所述待加速数据进行加速,得到第一加速数据,并通过网络和本地的MAC接口将所述第一加速数据传输到所述FPGA资源池中的第二FPGA加速卡的加速单元,其中,所述第二FPGA加速卡为所述路由信息中与所述第一FPGA加速卡相连的下一个FPGA加速卡;
所述第二FPGA加速卡,用于通过本地的加速单元对所述第一加速数据进行加速,并根据所述路由信息将第二加速数据传输到所述第二FPGA加速卡的下一个FPGA加速卡;
完成加速的FPGA加速卡,用于在加速完成时,将加速完成的目标数据返回所述第一FPGA加速卡;
所述第一FPGA加速卡,用于将所述目标数据传输回所述加速主机。
7.根据权利要求6所述的FPGA云平台,其特征在于,所述云平台管理服务器,用于:
通过所述FPGA云平台中的云平台管理服务器获取数据加速处理请求;
根据所述数据加速处理请求确定出待分配FPGA加速卡,其中,所述待分配加速卡中包括与所述加速主机连接的所述第一FPGA加速卡;
将所述待分配FPGA加速卡作为FPGA资源池;
根据所述FPGA资源池中的FPGA加速卡数量确定所述待加速数据对应的加速层级,并配置所述待分配FPGA加速卡之间的路由信息。
8.根据权利要求7所述的FPGA云平台,其特征在于,所述云平台管理服务器,用于:
根据所述数据加速处理请求确定出待分配FPGA加速卡数量;
从所述FPGA云平台中空闲的FPGA加速卡中确定出数量与所述待分配FPGA加速卡数量相同的待分配FPGA加速卡。
9.根据权利要求6所述的FPGA云平台,其特征在于,所述第二FPGA加速卡,用于:
通过本地的加速单元对所述第一加速数据进行加速,得到第二加速数据;
通过本地的MAC接口将所述第二加速数据传输到所述路由信息中与所述第二FPGA加速卡相连的下一个FPGA加速卡。
10.根据权利要求6至9任一项所述的FPGA云平台,其特征在于,所述第一FPGA加速卡,用于:
通过本地的MAC接口获取所述目标数据;
通过本地的PCIE接口直接将所述目标数据传输到所述加速主机。
CN202011035640.8A 2020-09-27 2020-09-27 一种数据传输方法及fpga云平台 Pending CN112087471A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011035640.8A CN112087471A (zh) 2020-09-27 2020-09-27 一种数据传输方法及fpga云平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011035640.8A CN112087471A (zh) 2020-09-27 2020-09-27 一种数据传输方法及fpga云平台

Publications (1)

Publication Number Publication Date
CN112087471A true CN112087471A (zh) 2020-12-15

Family

ID=73739093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011035640.8A Pending CN112087471A (zh) 2020-09-27 2020-09-27 一种数据传输方法及fpga云平台

Country Status (1)

Country Link
CN (1) CN112087471A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631778A (zh) * 2020-12-27 2021-04-09 苏州浪潮智能科技有限公司 一种基于fpga云的计算优化方法、系统、存储介质及设备
CN113905097A (zh) * 2021-09-26 2022-01-07 威讯柏睿数据科技(北京)有限公司 一种数据传输方法和装置
CN115277393A (zh) * 2022-07-26 2022-11-01 浪潮电子信息产业股份有限公司 一种传输配置信息的方法、装置及介质
WO2023093043A1 (zh) * 2021-11-26 2023-06-01 浪潮电子信息产业股份有限公司 一种数据处理方法、装置及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888337A (zh) * 2017-11-07 2018-04-06 锐捷网络股份有限公司 一种fpga、fpga处理信息的方法、加速装置
US20190028559A1 (en) * 2017-07-18 2019-01-24 A10 Networks, Inc. Tcp fast open hardware support in proxy devices
US20190082040A1 (en) * 2017-09-08 2019-03-14 National Instruments Corporation Wireless communications apparatus and method for performing low latency high throughput layer 2 operations
CN109800510A (zh) * 2019-01-23 2019-05-24 郑州云海信息技术有限公司 一种fpga布局布线的方法、系统及设备
CN110781129A (zh) * 2019-09-12 2020-02-11 苏州浪潮智能科技有限公司 一种fpga异构加速卡集群中的资源调度方法、设备及介质
CN111262917A (zh) * 2020-01-13 2020-06-09 苏州浪潮智能科技有限公司 一种基于fpga云平台的远端数据搬移装置和方法
CN111324558A (zh) * 2020-02-05 2020-06-23 苏州浪潮智能科技有限公司 数据处理方法、装置、分布式数据流编程框架及相关组件

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190028559A1 (en) * 2017-07-18 2019-01-24 A10 Networks, Inc. Tcp fast open hardware support in proxy devices
US20190082040A1 (en) * 2017-09-08 2019-03-14 National Instruments Corporation Wireless communications apparatus and method for performing low latency high throughput layer 2 operations
CN107888337A (zh) * 2017-11-07 2018-04-06 锐捷网络股份有限公司 一种fpga、fpga处理信息的方法、加速装置
CN109800510A (zh) * 2019-01-23 2019-05-24 郑州云海信息技术有限公司 一种fpga布局布线的方法、系统及设备
CN110781129A (zh) * 2019-09-12 2020-02-11 苏州浪潮智能科技有限公司 一种fpga异构加速卡集群中的资源调度方法、设备及介质
CN111262917A (zh) * 2020-01-13 2020-06-09 苏州浪潮智能科技有限公司 一种基于fpga云平台的远端数据搬移装置和方法
CN111324558A (zh) * 2020-02-05 2020-06-23 苏州浪潮智能科技有限公司 数据处理方法、装置、分布式数据流编程框架及相关组件

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631778A (zh) * 2020-12-27 2021-04-09 苏州浪潮智能科技有限公司 一种基于fpga云的计算优化方法、系统、存储介质及设备
CN112631778B (zh) * 2020-12-27 2023-01-06 苏州浪潮智能科技有限公司 一种基于fpga云的计算优化方法、系统、存储介质及设备
CN113905097A (zh) * 2021-09-26 2022-01-07 威讯柏睿数据科技(北京)有限公司 一种数据传输方法和装置
WO2023093043A1 (zh) * 2021-11-26 2023-06-01 浪潮电子信息产业股份有限公司 一种数据处理方法、装置及介质
CN115277393A (zh) * 2022-07-26 2022-11-01 浪潮电子信息产业股份有限公司 一种传输配置信息的方法、装置及介质

Similar Documents

Publication Publication Date Title
CN112087471A (zh) 一种数据传输方法及fpga云平台
KR102372423B1 (ko) 파라미터 공유 장치 및 방법
CN110275841A (zh) 访问请求处理方法、装置、计算机设备和存储介质
CN111105006B (zh) 一种深度学习网络训练系统及方法
US9940020B2 (en) Memory management method, apparatus, and system
CN110119304B (zh) 一种中断处理方法、装置及服务器
CN113037529B (zh) 一种预留带宽分配方法、装置、设备及存储介质
CN111585887A (zh) 基于多个网络的通信方法、装置、电子设备及存储介质
CN111309805B (zh) 数据库的数据读写方法及装置
CN113360077B (zh) 数据存储方法、计算节点及存储系统
CN109597903B (zh) 图像文件处理装置和方法、文件存储系统及存储介质
CN115964319A (zh) 远程直接内存访问的数据处理方法及相关产品
WO2018176397A1 (zh) 一种锁分配的方法、装置和计算设备
CN116633900A (zh) 逻辑地址分配方法、装置、电子设备及存储介质
CN109783002B (zh) 数据读写方法、管理设备、客户端和存储系统
US11068420B2 (en) Scalable software stack
CN116383127B (zh) 节点间通信方法、装置、电子设备及存储介质
CN115114042A (zh) 存储数据访问方法、装置、电子设备和存储介质
CN110636149B (zh) 远程访问方法、装置、路由器及存储介质
US10523741B2 (en) System and method for avoiding proxy connection latency
CN116303126B (zh) 缓存、数据的处理方法及电子设备
WO2016119618A1 (zh) 一种远端内存分配方法、装置和系统
CN111767114A (zh) 创建云主机的方法和装置、计算机系统和可读存储介质
CN113094320B (zh) 并行消息仲裁装置及方法
CN112764897B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20201215