赛灵思SDAccel环境能在FPGA上提供类似CPU的开发与运行时间体验,减轻数据中心设计负担。
作者:
Devadas Varma,
赛灵思公司SDAccel和Vivado高层次综合事业部高级工程总监。
Tom Feist
赛灵思公司设计方法市场营销部高级总监
从支持中小机构运作的服务机房,到支持美国大型企业和提供云计算服务接入的企业级数据中心,数据中心在现代经济中发挥着骨干作用。根据自然资源保护委员会的统计[IY1] ,数据中心是美国用电量最大、增长最快的用电大户之一。2013年美国数据中心估计耗电约910亿千瓦时,超过纽约市全部居民用电的两倍以上,而且到2020年用电量有望达到1400亿千瓦时[1]。很明显,降低用电对于扩展数据中心,提升可靠性和降低运营成本具有重要意义。
根据具体的服务器应用,数据中心各个不同。许多服务器长期不间断运行,使得硬件可靠性和耐用性极为重要。虽然服务器可以使用商用计算机部件组装,但关键任务型企业级服务器往往使用以硬件加速为目的的专用硬件,如图形处理单元(GPU)和数字信号处理器(DSP)。现在许多企业寻求使用现场可编程门阵列(FPGA),因为FPGA是一种高度并行的架构,而且功耗相对较低。赛灵思的新款SDAccelTM开发环境为开发人员提供了一种熟悉的CPU或类似CPU的环境,避免编程给FPGA在此类应用中使用时造成的障碍。
改善性能功耗比
Amazon Web服务、Google Compute、Microsoft Azure和中国的百度等公有云拥有巨大的图片库,需要极快的图像识别能力。在一个实现方案中,谷歌科技人员将16,000个计算机处理器连接为一个实体,创建出了一个极为庞大的机器学习神经网络,然后投放到互联网上,让其自主学习。这项研究是新一代计算机科学的代表。这一代计算机科学以充分利用大型数据中心中的大量计算机集群的运算能力为目标。潜在应用包括让图像搜索、语音识别和机器语言翻译能力迈上新的台阶。但是对数据中心设计而言,仅依靠充分利用CPU并非是一种高能效的做法。要提高速度、降低功耗,还需要其他解决方案。
中国最大的搜索引擎百度借助于深度神经网络处理技术来解决语音识别、图像搜索和自然语言处理方面的问题。百度迅速判定,如果在在线预测中使用神经网络反向传播算法,FPGA解决方案在降低功耗的同时,还能以比CPU/GPU简便得多的方式进行扩展[2]。
因在数据中心服务器的主机卡和线路卡中集成了FPGA,新一代28nm和20nm高集成度FPGA系列(如赛灵思7系列和UltraScaleTM器件)正在改变数据中心动态发展状况。性能功耗比可以轻松达到CPU/GPU的20倍以上,同时在某些应用中与传统CPU相比,时延可降低50至75倍。
但是对FPGA硬件资源有限或缺乏的开发团队而言,由于需要使用RTL(VHDL或Verilog)开发专业知识才能充分发挥FPGA的性能优势,因此过渡到FPGA难度较大。为解决这一问题,赛灵思已引入开放计算机语音(OpenCLTM)作为减轻编程负担的方法。
OpenCL代码移植性
由苹果公司开发并经Khronos集团推广的OpenCL [3]有助于异构设计中的CPU、GPU、FPGA和DSP模块集成。为增强用于编写可在异构平台上运行的程序的OpenCL框架,赛灵思等业界领先的CPU、GPU和FPGA厂商都在为这种语音及其API的开发做出努力。
SDAccel编译器相对CPU性能提高10倍,且功耗仅为GPU的1/10。
OpenCL被CPU/GPU/FPGA厂商、服务器OEM厂商以及数据中心管理人员等日益广泛地接受,说明各方都已经认识到一个严峻的现实:用于单处理器架构的C语言编译器在服务器机架内部只能实现小幅总体功耗降低,即便是在处理器采用低于20nm的工艺技术并添加特殊省电状态后依然如此。
OpenCL是一种用于编写可在由CPU、GPU、DSP、FPGA及其它处理器构成的异构平台上运行的程序的框架。OpenCL包含基于C99的编程语言和应用编程接口(API),以控制平台和在目标器件上执行程序。OpenCL使用基于任务和基于数据的并行机制提供并行计算功能。
针对OpenCL的赛灵思SDAccel开发环境
在开发特定领域规格描述环境方面,赛灵思有近十年的工作经验。数据中心管理人员和服务器/交换机OEM厂商对数据中心性能的担忧,迫使开发环境向统一环境方向纵向发展,以在数据中心应用中实现设计优化。在此情况下,一种用于应用加速的OpenCL开发环境—SDAccelTM—应运而生。
最新赛灵思SDAccel环境(如图1所示)为数据中心应用开发人员提供完整的基于FPGA的硬件和OpenCL软件。SDAccel内含一个快速且架构优化编译器,能高效利用片上FPGA资源以及用于代码开发、特性分析和调试的基于Eclipse集成设计环境(IDE)的熟悉软件开发流程。该IDE可提供类似CPU/GPU的工作环境。
此外,SDAccel运用赛灵思的动态可重配置技术,可提供针对将即时换入换出的不同应用优化的加速器内核。这些应用能够在运行时间内将多个内核换入或换出FPGA,且不会给服务器CPU和用于持续应用加速的FPGA之间的接口造成扰动。
图1 - SDAccel环境包含架构优化编译器、库、调试器和分析器,可提供类似CPU/GPU的编程体验。
开发人员使用SDAccel的架构优化编译器可优化和编译流、低延迟定制数据路径应用。SDAccel编译器支持使用C、C++和OpenCL任意组合的源代码,主要面向赛灵思高性能FPGA器件。SDAccel编译器与高端CPU相比,性能提升10倍,功耗仅为GPU的1/10,同时保持代码兼容性和传统软件编程模式,便于应用移植并有助于降低成本。
本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念
本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“
课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了
@2003-2020 中国电子顶级开发网