OPTION_5:HP
移动互联的高速发展给数据中心带来了巨大的功耗压力。目前,数据中心开发人员主要通过易于编程的多核CPU和GPU来开发应用,如密钥加速、图像识别、语音转录、加密和文本搜索等。但在赛灵思(Xilinx)公司亚太区销售与市场副总裁杨飞看来,当前CPU和GPU都遇到了单位功耗性能的瓶颈壁垒,要在1U/2U同等机架上维持同样功耗难度非常大,那种试图实现既易于编程,又同时具有低功耗、高吞吐量和最低时延功能的想法是不现实的。
硬件加速方案哪家强?
最近,赛灵思同瑞士苏黎世联邦理工学院(ETH Zurich)联合开展的一系列研究发现,基于FPGA 的应用加速相比CPU/GPU方案,单位功耗性能可提升25倍,而时延则缩短了50到75倍,与此同时还能实现出色的I/O集成(PCIe、DDR4 SDRAM接口、高速以太网等)。换言之,FPGA 能在单芯片上提供高能效硬件应用加速所需的核心功能,并同时提供每个开发板目标功耗低于25W的解决方案。
百度日前在美国加州圣何塞举行的2014 年热门芯片研讨会上也公布了支持性调查结果,结论如下:
●中端FPGA能够实现375 GFLOPS的性能,功耗仅为10-20W
●基于FPGA的加速器可部署在所有类型的服务器中。
●和CPU和GPU相比,FPGA在深度神经网络(DNN)预测系统中性能更加出色。DNN系统用于语言识别、图像搜索、OCR、面部识别、网页搜索以及自然语言处理等各种不同应用。
F1:加速搜索算法对比
“这一革命性方案的诞生完全归功于赛灵思日前推出的针对OpenCL、C和C++的SDAccel开发环境,将单位功耗性能提高达25倍,从而利用FPGA实现数据中心应用加速。”杨飞说,此前FPGA用于应用加速的最大问题在于编程,因为数据中心应用开发人员不希望采用以硬件为中心的RTL流程,他们所需要的是单位功耗性能更高、完全软件的开发环境和易于升级的设计。但这次,SDAccel做到了。
第二页:SDAccel实现的三个“首次”
第三页:在FP GA上首次实现完全类似CPU/GPU的开发体验
{pagination}
SDAccel实现的三个“首次”
SDAccel开发环境为数据中心应用开发人员提供了完整的FPGA软硬件解决方案:包括可高效利用片上FPGA资源的快速的、架构优化的编译器;熟悉的软件开发流程——其带有用于代码开发、特性分析与调试的Eclipse集成设计环境(IDE),可提供类似于CPU/GPU的工作环境;以及针对不同数据中心应用而优化的动态可重配置加速器,能在类似CPU/GPU运行时间环境中即时更换。
F2:SDAccel开发环境包括架构优化编译器、库、调试器以及特性分析器,可提供类似CPU或GPU的编程体验
数据中心开发人员只需将FPGA插入数据中心服务器PCIE插槽中,然后就可以利用SDAccel环境进行开发了。运行过程中应用能让不同处理模块在FPGA中即时替换,且不会干扰服务器CPU和FPGA之间的连接,从而实现不间断的应用加速。
首款针对OpenCL、C和C++的架构优化编译器
SDAccel的架构优化编译器相对CPU或GPU,单位功耗性能提高达25倍,相对其它FPGA解决方案,性能和资源效率提高3倍。SDAccel采用了已被1,000多名程序员广泛使用的基础编译器技术。SDAccel充分利用该编译器的功能,使软件开发人员能够利用新的或现有的OpenCL、C和C++代码创建高性能加速器,并针对计算搜索、图像识别、机器学习、编码转换、存储压缩和加密等各种数据中心应用中的存储器、数据流和流水线技术进行了精心优化。
杨飞向媒体展示了用两个加速器测试标准(压缩标准、加密标准)对手动编码RTL、SDAccel以及市场上类似方案生成结果。数据显示,在压缩标准测试中,SDAccel生成的硬件加速器比同类竞争工具生成的加速器速度高3倍多,尺寸小3倍,占位面积及吞吐量与手动优化的RTL实现方案旗鼓相当甚至更优。在加密标准测试中,SDAccel生成的硬件加速器比同类竞争工具生成的加速器速度快1.2倍,而面积小4倍,甚至比用RTL手动编码生成的加速器还快20%。
F3:与同类FPGA效果对比(1)
F4:与同类FPGA效果对比(2)
第三页:在FPGA上首次实现完全类似CPU/GPU的开发体验
{pagination}
在FPGA上首次实现完全类似CPU/GPU的开发体验
借助SDAccel,开发人员能够使用其熟悉的工作流程优化应用,而且即便之前没有FPGA使用经验,也能受益于FPGA平台的优势。集成设计环境(IDE)不仅可提供编码模板和软件库,而且还能对各种开发目标进行编译、调试和特性分析,如在X86平台上仿真、使用快速仿真进行性能验证以及在FPGA处理器上进行本地执行等。IDE可在数据中心用FPGA平台上执行应用。该平台配套提供面向所有支持开发目标的自动仪器插入功能。此外,SDAccel还经过精心设计,使CPU/GPU开发人员能够轻松将其应用迁移到FPGA上,同时还可在他们熟悉的工作流程中维护和复用OpenCL、C和C++代码。
综合全面的SDAccel环境包括编程器用IDE、基于C语言的FPGA优化库,以及数据中心用现成商用(COTS)平台。
SDAccel库包括用于高性能低功耗实现方案的内置OpenCL函数、DSP、视频以及线性代数库。针对特定领域加速,赛灵思联盟合作成员Auviz Systems提供了优化的OpenCV和BLAS OpenCL兼容型软件库。原有的COTS成员包括Alpha Data、Convey、Pico Computing,预计2015年年初还将增加更多成员。
F5:面向程序员的完整软硬件开发平台
在FPGA上首次实现完全与CPU/GPU的运行时间体验
SDAccel能够支持带有多个程序和类似CPU/GPU按需可加载计算单元的应用。与CPU/GPU类似,SDAccel能够保持程序转换过程中的系统正常工作。作为业界唯一能够创建可在应用运行过程中加载新加速器内核的FPGA计算单元的环境,在整个应用执行过程中,存储器、以太网、PCIe和性能监控器等关键系统接口和功能均保持工作状态。即时可重配置的计算单元可让多个应用共享FPGA加速器。例如通过对运行系统编程,可支持图像搜索、视频转码和图像处理之间的切换。
F6:首次在FPGA上提供CPU/GPU运行时间体验
本文属于《电子工程专辑》网站作者原创,谢绝转载。