一种fpga异构加速计算系统的制作方法

文档序号:10653808阅读:834来源:国知局
一种fpga异构加速计算系统的制作方法
【专利摘要】本发明公开了一种FPGA异构加速计算系统,包括CPU及与CPU连接的FPGA异构加速卡;CPU,用于发送源操作数及控制信息至FPGA异构加速卡,以及用于读取FPGA异构加速卡加速计算后得到的结果数据;FPGA异构加速卡,用于利用控制信息对源操作数进行相应的加速计算,得到结果数据。本申请公开的上述技术特征实现了CPU+FPGA的异构加速计算方案,其中,单个FPGA异构加速卡功耗一般在25瓦左右,小于单个GPU板卡的功耗,且单个FPGA异构加速板卡的能效一般在50Gflops/W以上,高于单个GPU板卡的能效,因此,上述FPGA异构加速计算系统能够降低系统功耗,提高系统能效。
【专利说明】
一种FPGA异构加速计算系统
技术领域
[0001]本发明涉及异构计算技术领域,更具体地说,涉及一种FPGA异构加速计算系统。
【背景技术】
[0002]异构计算被视为计算机处理器继单核、多核之后的第三个时代,将采用不同类型的体系架构协同计算、彼此加速,从而突破由芯片工艺技术发展接近极限导致摩尔定律接近失效,成为CPU(Central Processing Unit,中央处理器)纵向发展的瓶颈。
[0003]现有技术中采用的异构加速计算架构为CPU+GPU方案,即通过CPU及GPlKGraphicsProcessing Unit,图形处理器)板卡的组合,由CPU发送计算指令及源操作数,由GPU板卡利用计算指令对源操作数实现相应的计算,来实现对于数据的加速处理。但是,现有技术中单个GPU板卡功耗一般在250瓦以上,且单个GPU板卡的能效一般在30Gflops/W左右,因此,导致CPU+GPU方案在功耗较大的同时能效较低。
[0004]综上,现有技术中采用的异构加速计算架构(CPU+GPU方案)存在功耗较大且能效较低的问题。

【发明内容】

[0005]本发明的目的是提供一种FPGA异构加速计算系统,以解决现有技术中采用的异构加速计算架构(CPU+GPU方案)存在的功耗较大且能效较低的问题。
[0006]为了实现上述目的,本发明提供如下技术方案:
[0007]—种FPGA异构加速计算系统,包括CPU及与所述CPU连接的FPGA异构加速卡;
[0008]所述CPU,用于发送源操作数及控制信息至所述FPGA异构加速卡,以及用于读取所述FPGA异构加速卡加速计算后得到的结果数据;
[0009]所述FPGA异构加速卡,用于利用所述控制信息对所述源操作数进行相应的加速计算,得到所述结果数据。
[0010]优选的,所述FPGA异构加速卡包括OpenCL Kernel区域和与所述OpenCL Kernel区域连接的BSP区域;
[0011]所述OpenCL Kernel区域,用于对所述源操作数进行加速计算;
[0012]所述BSP区域,用于为所述FPGA异构加速卡进行数据分配以及实现所述FPGA异构加速卡与所述CHJ的连接。
[0013]优选的,所述BSP区域包括互连总线,所述BSP区域与所述OpenCL Kernel区域通过所述互连总线连接。
[0014]优选的,所述BSP区域包括PCIe模块,所述PCIe模块分别与所述互连总线及所述(PU连接,用于实现所述FPGA异构加速卡与所述CPU的连接。
[0015]优选的,还包括存储器,所述存储器用于存储所述源操作数,以供所述FPGA异构加速卡进行加速计算时获取;
[0016]对应的,所述BSP区域包括存储控制器,所述存储控制器分别与所述互连总线及所述存储器连接,用于实现对所述存储器的控制。
[0017]优选的,所述BSP区域包括DMA及缓存,所述DMA及所述缓存均与所述互连总线连接。
[0018]优选的,所述BSP区域包括接口,所述接口与所述互连总线连接,为外界部件提供接入通道。
[0019]优选的,还包括配置Flash,所述配置Flash与所述接口连接。
[0020]优选的,还包括晶振,所述晶振与所述FPGA异构加速卡连接,用于对所述FPGA异构加速卡实现时钟功能;
[0021]对应的,所述BSP区域包括时钟模块,所述时钟模块用于在所述晶振的作用下实现时钟功能。
[0022]优选的,所述BSP区域还包括重置清零模块,所述重置清零模块用于实现所述FPGA异构加速卡内数据的重置清零功能。
[0023]本发明提供的一种FPGA异构加速计算系统,包括CPU及与所述CPU连接的FPGA异构加速卡;所述CPU,用于发送源操作数及控制信息至所述FPGA异构加速卡,以及用于读取所述FPGA异构加速卡加速计算后得到的结果数据;所述FPGA异构加速卡,用于利用所述控制信息对所述源操作数进行相应的加速计算,得到所述结果数据。本申请公开的上述技术特征实现了CPU+FPGA的异构加速计算方案,即,由CPU将控制信息及源操作数发送至FPGA异构加速卡,由FPGA异构加速卡实现对源操作数的计算,并得到结果数据,其中,单个FPGA异构加速卡功耗一般在25瓦左右,小于单个GPU板卡的功耗,且单个FPGA异构加速板卡的能效一般在50Gflops/W以上,高于单个GPU板卡的能效,因此,本申请提供的一种FPGA异构加速计算系统能够降低系统功耗,提高系统能效。
【附图说明】
[0024]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0025]图1为本发明实施例提供的一种FPGA异构加速计算系统的第一种结构示意图;
[0026]图2为本发明实施例提供的一种FPGA异构加速计算系统的第二种结构示意图;
[0027]图3为本发明实施例提供的一种FPGA异构加速计算系统中FPGA异构加速卡的结构示意图。
【具体实施方式】
[0028]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029]请参阅图1,其示出了本发明实施例提供的一种FPGA异构加速计算系统,该系统可以包括CPUl I及与CPUl I连接的FPGA异构加速卡12;
[0030]CPUl I,用于发送源操作数及控制信息至FPGA异构加速卡12,以及用于读取FPGA异构加速卡12加速计算后得到的结果数据;
[0031]FPGA异构加速卡12,用于利用控制信息对源操作数进行相应的加速计算,得到结果数据。
[0032]需要说明的是,在利用FPGA(Field — Programmable Gate Array,即现场可编程门阵列)异构加速卡进行源操作数的加速计算时,由主机端的CPU发出可执行的源操作数及与对源操作数进行的操作对应的控制信息给FPGA异构加速卡,FPGA异构加速卡接收上述数据信息,并且按照CPU发出的控制信息指示执行操作,即对源操作数进行与控制信息对应的加速计算,得到结果数据。并且,FPGA异构加速卡在得到结果数据后可以发送信息至CPU,以通知其读取结果数据,或者发送一个中断至CPU,以通知其读取结果数据,或者FPGA异构加速卡将结果数据直接发送至CPU,以完成整个操作。
[0033]本申请公开的上述技术特征实现了CPU+FPGA的异构加速计算方案,即,由CPU将控制信息及源操作数发送至FPGA异构加速卡,由FPGA异构加速卡实现对源操作数的计算,并得到结果数据,其中,单个FPGA异构加速卡功耗一般在25瓦左右,小于单个GPU板卡的功耗,且单个FPGA异构加速板卡的能效一般在50Gflops/W以上,高于单个GPU板卡的能效,因此,本申请提供的一种FPGA异构加速计算系统能够降低系统功耗,提高系统能效。
[0034]本发明实施例提供的一种FPGA异构加速计算系统,FPGA异构加速卡可以包括OpenCL Kernel区域和与OpenCL Kernel区域连接的BSP区域;
[0035]OpenCL Kernel区域,用于对源操作数进行加速计算;
[0036]BSP(board Support Package,板级支持包)区域,用于为FPGA异构加速卡进行数据分配以及实现FPGA异构加速卡与CPU的连接。
[0037]需要说明的是,BSP区域是支撑整个FPGA异构加速卡的基础功能模块,为整个FPGA异构加速卡提供数据通路和数据分配,为OpenCL Kernel区域进行加速运算提供最大并行化和流水化操作。而OpenCL Kernel区域基于OpenCL高层次编程转换成RTL逻辑电路的区域,同时也是形成加速算法运算的逻辑区域,具体来说,OpenCL Kernel区域是独立的运算区域,其基于OpenCL高级语言实现算法运算的程序,通过EDA高层次综合工具将OpenCL高级语言编写算法程序转换为可综合的RTL逻辑,由FPGA开发工具加载到FPGA异构加速卡内的OpenCL KerneI区形成加速运算部件,实现对源操作数的加速计算。从而实现FPGA异构加速卡对源操作数的加速计算。
[0038]本发明实施例提供的一种FPGA异构加速计算系统,BSP区域可以包括互连总线,BSP区域与OpenCL Kernel区域通过互连总线连接,实现数据的通讯。
[0039]另外,BSP区域可以包括PCIe模块,PCIe模块分别与互连总线及CPU连接,用于实现FPGA异构加速卡与CPU的连接。
[0040]具体来说,PCIe模块提供的高速互联接口可以使得FPGA异构加速卡与CPU之间通过PCIe链路连接,实现数据的通讯,其中,PCIe链路具体可以为PCIe3.0链路。
[0041]本发明实施例提供的一种FPGA异构加速计算系统,还可以包括存储器,存储器用于存储源操作数,以供FPGA异构加速卡进行加速计算时获取。
[0042]当上述系统包括存储器时,源操作数如果比较多,FPGA异构加速卡获得源操作数之后,可以将源操作数放置在存储器中,并在需要对存储器中的源操作数进行加速计算时由存储器中获取。从而有效解决了源操作数数量太多影响FPGA异构加速卡的工作效率的问题。另外,该存储器可以包括预设数量个DDR4(双倍速率SDRAM),预设数量可以根据实际需要进行确定。
[0043]对应的,BSP区域可以包括存储控制器,存储控制器可以分别与互连总线及存储器连接,用于实现对存储器的控制。
[0044]本发明实施例提供的一种FPGA异构加速计算系统,BSP区域可以包括DMA(直接内存存取存储器)及缓存,DMA及缓存均与互连总线连接,以在FPGA异构加速卡中数据过多时实现对于数据的存储,完善了 FPGA异构加速卡的功能。
[0045]需要说明的是,CPU对于存储器的读取及写入可以通过DMA实现,具体来说,CPU发起读操作的流程可以如下:
[0046](I)CPU的PCIe barO访问FPGA异构加速卡的DMA era,并向DMA era的地址映射表中写入其需要进行读操作的数据的地址;
[0047](2)上述PCIe barO访问DMA csr,以判断DMA是否空闲,如果是,则向DMA中写入需要进行福操作的数据的起始地址(源地址)、终止地址(目的地址)、需读取的数据长度(传输长度),并启动DMA操作等;
[0048](3)DMA Master会将存储器中需要进行读操作的地址的数据传输到PCIe的Txs端口,按照地址映射表中存储的与需要进行福操作的数据的地址对应的CHJ的地址,映射到PCIe对应的地址空间,预备通过TLP包发送到CPU;
[0049 ] (4) DMA操作完成,发出中断,CPU读取数据(即TLP包)并对其进行相应处理。
[0050]而CPU发起写操作的流程可以如下:
[0051 ] (I )CPU准备好需要发送的数据;
[0052](2)CPU的PCIe barO访问FPGA异构加速卡的DMA era,并向DMA era的地址映射表中写入需要进行写操作的地址;
[°°53] (3)上述PCIe barO访问DMA csr,判断DMA是否空闲,如果是,贝Ij写入需进行写操作的起始地址(源地址)、需要进行写操作的终止地址(目的地址)及需要进行写操作的数据长度(传输长度),并启动DMA操作;
[0054](4)DMA Master读取PCIe的Txs端口,Txs端口根据地址映射表中与写操作对应的存储器的地址,通过TLP包将需要写入的数据写入存储器中;
[0055 ] (5) DMA操作完成,发出中断,已通知CPU操作完成。
[0056]本发明实施例提供的一种FPGA异构加速计算系统,BSP区域可以包括接口,接口与互连总线连接,为外界部件提供接入通道。
[0057]其中,接口可以包括USB接口,及为外界插入USB提供接口,由此,能够实现FPGA异构加速卡与外界部件的数据通讯,完善了 FPGA异构加速卡的功能。
[0058]另外,本发明实施例提供的一种FPGA异构加速计算系统,还可以包括配置Flash,配置Flash可以与接口连接,以为FPGA异构加速卡提供闪存功能,完善了FPGA异构加速计算系统的功能。
[0059]本发明实施例提供的一种FPGA异构加速计算系统,还可以包括晶振,晶振与FPGA异构加速卡连接,用于对FPGA异构加速卡实现时钟功能;对应的,BSP区域包括时钟模块,时钟模块用于在晶振的作用下实现时钟功能。
[0060]另外,本发明实施例提供的一种FPGA异构加速计算系统,BSP区域还可以包括重置清零模块,重置清零模块用于实现FPGA异构加速卡内数据的重置清零功能。
[0061]由此,能够完善FPGA异构加速卡的功能,保证对于数据的异构加速处理的顺利实现。
[0062]当本发明实施例提供的一种FPGA异构加速计算系统,包括FPGA异构加速卡、CPU、两个DDR4、配置f lash、晶振以及能够为外界提供USB接口(S卩USB连接)时,其结构示意图可以如图2所示;而当FPGA异构加速卡的BSP区域包括PCIe模块、缓存、DMA、接口、互连总线、存储控制器、时钟模块及重置清零模块时,其结构示意图可以如图3所示。
[0063]另外需要说明的是,基于ALTERAFPGA器件设计,设计流程可以如下:
[0064](I)建立BSP区域架构,创建顶层设计,调用Board, qsys子系统,建立I/O引脚,时序约束文件等;
[0065](2)编写Board_env.xml文件,建立AOC的连接:向Altera Offline Compiler(AOC)描述一些基本信息,如板卡名称、系统类型、库等信息;
[0066](3)将搭建好的FPGA工程不能按传统的方法进行编译综合、适配,因为这一阶段还不是一个完整的设计,缺少了OpenCL Kernel区域,必须通过AOC命令编译OpenCL kernel,主要流程如下:
[0067]a、编译.cl文件(用OpenCL编写的Kernel文件),该命令会产生Kernel程序的FPGA代码,并添加到FPGA逻辑中,产生完整的工程;
[0068]b、编译逻辑综合,进行逻辑布局、布线;
[0069]C、编写时序约束文件,检查逻辑时序,如果满足时序约束,使用区域锁定BSP区域的位置固定,再利用增量编译保证每次的时序满足要求;
[0070]d、利用TCL脚本将上述结果写到编译前的工程中。
[0071]对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种FPGA异构加速计算系统,其特征在于,包括CPU及与所述CPU连接的FPGA异构加速卡; 所述CPU,用于发送源操作数及控制信息至所述FPGA异构加速卡,以及用于读取所述FPGA异构加速卡加速计算后得到的结果数据; 所述FPGA异构加速卡,用于利用所述控制信息对所述源操作数进行相应的加速计算,得到所述结果数据。2.根据权利要求1所述的系统,其特征在于,所述FPGA异构加速卡包括OpenCLKernel区域和与所述OpenCL Kernel区域连接的BSP区域; 所述OpenCL Kernel区域,用于对所述源操作数进行加速计算; 所述BSP区域,用于为所述FPGA异构加速卡进行数据分配以及实现所述FPGA异构加速卡与所述CHJ的连接。3.根据权利要求2所述的系统,其特征在于,所述BSP区域包括互连总线,所述BSP区域与所述OpenCL Kerne I区域通过所述互连总线连接。4.根据权利要求3所述的系统,其特征在于,所述BSP区域包括PCIe模块,所述PCIe模块分别与所述互连总线及所述(PU连接,用于实现所述FPGA异构加速卡与所述CPU的连接。5.根据权利要求3所述的系统,其特征在于,还包括存储器,所述存储器用于存储所述源操作数,以供所述FPGA异构加速卡进行加速计算时获取; 对应的,所述BSP区域包括存储控制器,所述存储控制器分别与所述互连总线及所述存储器连接,用于实现对所述存储器的控制。6.根据权利要求5所述的系统,其特征在于,所述BSP区域包括DMA及缓存,所述DMA及所述缓存均与所述互连总线连接。7.根据权利要求3所述的系统,其特征在于,所述BSP区域包括接口,所述接口与所述互连总线连接,为外界部件提供接入通道。8.根据权利要求7所述的系统,其特征在于,还包括配置Flash,所述配置Flash与所述接口连接。9.根据权利要求3所述的系统,其特征在于,还包括晶振,所述晶振与所述FPGA异构加速卡连接,用于对所述FPGA异构加速卡实现时钟功能; 对应的,所述BSP区域包括时钟模块,所述时钟模块用于在所述晶振的作用下实现时钟功能。10.根据权利要求3所述的系统,其特征在于,所述BSP区域还包括重置清零模块,所述重置清零模块用于实现所述FPGA异构加速卡内数据的重置清零功能。
【文档编号】G06F1/32GK106020425SQ201610365968
【公开日】2016年10月12日
【申请日】2016年5月27日
【发明人】廖红辉
【申请人】浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1