FPGA异质架构搭配OpenCL 降低系统整合负荷
FPGA应用越来越多元,大型系统的设计需求越来越多,以运用FPGA导入数据中心应用设计方向,FPGA具备节能、高效与高度整合优势,但相对在开发数据中心相关应用系统,就衍生如程序、演算法、界面整合等开发负荷,为加速开发与减轻开发成本,善用开放式开发环境可有效达到目的...
现场可程序化逻辑阵列(Field-programmable gate array;FPGA),在集成电路制造技术持续提升下,已具备极佳的性能、稳定性与可用性,甚至有越来越多大型系统开始导入FPGA整合系统应用,FPGA已渐渐深入核心系统应用方向,加上FPGA本身元件具备高运算效能、低功耗运行、开发架构弹性等多项优点,导入大型系统设计具备极佳效益。
网通设备需求持续增加 大型电信机房耗能高
以大型数据机房、电信服务机房应用,FPGA以往多以基础高效电信设备整合居多,核心大型系统为考量开发资源、系统整合规划,较常见采常规开发平台为主,但这类大型电信系统、数据系统应用往往因为使用系统的运算设备耗电较庞大,导致电信服务、数据机房的耗电量过大。
根据自然资源保护委员会(Natural Resources Defense Council)估算,美国数据中心预估2020一年用电量将达到1,400亿仟瓦,高度耗能不但造成资源浪费,同时增加数据中心、电信机房维运成本,甚至可能影响了机房服务稳定性。
尤其是电信服务机房、数据中心使用的大型服务器,会因为应用系统的规划定位不同,若为了管理便利全采标准化常规架构服务器,因为服务器仍须24小时、无间断运行,数据中心难以针对低负荷运算或服务采用特定的电力节约方案,导致数据中心、电信机房的电力耗用优化执行难度相当高,新的趋势是将数据中心、电信机房的常规服务器将关键的任务型服务器改采具硬件加速或应用加速的专用硬件取代,在专用硬件因为无常规系统的硬件与软件负荷,在效能、成本与节能表现均可优于常规服务器架构的应用服务成果。
以FPGA架构整合数据中心专用硬件 具节能高效效益
在众多专用硬件解决方案中,使用FPGA技术方案是在架构前述专用硬件应用具效益的解决方案,由于FPGA元件本身即在运算架构上采高度平行的设计,元件的整体功耗相对更低、系统节能效益显着,吸引越来越多企业将FPGA导入专用硬件设计开发中,但FPGA要能顺利导入终端应用其实难度相当高,因为FPGA为高度定制化的系统,规划专用硬件设计业者仍须考量系统平台、开发语言、开发时间?人力等问题。
但现实的状况是FPGA方案应用于数据中心、专用服务器的相关开发方向,仍有相当多的基础开发工作需要处理,即使已有底层系统与基础条件,但在专用硬件需要的功能开发仍须投入对应资源,在周边开发资源较缺乏的现况,在投入专用硬件开发的时程不仅会因此拉长,会因为开发方向产生更多不可预期的技术门槛需要突破,为系统开发专案增加更多变量。
而选用FPGA的目的在提供更简洁的硬件架构、更高效的运行环境,若因为开发资源限制反而成为导入FPGA开发负荷增加,新方案的效益因此减损,因此在基于FPGA应用需求导入开放式开发环境不仅可以降低自行架构系统平台的可能技术风险,对于架构对应专用硬件整合需求亦可更专注相关应用服务开发方向,避免过多开发资源投入基础研发项目,反而拖累专用硬件的开发时效。
FPGA搭配OpenCL架构 减少异质系统整合负荷
在数据中心专用硬件开发方向,导入FPGA搭配开放式计算语言OpenCL(Open Computing Language)开发环境,可减轻开发专用硬件时消耗在编写FPGA应用程序、基础底层网通服务、演算法开发可能的研发负荷,同时,以经过时间考验的OpenCL基础上进行系统建构可让专用硬件的可靠性、耐用度符合数据中心的高稳定性软?硬件要求。
在OpenCL开放开发环境本身即是一个专为异质架构平台建构的程序发展框架,异构环境可由处理器、图像除理器、数码信号加速器、或是FPGA等不同硬件条件组合组成的运算架构,采与硬件整合相关的kernels雨用于定义控制平台的API(Application Programming Interface)进行系统组构,基本上已提供了基于数据与任务分割的平行运算架构,OpenCL开放开发环境不仅对多元的硬件架构衔接弹性高,同时以此基础架构的应用服务还可在平行运算下获得高效能、低功耗的系统优点。
在导入FPGA与OpenCL开放开发环境前,仍须对OpenCL的由来有更多理解,在发展相关应用或专用硬件才不出现方向错误问题。OpenCL发展背景其实在CPU中央处理器效能持续提升、同时周边的GPU、DSP等关键运算元件都有大幅效能升级,在中央处理器核心效能、外频受限于半导体制程技术瓶颈无法有突破性进展状况下,半导体业者开始将开发方向朝平行运算与异质元运算架构整合方向开发。
x86与非x86运算平台 均已有Open CL整合资源
即便OpenCL对异质硬件架构的开发环境整合具相当高的吸引力,但实际上中央处理器架构、GPU、DSP的各种运算硬件支持并不容易,以中央处理器、通用处理器市场观察,通用处理器在应用上即有x86与非x86架构差别,同时亦有兼容x86的产品,在x86架构基础上仍有中央处理器、对应GPU元件开发业者,同时CPU、GPU均有投入的业者,例如Intel本身就有长期投注大量资源开发CPU产品,同时在系统芯片投入GPU或整合GPU的相对应开发需求,在其CPU Core i3、i5、i7等产品即支持OpenCL,在系统芯片于Ivy Bridge系统架构已可让Intel HD Graphics(GPU)整合支持OpenCL运算架构。
专注GPU的业者如nVidia亦积极向OpenCL架构靠拢,nVidia自行推展的CUDA GPU运算架构,不仅让开发成果可以衔接以GPU核心加速运算的CUDA GPU(OpenCL SDK)运算架构。在非x86应用环境,就以ARM处理器架构最积极靠拢OpenCL应用,例如ARM搭配对应之Mali GPU,或是搭配Qualcomm Adreno GPU应用,相关硬件已可支持OpenCL架构。
另再从数据中心、电信机房在设备端的应用市场需求观察,以目前最热门的云端运算服务、PaaS/SaaS/IaaS虚拟平台运算需求,其实大量仰赖网通服务与应用服务器整合,例如Amazon AWS服务、Google、Azure等云端服务平台。
越来越多云端应用服务会针对其应用核心需求进行规划专用硬件整合,透过专用硬件达到高效网通服务支持与整合,同时又可以在系统功耗、硬件成本方面获得最大化的优化效益,例如Google将大量联网的电脑处理器透过云端技术连结成一庞大的运算实体,建构其机器学习的类神经网络解决方案,发展如人工智能或是其他云端智能应用服务,若是采用传统通用型的服务器进行系统架构,不仅无法达到高效网通服务支持,大量服务器设备产生的运行功耗整体运行效益会相对有限。
云服务需求激增 发展网通专用硬件具节能、高效效益
云服务应用如网络照片、网络影音、SNS社群服务等平台,会衍生大量的数据储存需求,以往可能针对储存需求采常规服务器搭配服务器用硬盘进行系统架构,但对仅提供数据储放应用却使用常规处理器与服务器系统就是显而易见的资源浪费,反而采用专用设备仅针对数据存储需求极致优化的数据服务器,对于业者发展需要大量网络存储空间支持的网通或云端服务,不仅可纾解大量网络储存需求,在单位设备采购成本、维护成本、扩充服务容量均具备极佳的弹性,这些都是发展以FPGA搭配Open CL开放环境整合的网通专用设备的市场机会点。
另再从效益面观察,若是传统常规网通服务器,其实硬件在联网的网埠界面至网卡、驱动程序、通讯协定、操作系统至应用程序已经过层层处理,运行过程除界面本身的网通连接速度限制外,在每个数据传输点、系统转换转递都会造成数据传输延迟,这也是通用服务器最大的问题,大量的运行能源耗损在数据层层处理转递过程。
在转换至采整合FPGA架构与异质硬件整合加速应用环境,可在数据中心服务器的主机卡、线路卡整合FPGA运算与处理单元,其功耗效能比可以超越同等搭载单位中央处理器或是GPU常规服务器20倍以上的效能,若是善用其异质硬件运算核心加速整合优势,甚至还可改善服务器内部数据传输转递的延迟问题。
即便导入FPGA搭配Open CL整合专用服务器开发效益弘大,但实际上FPGA用于专用硬件开发的相关资源相对于通用服务器整合更为缺乏,而FPGA若是资组因应一般基础开发,可能需仰赖熟习、使用RTL(register-transfer level)开发(如VHDL或Verilog)需要更深度的开发专业知识,才能有效发挥FPGA运算平台的性能优势,这反而成为发展基于FPGA优化专用硬件的开发门槛,为解决这方面的开发资源问题,透过FPGA并导入开放计算语言OpenCL减轻开发负担,运用Open CL架构异质硬件元件整合CPU、GPU、DSP、FPGA模块,发展适用于数据中心的专用硬件应用平台。