一种基于FPGA云平台的远端数据搬移装置和方法与流程

专利2022-06-29  90

本发明涉及fpga数据搬移应用
技术领域
:,具体涉及一种基于fpga云平台的远端数据搬移装置和方法。
背景技术
::云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。在云上,数据的增长每年呈30%左右,同时ai的快速发展也带来了对数据高性能计算的要求,传统cpu无法解决计算性能的问题。fpga利用其高性能低延时、灵活可扩展、以及低功耗等优势在数据中心用于计算加速。目前,微软,亚马逊,百度,腾讯,阿里等数据中心都推出了fpga云平台,把fpga作为云上可共享的资源实现计算加速。多个fpga加速单元可以通过网络组成计算资源池,实现分布式数据加速。实现分布式fpga云平台的一项关键技术是如何在不同fpga加速单元中实现数据搬移,并如何提高数据搬移的效率。如图1所示,为现有的fpga云平台网络拓扑示意图,fpga板卡通过mac网络接口连接到交换机形成fpga资源池。fpga板卡的形态可以是服务器中的pcie加速卡,也可以是jbof(jbof,justabunchoffpgas,只有fpga加速卡的fpga池)中多个单独的fpga板卡。fpga云平台通常用于ai算法,图片处理,基因测序等计算数据量非常大的算法的加速。加速算法需要由多块fpga板卡共同完成加速,在多个fpga板卡间进行数据的交互。rdma技术是现代化高性能网络通信技术,以硬件加速为基础。rocerdma(roce,rdmaoverconvergedethernet)定义了如何在以太网运行rdma,是目前在fpga云上普遍使用的技术。rocerdma将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。如图2所示,为现有rdma技术的功能示意图,服务器a向服务器b传输数据,服务器a的应用执行rdma写请求,在不需要内核内存参与的条件下,rdma写请求从运行在用户空间中的应用中发送到带rdma功能的fpga板卡a的缓存memory中;fpga板卡a读取缓存memory中的数据,并通过网络传送到fpga板卡b的缓存memory中,fpga板卡b再将数据直接写入服务器b的应用缓存中。rdma协议标准是由ibta(ibta,infinibandtradeassociation,infiniband标准制定者)组织制定的,用于实现端点间的数据传输,fpga实现rdma功能,需要遵循rdma协议标准,实现较为复杂,占用较多fpga资源;同时rdma标准定义了两台主机间数据传输的协议标准,但对于jbof拓扑中fpga板卡间的数据传输协议标准并没有定义,需要自己寻找适用于jbof拓扑中fpga板卡间数据搬移的方法。技术实现要素:本发明实施例中提供了一种基于fpga云平台的远端数据搬移装置和方法,用以解决在fpga云平台下,在jbof拓扑中fpga板卡间进行数据的加速和搬移的问题。本发明实施例公开了如下技术方案:本发明第一方面提供了一种基于fpga云平台的远端数据搬移装置,包括服务器、交换机和fpga加速卡,所述装置包括多个fpga加速卡,所述服务器将待加速的数据通过交换机传输给所述fpga加速卡,所述fpga加速卡用于对数据进行一次和/或二次加速,所述fpga加速卡用于对加速后的数据进行搬移。进一步地,所述fpga加速卡包括shell和加速单元fau,所述shell用于fpga加速卡和交换机的接口连接,所述shell用于对fpga加速卡上的数据进行搬移,所述加速单元fau用于对fpga加速卡上的数据进行一次和/或二次加速。进一步地,所述shell包括irdma、memory、pcie和mac,所述memory连接所述irdma,所述irdma连接所述pcie和mac;当fpga加速卡上memory通过加速单元fau加速时,所述irdma用于实现fpga加速卡上memory与加速单元fau之间的数据搬移,当数据在多个fpga加速卡上搬移时,所述irdma通过mac接口实现多个fpga加速卡上memory之间的数据搬移。进一步地,所述加速单元fau的加速算法包括lz77和huffman,所述加速算法lz77通过对fpga加速卡上数据进行第一阶段压缩实现对数据一次加速,所述加速算法huffman通过对fpga加速卡上一次加速数据进行第二阶段压缩实现对数据二次加速。进一步地,所述irdma包括桥接模块bridge、报文处理模块pkt_pro和解析模块fau_parse,所述报文处理模块pkt_pro对通过pcie接口或mac接口接收的数据搬移读写指令报文进行解析和封包,所述解析模块fau_parse用于对加速单元fau发起的数据搬移读指令报文进行解析,所述桥接模块bridge用于将桥接模块bridge和报文处理模块pkt_pro解析出来的搬移指令转换为读写memory的接口时序。本发明第二方面提供了一种基于fpga云平台的远端数据搬移方法,包括:待加速数据从服务器上通过交换机传输到fpga加速卡;fpga加速卡对待加速数据进行一次和/或二次加速;fpga加速卡对加速后的数据进行搬移。进一步地,所述fpga加速卡对待加速数据进行一次和/或二次加速具体为:所述fpga加速卡的加速单元fau对待加速数据进行一次和/或二次加速。进一步地,所述fpga加速卡对加速后的数据进行搬移具体为:当fpga加速卡上memory中的数据通过加速单元fau加速时,所述fpga加速卡的irdma用于实现fpga加速卡上memory与加速单元fau之间的数据搬移,当加速后的数据在多个fpga加速卡上搬移时,所述irdma通过mac接口实现多个fpga加速卡上memory之间的数据搬移。进一步地,所述加速单元fau的加速算法包括lz77和huffman,所述加速算法lz77通过对fpga加速卡上数据进行第一阶段压缩实现对数据一次加速,所述加速算法huffman通过对fpga加速卡上一次加速数据进行第二阶段压缩实现对数据二次加速。进一步地,所述irdma包括桥接模块bridge、报文处理模块pkt_pro和解析模块fau_parse,所述报文处理模块pkt_pro对通过pcie接口或mac接口接收的数据搬移读写指令报文进行解析和封包,所述解析模块fau_parse用于对加速单元fau发起的数据搬移读指令报文进行解析,所述桥接模块bridge用于将桥接模块bridge和报文处理模块pkt_pro解析出来的搬移指令转换为读写memory的接口时序。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:本发明提供的基于fpga云平台的远端数据搬移装置和方法,通过fpga加速卡上irdma定义的读写指令、加速单元fau和mac接口,完成多个fpga加速卡间的数据搬移,本发明简化了rocerdma协议,并可用于jbof拓扑,传输效率高,提高了公司云平台产品的竞争力。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明所述现有fpga云平台网络拓扑示意图;图2为本发明所述现有rdma技术的功能示意图;图3为本发明所述装置结构框图;图4为本发明实施例所述irdma模块框图;图5为本发明所述方法流程图。具体实施方式为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。如图3所示,为本发明装置结构框图,装置包括服务器、交换机和fpga加速卡,装置包括多个fpga(fpga,fieldprogrammablegatearray,现场可编程门阵列)加速卡,服务器将待加速的数据通过交换机传输给fpga加速卡,fpga加速卡用于对数据进行一次和/或二次加速,fpga加速卡用于对加速后的数据进行搬移。fpga加速卡包括shell(shell,fpga外壳单元,fpga工程中的静态部分,用户不可更改)和加速单元fau(fau,fpgaacceleratorunit,fpga加速单元,应用加速模块,可动态可重配置),shell用于fpga加速卡和交换机的接口连接,shell用于对fpga加速卡上的数据进行搬移,加速单元fau用于对fpga加速卡上的数据进行一次和/或二次加速。shell实现了fpga的接口功能,包括pciedma接口,mac接口,memory接口等),shell是fpga的静态部分,用户不可更改。加速单元fau为用户可重配置的加速单元,不同的用户可加载不同的加速应用,不同的板卡也可加载不同的应用,如板卡a的fau可以是cnn加速算法,而板卡b的fau是dnn加速算法,但两块板卡的静态shell部分保持一致。shell包括irdma(irdma,本发明自定义的rdma,用于fpga云平台的rdma)、memory、pcie和mac(mac,mediaaccesscontrol,媒体存取控制,处于网络中的第二层),memory连接irdma,irdma连接pcie和mac;当服务器将数据搬移至fpga加速卡上时,irdma通过pcie接口实现服务器上cpumemory与fpga加速卡memory之间的数据搬移,当fpga加速卡上memory中的数据通过加速单元fau加速时,irdma用于实现fpga加速卡上memory与加速单元fau之间的数据搬移,当加速后的数据在多个fpga加速卡上搬移时,irdma通过mac接口实现多个fpga加速卡上memory之间的数据搬移。加速单元fau的加速算法包括lz77和huffman,加速算法lz77通过对fpga加速卡上数据进行第一阶段压缩实现数据一次加速,加速算法huffman通过对fpga加速卡上一次加速数据进行第二阶段压缩实现数据二次加速。加速算法综合了字典模式lz77算法和统计冗余的huffman两种算法,可以达到很高的压缩率。其中huffman算法依赖lz77算法,这两种算法可以分别给两个fpga加速卡进行加速处理。如图4所示,为本发明实施例irdma模块框图,irdma包括桥接模块bridge、报文处理模块pkt_pro和解析模块fau_parse,报文处理模块pkt_pro对通过pcie接口或mac接口接收的数据搬移读写指令报文进行解析和封包,解析模块fau_parse用于对加速单元fau发起的数据搬移读指令报文进行解析,桥接模块bridge用于将桥接模块bridge和报文处理模块pkt_pro解析出来的搬移指令转换为读写memory的接口时序。报文处理模块pkt_proc接收从pcie接口或mac接口输入的irdma读写指令报文,经报文解析处理后发送读写指令给桥接模块bridge,桥接模块bridge把读写指令转换成读写memory接口的时序完成memory的写或读。如果是irdma读指令,则桥接模块bridge从memory读取数据后发送给报文处理模块pkt_proc,文处理模块pkt_proc完成报文封装等处理后发送给pcie接口或mac接口。加速单元fau完成数据加速处理后发起irdma_rd指令,经报文处理模块pkt_proc处理后发送读指令给桥接模块bridge,桥接模块bridge把读指令转换成memory读时序,从memory读取的数据经桥接模块bridge处理后发送给报文处理模块pkt_proc,报文处理模块pkt_proc进行报文封装后发送给pcie接口或mac接口输出。本发明方法自定义能在jbof拓扑fpga云平台下完成数据搬移的简单高效的方法,fpga解析自定义irdma读写指令报文,自动完成数据的搬移,并且加速单元fau也能触发指令进行数据的搬移。如图5所示,为本发明方法流程图,方法包括:待加速数据从服务器上通过交换机传输到fpga加速卡;fpga加速卡对待加速数据进行一次和/或二次加速;fpga加速卡对加速后的数据进行搬移。待加速数据从服务器上通过交换机传输到fpga加速卡具体为:待加速数据从服务器上传输到交换机,待加速数据再从交换机传输到fpga加速卡的pcie接口。fpga加速卡对待加速数据进行一次和/或二次加速具体为:fpga加速卡的加速单元fau对对待加速数据进行一次和/或二次加速。fpga加速卡对加速后的数据进行搬移具体为:当fpga加速卡上memory中的数据通过加速单元fau加速时,fpga加速卡的irdma用于实现fpga加速卡上memory与加速单元fau之间的数据搬移,当加速后的数据在多个fpga加速卡上搬移时,irdma通过mac接口实现多个fpga加速卡上memory之间的数据搬移。加速单元fau的加速算法包括lz77和huffman,加速算法lz77通过对fpga加速卡上数据进行第一阶段压缩实现对数据一次加速,加速算法huffman通过对fpga加速卡上一次加速数据进行第二阶段压缩实现对数据二次加速。irdma包括桥接模块bridge、报文处理模块pkt_pro和解析模块fau_parse,报文处理模块pkt_pro对通过pcie接口或mac接口接收的数据搬移读写指令报文进行解析和封包,解析模块fau_parse用于对加速单元fau发起的数据搬移读指令报文进行解析,桥接模块bridge用于将桥接模块bridge和报文处理模块pkt_pro解析出来的搬移指令转换为读写memory的接口时序。本发明方法详细工作过程为:待加速数据从服务器上通过交换机传输到第一fpga加速卡的pcie接口;第一fpga加速卡的第一irdma接收写指令,并将pcie接口上的待加速数据存入第一fpga加速卡的第一memory,第一irdma接收读指令,并从第一memory中将待加速数据读出到第一fpga加速卡的第一加速单元fau,第一加速单元fau通过加速算法lz77对待加速数据进行第一阶段压缩,实现数据第一次加速;第一加速单元fau完成数据一次加速后,发送irdma读指令,第一fpga加速卡的第一irdma接收读指令,并将一次加速数据从第一memory中读取出来,第一fpga加速卡的第一irdma将一次加速数据封装成irdma写指令,并通过第一fpga加速卡的第一mac接口传给第二fpga加速卡;第二fpga加速卡接收irdma写指令,并将一次加速数据存入第二fpga加速卡的第二memory中,第二fpga加速卡的第二irdma接收读指令,并从第二memory中将一次加速数据读出到第二fpga加速卡的第二加速单元fau,第二加速单元fau通过加速算法huffman对一次加速数据进行第二阶段压缩,实现数据第二次加速。本发明自定义irdma数据搬移方法用于jbof网络拓扑,简单高效实现了fpga云平台数据搬移。irdma模块使用了fpga的15k的lut(lut,look-up-table,查找表,fpga的重要资源)资源,占用vu37pfpga约1%的lut资源,而rocerdma需要占用40k的lut资源,占用vu37p(vu37p,xilinxfpga资源较多的一款fpga)fpga约3%的lut资源,因此irdma大大简化了数据搬移的效率。以上所述只是本发明的优选实施方式,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
技术特征:

1.一种基于fpga云平台的远端数据搬移装置,其特征在于,所述装置包括服务器、交换机和fpga加速卡,所述装置包括多个fpga加速卡,所述服务器将待加速的数据通过交换机传输给所述fpga加速卡,所述fpga加速卡用于对数据进行一次和/或二次加速,所述fpga加速卡用于对加速后的数据进行搬移。

2.根据权利要求1所述的一种基于fpga云平台的远端数据搬移装置,其特征在于,所述fpga加速卡包括shell和加速单元fau,所述shell用于fpga加速卡和交换机的接口连接,所述shell用于对fpga加速卡上的数据进行搬移,所述加速单元fau用于对fpga加速卡上的数据进行一次和/或二次加速。

3.根据权利要求2所述的一种基于fpga云平台的远端数据搬移装置,其特征在于,所述shell包括irdma、memory、pcie和mac,所述memory连接所述irdma,所述irdma连接所述pcie和mac;当fpga加速卡上memory中的数据通过加速单元fau加速时,所述irdma用于实现fpga加速卡上memory与加速单元fau之间的数据搬移,当加速后的数据在多个fpga加速卡上搬移时,所述irdma通过mac接口实现多个fpga加速卡上memory之间的数据搬移。

4.根据权利要求2所述的一种基于fpga云平台的远端数据搬移装置,其特征在于,所述加速单元fau的加速算法包括lz77和huffman,所述加速算法lz77通过对fpga加速卡上数据进行第一阶段压缩实现对数据一次加速,所述加速算法huffman通过对fpga加速卡上一次加速数据进行第二阶段压缩实现对数据二次加速。

5.根据权利要求3所述的一种基于fpga云平台的远端数据搬移装置,其特征在于,所述irdma包括桥接模块bridge、报文处理模块pkt_pro和解析模块fau_parse,所述报文处理模块pkt_pro对通过pcie接口或mac接口接收的数据搬移读写指令报文进行解析和封包,所述解析模块fau_parse用于对加速单元fau发起的数据搬移读指令报文进行解析,所述桥接模块bridge用于将桥接模块bridge和报文处理模块pkt_pro解析出来的搬移指令转换为读写memory的接口时序。

6.一种基于fpga云平台的远端数据搬移方法,基于权利要求1-5任一项所述装置实现,其特征在于,所述方法包括:

待加速数据从服务器上通过交换机传输到fpga加速卡;

fpga加速卡对待加速数据进行一次和/或二次加速;

fpga加速卡对加速后的数据进行搬移。

7.根据权利要求6所述的一种基于fpga云平台的远端数据搬移方法,其特征在于,所述fpga加速卡对待加速数据进行一次和/或二次加速具体为:

所述fpga加速卡的加速单元fau对待加速数据进行一次和/或二次加速。

8.根据权利要求6所述的一种基于fpga云平台的远端数据搬移方法,其特征在于,所述fpga加速卡对加速后的数据进行搬移具体为:

当fpga加速卡上memory中的数据通过加速单元fau加速时,所述fpga加速卡的irdma用于实现fpga加速卡上memory与加速单元fau之间的数据搬移,当加速后的数据在多个fpga加速卡上搬移时,所述irdma通过mac接口实现多个fpga加速卡上memory之间的数据搬移。

9.根据权利要求7所述的一种基于fpga云平台的远端数据搬移方法,其特征在于,所述加速单元fau的加速算法包括lz77和huffman,所述加速算法lz77通过对fpga加速卡上数据进行第一阶段压缩实现对数据一次加速,所述加速算法huffman通过对fpga加速卡上一次加速数据进行第二阶段压缩实现对数据二次加速。

10.根据权利要求8所述的一种基于fpga云平台的远端数据搬移方法,其特征在于,所述irdma包括桥接模块bridge、报文处理模块pkt_pro和解析模块fau_parse,所述报文处理模块pkt_pro对通过fpga加速卡的pcie接口或mac接口接收的数据搬移读写指令报文进行解析和封包,所述解析模块fau_parse用于对加速单元fau发起的数据搬移读指令报文进行解析,所述桥接模块bridge用于将桥接模块bridge和报文处理模块pkt_pro解析出来的搬移指令转换为读写memory的接口时序。

技术总结
本发明实施例公开了一种基于FPGA云平台的远端数据搬移装置和方法,装置包括服务器、交换机和FPGA加速卡,所述装置包括多个FPGA加速卡,所述服务器将待加速的数据通过交换机传输给所述FPGA加速卡,所述FPGA加速卡用于对数据进行一次和/或二次加速,所述FPGA加速卡用于对加速后的数据进行搬移;方法包括:待加速数据从服务器上通过交换机传输到FPGA加速卡,FPGA加速卡对待加速数据进行一次和/或二次加速,FPGA加速卡对加速后的数据进行搬移。本发明通过FPGA加速卡上iRDMA定义的读写指令、加速单元FAU和MAC接口,解决了在FPGA云平台下,JBOF拓扑中FPGA板卡间进行数据的加速和搬移的问题。

技术研发人员:王江为;郝锐;阚宏伟
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2020.01.13
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-18686.html

最新回复(0)