本文引用自胡雷钧,陈乃刚,李健,等编写的FPGA异构计算平台及其应用,作者团队来自浪潮集团高效能服务器和存储技术国家重点实验室的主要研究人员。当前大规模数据中心面临的挑战随着芯片工艺技术发展到10nm阶段,摩尔定律遇到瓶颈,单芯片计算能力的纵向扩展受到限制,处理器单核心的计算能力接近极限

首页 > 技术 > 正文

深度|FPGA异构计算平台及其应用

2016-08-05 10:15 来源:电力信息与通信技术 作者: 胡雷钧 等

本文引用自胡雷钧,陈乃刚,李健,等编写的FPGA异构计算平台及其应用,作者团队来自浪潮集团高效能服务器和存储技术国家重点实验室的主要研究人员。

当前大规模数据中心面临的挑战

随着芯片工艺技术发展到10nm阶段,摩尔定律遇到瓶颈,单芯片计算能力的纵向扩展受到限制,处理器单核心的计算能力接近极限,使其无法在保持功耗基本不变的情况下实现性能的大幅提升,通用处理器在计算性能和能效方面越来越无法满足日益庞大和多样化的数据处理需求。

当前新型企业计算形式如深度学习等对数据中心服务器的能耗和计算性能提出更大的挑战,使得数据中心逐渐向集中化、规模化发展,通过增大集群节点规模实现性能的提升。然而数据中心横向扩展带来的超高能耗严重影响了数据中心业务的可持续发展,数据中心能效问题益发严重。2015年,中国数据中心的年耗电量占全国总能耗的2%,对于大多数数据中心,服务器能耗占比50%以上,数据中心的散热开支已占总电费的50%-60%,使得数据中心的运行成本高昂。因此,如何提高数据中心处理器的能效是当前大规模数据中心面临的挑战。

FPGA与CPU相配合的异构计算是解决当前数据中心能效问题的有效手段

异构计算作为一种特殊形式的并行计算方式,能够根据每个计算子系统的结构特点为其分配不同的计算任务,在提高服务器的计算性能、能效比和计算实时性方面体现出了传统架构所不具备的优势,因此采用异构计算技术成为了解决数据中心能效问题的重要手段。目前,将GPU、FPGA等专用芯片作为加速设备与CPU相配合形成异构计算平台能够在降低服务器功耗的基础上提升其计算性能,成为了学术界和工业界共识。但是,GPU高能耗、小缓存等特点限制了其能效的提升与应用范围。

相比较于GPU,FPGA在异构计算领域具有更多的优势。FPGA是一种可编程的专用处理器,由可编程的逻辑块和互联网络组成,可在不同逻辑执行多个线程,实现流水线并行处理,具有较强的并行处理能力。在高性能计算应用中,FPGA专用逻辑电路通过并行计算硬件电路直接执行,无需遵循冯诺伊曼存储程序执行的结构。因此,与GPU相比,FPGA具备更强大的计算能力和更低的功耗。

FPGA异构计算平台的关键技术

1)软硬件划分与协同

FPGA板卡采用自动化的平台映射技术,实现了板卡设计硬件计算逻辑与OpenCL程序的协同开发。该平台首先在主机端进行用户程序的开发和任务分配,然后将用户程序发送到OpenCL主机上进行算法的优化设计和综合,综合成功后的逻辑网表通过Kernel调用进入到FPGA板卡平台上进行验证,完成开发程序向FPGA板卡的高效移植。FPGA板卡的硬件逻辑设计依赖于平台厂商提供的平台驱动和外围设备,实现了FPGA异构大数据处理平台的软硬件划分和协同。

图1软件划分与协同平台

2)多机系统管理

FPGA异构计算平台通过设置全局资源管理器来负责整个系统的资源管理与分配。全局资源管理器由调度器和节点控制器组成,调度器根据系统的容量、队列等条件将计算机节点的内存、CPU网络等资源统一分配到节点控制器,节点控制器负责启动和监控运行在该计算节点上的应用程序,并向全局资源管理器返回该节点的资源占用和任务执行情况。每个计算节点服务器中,FPGA板卡负责算法的计算部分,CPU负责服务器内子任务的管理部分,其任务分配策略可根据不同应用进行灵活定制。多机系统管理机制的引入提高了系统的资源利用率和运算速率。

3)高可用性

大数据处理系统中,工作负载的所有指令和数据都存储在内存中,要求内存访问具有高度的可靠性和灾难恢复功能。该平台中FPGA板卡采用具有8位ECC校验码的DDR4作为片上存储,让系统能够实时检测和纠正单比特错误,并检测多比特错误,防止系统使用破损数据,提高了内存访问的可靠性。另外,该平台中还设计了针对FPGA的故障诊断与容错管理系统。平台设置一台故障检测服务器,实时监控检测各个服务器中配置的FPGA板卡的运行状态。当某个FGPA板卡工作异常时,其所属服务器把该故障信息发送给故障检测服务器,故障检测服务器通知任务管理模块进行任务重新调度,保证系统可持续正常工作。同时,故障检测服务器可以基于故障信息对一个失效的FPGA板卡进行软重启或硬重启,以使得系统恢复更多的可用FPGA板卡,避免系统性能的过早降级。

4)动态可重构

FPGA异构计算平台具有动态可重构的特点。在可重构系统中,可以通过软件控制动态改变硬件电路的结构,使得系统能够兼顾硬件计算的高性能和软件编程的灵活性。基于FPGA的动态可重构能够实现逻辑资源的时分复用,具有节约硬件资源和增强系统灵活性的特点。FPGA可重构异构部件架构示意图如图2所示。

图2FPGA可重构异构部件架构示意图

FPGA应用逻辑划分为通用的静态逻辑和专用的动态逻辑,预先配置FPGA静态逻辑,建立FPGA与CPU的数据通路,高速接口完成目标应用在线切换,实现毫秒级在线动态逻辑重构。能够在系统运行状态下改变可重构模块的逻辑功能,并维持配置过程中系统正常工作。

5)高层次综合编程模型

随着FPGA等系统级芯片的出现,软硬件协调和系统设计变得越来越重要。虽然FPGA异构计算平台在许多应用领域表现出卓越的性能功耗优势,却由于其复杂的设计流程而在通用计算领域未获得广泛应用。面向通用计算的OpenCL高层次综合技术的出现及逐渐成熟使得FPGA算法设计更加易用和高效,真正使得工程师无需关心硬件底层的设计细节,在较高的抽象层次上进行设计。

OpenCL应用程序由主机程序(host)和内核程序(kernel)两部分组成。内核程序采用类C语言的OpenCL语言进行编写,可通过编译平台转换成FPGA上的逻辑电路,并将其作为FPGA的配置数据输出。运行时,主机端的程序通过OpenCL调用运行库,要求已被写入配置数据的FPGA进行内核处理。因此,程序员并不需要具备硬件设计知识即可进行FPGA开发。基于OpenCL实现FPGA逻辑的系统模块框图如图3所示。

图3基于OpenCL实现FPGA逻辑的系统模块框图

系统中的每个内核流水线可以同时应用于多个执行通路,即可以通过算法级的描述进行流水线复制,形成多流水线架构。相较于采用Verilog、VHDL等硬件描述语言的传统FPGA开发方法,基于OpenCL的FPGA开发避免了硬件设计知识依赖,可缩短开发周期10倍以上。2名软件开发人员约3个月时间即可推出新产品。

解决的问题和意义

FPGA异构计算是一种基于FPGA的并行计算方式,它充分利用FPGA芯片的低功耗、动态可重构、计算延时低等特点,根据每个计算子系统的结构特点为其分配不同的计算任务,是提升数据中心服务器计算性能和降低功耗的重要手段。

深度学习算法加速:浪潮与第三方合作,利用FPGA异构计算平台开展了深度学习DNN语音识别算法加速研究。该研究的实测结果表明,FPGA具有明显的性能功耗比优势,基于AlteraFPGA的DNN运行时间相比于基于IntelXeonE5-2650V2双路CPU性能加速2.871倍,而FPGA功耗为只有CPU的15.7%。在DNN实际运行测试中,FPGA可实现30GFlops/W的高性能功耗比,能大大节省应用功耗成本。

Gzip压缩:分别用基于OpenCL的FPGA平台、基于Verilog的FPGA平台以及CPU平台实现gzip压缩算法的实验结果显示,基于FPGA异构计算平台的gzip算法的吞吐量为3.2GB/s,相比于CPU平台具有10倍的性能提升,基于OpenCL的FPGA平台在吞吐量上相对于IBM用Verilog开发的FPGA平台仅提升了6%,但在开发周期上有3倍的提升,整体性能提高。

电力系统:在电机和电机控制方面,当前电机控制系统趋于多样化复杂化,高端DSP并不适用于需要同时处理高精度时间运算以及面向任务运算的系统。FPGA的并行计算和可编程特性能够满足上述需求,其并行特性支持电机控制系统构建模块的集成。设计人员利用FPGA实现多种嵌入式处理器,独立控制每一个子系统,FPGA正逐渐取代DSP对复杂的电机控制算法进行并行运算,提高了电力控制的灵活性和整体性能。在电机驱动系统中采用基于FPGA平台实现的速率可变驱动器(VSD)来替代传统的驱动器能够显著提高效率,能耗节省了近40%。

FPGA异构计算是一种基于FPGA的并行计算方式,它充分利用FPGA芯片的低功耗、动态可重构、计算延时低等特点,根据每个计算子系统的结构特点为其分配不同的计算任务,是提升数据中心服务器计算性能和降低功耗的重要手段。本文从硬件体系结构和软件编程模型两个方面阐述了FPGA异构计算平台的设计理念和关键技术,并通过应用实践阐明了FPGA异构计算平台在提高服务器的计算性能和能效比方面具有的明显优势,为FPGA异构计算平台的进一步研究与发展提供了理论依据。

原标题:FPGA异构计算平台及其应用

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。
展开全文
打开北极星学社APP,阅读体验更佳
2
收藏
投稿

打开北极星学社APP查看更多相关报道

今日
本周
本月
新闻排行榜

打开北极星学社APP,阅读体验更佳