Xilinx推SDAccel架构优化编译器 用 C 和 C++编程突破能耗桎梏

赛灵思公司亚太区销售与市场副总裁杨飞

在不久前召开的2014国际超算大会(Super Computing 2014)上,赛灵思公司(Xilinx)推出针对OpenCL、C和C++的SDAccelTM开发环境。SDAccel编译器相比高端CPU性能提高达10倍,而功耗仅为GPU的1/10,同时能保持代码的兼容性和一个传统的软件编程模式,以便于应用移植并节约成本。根据客户基准,SDAccel编译器相比同类竞争FPGA解决方案,性能和资源效率均提升了3倍。SDAccel编译器自动生成的设计甚至比手动编码的RTL设计方案的性能还高,在某些情况下可高出20%之多。对于SDAccel对行业的变革和影响,ZDNet记者特别采访了赛灵思公司亚太区销售与市场副总裁杨飞。

杨飞告诉记者,在赛灵思成立迄今的30年中,一直致力于硬件的软件化工作。SDAccel是业界首款支持OpenCL、C和C++内核任意组合的架构优化编译器,在FPGA上首次实现了完全类似CPU、GPU的开发和运行时间体验。在记者的理解中,SDAccel可以提供一个全可编程的环境,让硬件工程师和软件工程师配合进行软件开发工作,编程人员不需要懂得FPGA,也可以通过OpenCL、C和C++等类似x86的编程环境来进行编程。

SDAccel采用了已被1,000多名程序员广泛使用的基础编译器技术。SDAccel充分利用该编译器的功能,使软件开发人员能够利用新的或现有的OpenCL、C和C++ 代码创建高性能加速器,并针对计算搜索、图像识别、机器学习、编码转换、存储压缩和加密等各种数据中心应用中的存储器、数据流和流水线技术进行了精心优化。

借助SDAccel,开发人员能够使用其熟悉的工作流程优化应用,而且即便之前没有FPGA使用经验,也能受益于FPGA平台的优势。集成设计环境(IDE)不仅可提供编码模板和软件库,而且还能对各种开发目标进行编译、调试和特性分析,如在X86平台上仿真、使用快速仿真进行性能验证以及在FPGA处理器上进行本地执行等。IDE可在数据中心用FPGA平台上执行应用。该平台配套提供面向所有支持开发目标的自动仪器插入功能。此外,SDAccel还经过精心设计,使CPU/GPU开发人员能够轻松将其应用迁移到FPGA上,同时还可在他们熟悉的工作流程中维护和复用OpenCL、C和C++代码。

提及推出SDAccel的动因,杨飞表示,从CPU到GPU再到DSP、FPGA,业界一直在追求性能提高的同时降低功耗的方法。以数据中心为例,运维人员总是不断在寻求更高的服务器性能。目前,他们主要是通过易于编程的多核CPU和GPU来开发应用,但CPU和GPU都遇到了单位功耗性能的瓶颈壁垒。从事海量数据中心应用开发(如密钥加速、图像识别、语音转录、加密和文本搜索等)的设计人员既希望GPU易于编程,同时又希望硬件具有低功耗、高吞吐量和最低时延功能。然而,多核CPU和GPU加速器在可扩展性上存在严重的问题:客户希望用简单的全高度插入式PCIe开发板作为数据中心服务器的应用加速器。这种开发板经配置可运行高功率图形卡,但客户同时希望功耗不超过25W,以便最大化可扩展性并最小化总功耗。赛灵思在考虑通过改变软件开发环境来实现的方法,SDAccel的架构优化编译器相对CPU或GPU,单位功耗性能提高达25倍,相对其它FPGA解决方案,性能和资源效率提高3倍。

在提高性能、降低功耗的优势之外,SDAccel因为对可编程环境的革新势必也会提高编程人员的工作效率。按照传统的软件开发流程,软件算法要由软件开发人员交给硬件开发人员去进行编译,这导致需要6-9个月的开发周期,而现在,硬件开发人员可以直接在软件环境下去进行编写。还是以数据中心为例,这一变革将导致过去传统的2个月的数据中心交付时间转为2-4周,这是一个巨大的变革。

而与CPU、GPU类似,SDAccel对于FPGA解决方案的独特之处,在于能够保持程序转换过程中的系统正常工作。SDAccel是业界唯一能够创建可在应用运行过程中加载新加速器内核的FPGA计算单元的环境。在整个应用执行过程中,存储器、以太网、PCIe®和性能监控器等关键系统接口和功能均保持工作状态。即时可重配置的计算单元可让多个应用共享FPGA加速器。例如通过对运行系统编程,可支持图像搜索、视频转码和图像处理之间的切换。

来源:ZDNet软件频道 作者:张晓楠