基于FPGA的OpenCL数据中心服务器移除开发障碍
0赞By Devadas Varma and Tom Feist, Xilinx
(Excerpted from the latest issue of Xcell Journal)
任务关键型企业的服务器常使用特定的硬件加速应用,包括图像处理单元(GPU)和数字信号处理器(DSP)。Xilinx全新的SDAccel开发环境通过给开发者提供熟悉的CPU/GPU环境,替代了用门电路综合的FPGA开发。
公有云如亚马逊网络服务、谷歌计算、微软Azure、Facebook和中国的百度具有巨大的图片存储库,因此需要具备快速识别图像的能力。来自谷歌公司的科学家通过将1600台计算机处理器连接成一个整体,创建了一种可自行在网络上学习的机器学习神经网络,这是迄今为止最大的神经网络之一。这项研究是新一代计算机科学的代表,旨在于庞大的数据中心利用可用的大型计算机集群。
中国最大的搜索引擎专家百度公司也投入到深度神经网络处理的开发,以解决在语音识别、图像搜索和自然语言处理过程中遇到的问题。百度公司反应迅速,他们认为神经网络反向传播算法用于在线预测时,FPGA解决方案远比CPU和 GPU更容易,且同时还可以降级功率(注释:百度公司的任武博士是GPU应用先驱。他在2015年度嵌入式视觉峰会中发表主题演讲。他认为,使用百度基于GPU的深度学习CNN在分析ImageNet大型视觉识别数据时精准度极高,处于世界领先水平。详细信息参考“百度引领人工智能基础”及百度的官方文章。)
新一代28nm和20nm高集成度FPGA系列如:Xilinx系列 7和UltraScale设备,使数据中心服务器上的FPGA动态集成转变为主机卡和线卡。其每瓦特性能很容易达到20x,相当于CPU或GPU。同时,在一些程序中,其还能提高高达50x 至75x的延迟改进,这甚至超过了传统的CPU。然而,如果团队资源有限或没有FPGA硬件资源,那么过渡到FPGA则面临挑战,因为想充分利用这些设备,需要具备RTL(VHDL 或Verilog)开发经验。
OpenCL是编写计算程序的框架,其执行跨越由CPU、GPU、DSP、FPGA组成的异构平台和其它处理器。OpenCL包括编程语言(基于C99)和应用程序编程接口(API),以在目标设备中控制平台及执行程序。
Xilinx新的 SDAccel 环境能为数据中心程序开发者提供完整的基于FPGA的硬件和OpenCL软件。SDAccel包括一个快速的架构优化编译器,其可基于Eclipse的代码开发、分析和调试集成设计环境(IDE),在常见的软件开发流程中有效使用片上FPGA资源。IDE则能提供类似于CPU/GPU的工作环境。此外,SDAccel利用Xilinx的动态可重构技术,可以优化不同程序的加速器内核,使程序不断地进行交换。
SDAccel编译器能使高端CPU提升高达10x的性能,且GPU功耗只占十分之一,同时维持代码兼容性和传统的软件编程模型,方便应用迁移且节约成本。
关于实际计算工作负载如嵌套数据通路复杂的视频处理器,很显然,FPGA结构固有的灵活性使之相比CPU和GPU固定的架构更具有性能和功耗优势。正如以下图表的基准所示,SDAccel编写的FPGA方案胜过相同代码编写的CPU方案,而且其比GPU更具性能优势。
(Auviz使用AuvizCV库执行的基准)
注:本文节选自Xcell Journal最新期刊。
原文链接:
http://forums.xilinx.com/t5/Xcell-Daily-Blog/Removing-the-Barrier-for-FP...