一种基于大规模FPGA芯片的计算加速系统及其加速方法与流程

文档序号:16754176发布日期:2019-01-29 17:11阅读:156来源:国知局
一种基于大规模FPGA芯片的计算加速系统及其加速方法与流程
本发明涉及一种计算加速方法,具体的说是一种基于大规模fpga芯片的计算加速系统及其加速方法,属于计算加速
技术领域

背景技术
:当前在基因工程、天气预报、石油勘探、地震研究等领域的运算量日益增大。可以预见,未来这些领域的计算需求将会越来越大,这就对计算加速提出了更高的要求。目前的计算加速方法主要分为三种:集群计算加速、基于gpu的并行计算加速和基于fpga的可重构计算加速。集群计算(clustercomputing)集群是由一些互相连接在一起的计算机构成的一个并行或分布式系统。服务器集群系统通俗地讲就是把多台服务器通过快速通信链路连接起来,从外部看来,这些服务器就像一台服务器在工作,而对内来说,外面来的负载通过一定的机制动态地分配到这些节点机中去,从而达到超级服务器才有的高性能、高可用。集群技术是一种相对较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益。目前,在世界各地正在运行的超级计算机中,有许多都是采用集群技术来实现的。gpu(graphicsprocessingunit),即图形处理器,是一种专门进行图像运算工作的微处理器。如今gpu作为协处理器的一种已成为当代计算加速系统的重要组成部分之一,是目前计算加速的主要方法。自1999年nvidia将世界上第一个gpu推向市场以来,gpu得到迅速发展,短短十年内其功能已从单一的图形显示发展到高速并行计算(gpgpu,generalpurposegpu,即通用计算gpu)。由cpu+gpu组成的异构计算模式,由于其优异的性能功耗比,已被广泛部署于物理学仿真、分子动力学、地震模拟等工程领域。fpga(field-programmablegatearray),即现场可编程门阵列,它是由通过可编程互连连接的可配置逻辑块(clb)矩阵构成的半导体器件。可重构计算(reconfigurablecomputing)技术是指在软件的控制下,利用系统中的可重用资源,根据应用的需要重新构造一个新的计算平台,达到接近专用硬件设计的高性能。基于fpga的可重构计算系统加速是目前在工程计算中得到运用的一种新型方法,适用于大部分的计算密集型和数据密集型的应用,如金融计算、密码学、生命科学、石油勘探、大数据处理等等。它通过硬件优化来实现对特定应用的更好的运行效率,即持续性能能达到更接近峰值运算性能的值,同时与gpu和cpu相比fpga的能效比更高,是一种新兴的有前景的计算加速方法。技术实现要素:本发明所要解决的技术问题是,克服现有技术的缺点,提供一种基于大规模fpga芯片的计算加速系统及其加速方法,利用在服务器中设置可重构、高密度的fpga计算加速卡,使其具备运算能力强,加速效果显著的特点。本发明为解决上述技术问题,提供一种基于大规模fpga芯片的计算加速系统,包含服务器及与所述服务器连接的fpga计算加速卡;所述服务器用于发送待计算数据至所述fpga计算加速卡,以及用于读取所述fpga计算加速卡加速计算后得到的结果数据;所述服务器由一台主机控制连接;所述服务器包含电源模块、数据分发及回收模块、接口模块、加速模块以及相应的业务分发模块;其中所述电源模块,用于提供服务器所需电能;所述数据分发及回收模块,用于分发和回收数据计算结果;所述接口模块,用于与fpga计算加速卡进行数据传输,用于发送待计算数据至所述fpga计算加速卡,以及将fpga计算加速卡加速计算后的结果数据传输至服务器;所述加速模块以及相应的业务分发模块,用于加速处理数据的分发及回收;所述fpga计算加速卡,在加载相应的ip软核后,用于利用服务器发送的待计算数据进行相应的加速计算,得到所述结果数据;所述fpga计算加速卡包含数据通讯接口、多颗fpga芯片以及与所述fpga芯片分别一一对应连接的存储器,存储器采用ddr3存储芯片;所述接口模块和数据通讯接口采用usb3.0接口或pci-e接口。本发明进一步限定的技术方案是:前述的基于大规模fpga芯片的计算加速系统,针对已经开发好的加速计算应用,所述主机可自动将计算任务交给高性能服务器的fpga计算加速卡计算。针对新的加速计算应用,使用所携带的sdkapi进行软核加载和数据传输控制等,完成新的计算加速应用开发。前述的基于大规模fpga芯片的计算加速系统,所述服务器包含10块fpga计算加速卡,每块fpga计算加速卡含12颗xilinxspartan-6芯片,共120颗,10块fpga计算加速卡灵活配置;每颗fpga芯片都配备512mbdram内存。前述的基于大规模fpga芯片的计算加速系统,所述数据通讯接口,用于与服务器进行数据传输,用于接收服务器发送的待计算数据,以及将fpga计算加速卡加速计算后的结果数据传输至服务器;所述fpga芯片,用于加速计算服务器发送的待计算数据;所述存储器,用于存储服务器发送的待计算数据,以及fpga计算加速卡加速计算后的结果数据。一种基于大规模fpga芯片的计算加速方法,包括如下步骤:步骤1,对需要加速计算的整个计算过程进行分析,识别其中的瓶颈型算法;步骤2,提取需被加速部分的算法,设计对应的加速ip软核;步骤3,设计ip软核的数据输入输出格式;步骤4,将步骤2设计好的ip软核加载到fpga计算加速卡,再将输入数据传输到fpga计算加速卡,启动计算加速卡计算,计算结束,进而完成加速计算。进一步的,前述的基于fpga芯片的计算加速方法,在步骤2中,设计加速ip软核具体通过以下两种方法完成:一是设计多级流水加速算法,二是设计多核增加fpga芯片的利用率。本发明的有益效果是:本发明涉及的fpga硬件加速电路逻辑容量大、速度快、并行度高,运算能力强,加速效果显著,以des秘钥遍历速度为例,每千瓦速度达到6579亿/秒;fpga芯片的低功耗,高性价比,在fpga、cpu、gpu三者中,fpga的每千瓦功耗运算性能最高,所以相同的性能其功耗最低,相比于传统计算,fpga的低能耗高性能计算优势明显;相对于通用的服务器集群(或者云计算)、gpu阵列,同样性能的fpga解决方案的经济成本要低的多,本发明的fpga加速计算卡又具有高密度、大功率的特点,因此具有很强的经济实用性。附图说明图1是实施例des解码算法流程图;图2是本发明工作方式示意图;图3是本发明的系统结构图;图4是本发明fpga计算加速卡的硬件结构图;图5是服务器机框实物图;图6是服务器板卡实物图;图7为本实施例工作方式的服务器连接示意图。具体实施方式实施例1本实施例提供一种基于大规模fpga芯片的计算加速系统,包含服务器及与服务器连接的fpga计算加速卡;服务器,用于发送待计算数据至fpga计算加速卡,以及用于读取fpga计算加速卡加速计算后得到的结果数据;fpga计算加速卡,用于利用服务器发送的待计算数据进行相应的加速计算,得到结果数据。本实施例的服务器包含电源模块、数据分发及回收模块、接口模块、加速模块以及相应的业务分发模块;其中电源模块,用于提供服务器所需电能;数据分发及回收模块,用于分发和回收数据计算结果;接口模块,用于与fpga计算加速卡进行数据传输:用于发送待计算数据至fpga计算加速卡,以及将fpga计算加速卡加速计算后的结果数据传输至服务器;加速模块以及相应的业务分发模块,用于加速处理数据的分发及回收;fpga计算加速卡包含数据通讯接口、多颗fpga芯片以及与fpga芯片分别一一对应连接的存储器;接口模块和数据通讯接口均可采用usb接口,fpga芯片可采用xilinxspartan-6芯片,存储器可采用ddr3芯片。数据通讯接口,用于与服务器进行数据传输:用于接收服务器发送的待计算数据,以及将fpga计算加速卡加速计算后的结果数据传输至服务器;fpga芯片,用于加速计算服务器发送的待计算数据;存储器,用于存储服务器发送的待计算数据,以及fpga计算加速卡加速计算后的结果数据。具体实施例如下:本实施例涉及的高性能可重构服务器包含10块fpga计算卡,每块含12颗xilinxspartan-6芯片,共120颗,10块板卡可以灵活配置;每颗fpga芯片都配备512mbdram内存;单块计算卡功率达到120瓦,整机功率为1475瓦;数据通信接口采用usb3.0接口;机器物理尺寸为标准6u机箱;支持集群工作方式,一套设备10块计算卡,可以多套设备并行工作,性能线性增强。在使用中,本系统主要负责专用计算,它必须由其它主机进行控制。一台主机可以控制多台服务器。主机与服务器之间通过usb接口进行通信。主机侧提供java、c++语言api接口与服务器进行交互,以加载ip软核、控制、状态检测和数据传输等等。将服务器通过usb连接到linuxhost上,即可使用本系统。主要有两种使用方式,一种是已经有开发完毕的大数据应用(电力大数据计算应用),直接在host上运行即可,host会自动将计算任务交给高性能计算平台计算。对于第一种使用方式,在预先配置后环境后,直接在host上运行专门开发的电力大数据的软件即可。还有一种使用方式是直接使用底层的api,进行各种应用开发。这种使用方式使用sdk,直接操纵计算加速系统。更适合于有专门研发人员的单位。结合附图1介绍一种利用本发明实现des解密加速方法:des(dataencryptionstandard)是发明最早的最广泛使用的分组对称加密算法。des算法的入口参数有三个:key、data、mode。其中key为8个字节共64位,是des算法的工作密钥;data也为8个字节64位,是要被加密或被解密的数据;mode为des的工作方式,有加密和解密两种方式。des使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64位的分组大小。这是一个迭代的分组密码,使用称为feistel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。des使用16个循环,使用异或,置换,代换,移位操作四种基本运算。下面使用本发明对des解密算法进行加速设计:1、对需要加速des解密算法进行分析,识别出其中可以进行加速计算的部分。2、提取加速部分,设计成对应算法的加速ip软核。ip软核采用多核并行和多级流水的方式进行优化。3、确定ip软核输入输出数据格式,即定义输入输出数据格式,明确其中的类型、长度等属性,例如:类型(1字节)数据长度(2字节)原始数据input256rawdata4、整合fpga加速计算结果,完成算法加速的设计。本发明使用fpga硬件加速,可通过sdk直接操纵设计完成的加速算法,此工作方式原理如附图2所示。系统整体结构图如附图3所示。一般来说,解密性能与设备所含的fpga计算卡数量线性成正比,计算卡越多时间越短。本发明涉及的高性能服务器包含10块fpga计算卡,每块含12颗xilinxspartan-6芯片,共120颗,10块板卡可以灵活配置;单芯片fpga(spartan6)破解速度达到80.6亿次/秒。本实施例的fpga加速计算卡结构如附图4所示,主要由12颗负责加速计算的fpga芯片(spartan-6lx150)和1颗用于管理的fpga芯片(spartan-6lx150t)组成。这12颗fpga芯片,通过内部总线连接在一起,各自连接512m的内存芯片,这些内存芯片主要用于存储计算过程中产生的中间临时数据和输入输出数据;而单独的管理fpga芯片专门用于管理和控制整块计算卡运行,如控制每颗计算fpga芯片的软核加载,数据的输入输出,状态查询等。其中用到的可重构服务器机框和可重构服务器板卡实物分别如附图5和6所示。此外,本发明还支持集群工作方式,一套设备10块计算卡,可以多套设备并行工作,性能线性增强;采用多设备自主协同解密,成倍减少解密时间,支持分钟级解密性能。集群工作方式如附图7所示。经过实测,通过本系统加速的des解密速度为0.9672×1012次/秒。除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1