新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 清除通向基于FPGA的OpenCL數(shù)據(jù)中心服務(wù)器的障礙

清除通向基于FPGA的OpenCL數(shù)據(jù)中心服務(wù)器的障礙

作者: 時(shí)間:2016-10-16 來(lái)源:網(wǎng)絡(luò) 收藏

從支持中小機(jī)構(gòu)運(yùn)作的服務(wù)機(jī)房,到支持美國(guó)大型企業(yè)和提供云計(jì)算服務(wù)接入的企業(yè)級(jí)數(shù)據(jù)中心,數(shù)據(jù)中心在現(xiàn)代經(jīng)濟(jì)中發(fā)揮著骨干作用。根據(jù)自然資源保護(hù)委員會(huì)的統(tǒng)計(jì)[IY1],數(shù)據(jù)中心是美國(guó)用電量最大、增長(zhǎng)最快的用電大戶(hù)之一。2013年美國(guó)數(shù)據(jù)中心估計(jì)耗電約910億千瓦時(shí),超過(guò)紐約市全部居民用電的兩倍以上,而且到2020年用電量有望達(dá)到1400億千瓦時(shí)[1]。很明顯,降低用電對(duì)于擴(kuò)展數(shù)據(jù)中心,提升可靠性和降低運(yùn)營(yíng)成本具有重要意義。

本文引用地址:http://2s4d.com/article/201610/308301.htm

根據(jù)具體的服務(wù)器應(yīng)用,數(shù)據(jù)中心各個(gè)不同。許多服務(wù)器長(zhǎng)期不間斷運(yùn)行,使得硬件可靠性和耐用性極為重要。雖然服務(wù)器可以使用商用計(jì)算機(jī)部件組裝,但關(guān)鍵任務(wù)型企業(yè)級(jí)服務(wù)器往往使用以硬件加速為目的的專(zhuān)用硬件,如圖形處理單元(GPU)和數(shù)字信號(hào)處理器(DSP)?,F(xiàn)在許多企業(yè)尋求使用現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA),因?yàn)镕PGA是一種高度并行的架構(gòu),而且功耗相對(duì)較低。賽靈思的新款SDAccelTM開(kāi)發(fā)環(huán)境為開(kāi)發(fā)人員提供了一種熟悉的CPU或類(lèi)似CPU的環(huán)境,避免編程給FPGA在此類(lèi)應(yīng)用中使用時(shí)造成的障礙。

改善性能功耗比

Amazon Web服務(wù)、Google Compute、MicrosoftAzure和中國(guó)的百度等公有云擁有巨大的圖片庫(kù),需要極快的圖像識(shí)別能力。在一個(gè)實(shí)現(xiàn)方案中,谷歌科技人員將16,000個(gè)計(jì)算機(jī)處理器連接為一個(gè)實(shí)體,創(chuàng)建出了一個(gè)極為龐大的機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),然后投放到互聯(lián)網(wǎng)上,讓其自主學(xué)習(xí)。這項(xiàng)研究是新一代計(jì)算機(jī)科學(xué)的代表。這一代計(jì)算機(jī)科學(xué)以充分利用大型數(shù)據(jù)中心中的大量計(jì)算機(jī)集群的運(yùn)算能力為目標(biāo)。潛在應(yīng)用包括讓圖像搜索、語(yǔ)音識(shí)別和機(jī)器語(yǔ)言翻譯能力邁上新的臺(tái)階。但是對(duì)數(shù)據(jù)中心設(shè)計(jì)而言,僅依靠充分利用CPU并非是一種高能效的做法。要提高速度、降低功耗,還需要其他解決方案。

中國(guó)最大的搜索引擎百度借助于深度神經(jīng)網(wǎng)絡(luò)處理技術(shù)來(lái)解決語(yǔ)音識(shí)別、圖像搜索和自然語(yǔ)言處理方面的問(wèn)題。百度迅速判定,如果在在線(xiàn)預(yù)測(cè)中使用神經(jīng)網(wǎng)絡(luò)反向傳播算法,F(xiàn)PGA解決方案在降低功耗的同時(shí),還能以比CPU/GPU簡(jiǎn)便得多的方式進(jìn)行擴(kuò)展[2]。

因在數(shù)據(jù)中心服務(wù)器的主機(jī)卡和線(xiàn)路卡中集成了FPGA,新一代28nm和20nm高集成度FPGA系列(如賽靈思7系列和UltraScaleTM器件)正在改變數(shù)據(jù)中心動(dòng)態(tài)發(fā)展?fàn)顩r。性能功耗比可以輕松達(dá)到CPU/GPU的20倍以上,同時(shí)在某些應(yīng)用中與傳統(tǒng)CPU相比,時(shí)延可降低50至75倍。

但是對(duì)FPGA硬件資源有限或缺乏的開(kāi)發(fā)團(tuán)隊(duì)而言,由于需要使用RTL(VHDL或Verilog)開(kāi)發(fā)專(zhuān)業(yè)知識(shí)才能充分發(fā)揮FPGA的性能優(yōu)勢(shì),因此過(guò)渡到FPGA難度較大。為解決這一問(wèn)題,賽靈思已引入開(kāi)放計(jì)算機(jī)語(yǔ)音(OpenCLTM)作為減輕編程負(fù)擔(dān)的方法。

OpenCL代碼移植性

由蘋(píng)果公司開(kāi)發(fā)并經(jīng)Khronos集團(tuán)推廣的OpenCL[3]有助于異構(gòu)設(shè)計(jì)中的CPU、GPU、FPGA和DSP模塊集成。為增強(qiáng)用于編寫(xiě)可在異構(gòu)平臺(tái)上運(yùn)行的程序的OpenCL框架,賽靈思等業(yè)界領(lǐng)先的CPU、GPU和FPGA廠(chǎng)商都在為這種語(yǔ)音及其API的開(kāi)發(fā)做出努力。

SDAccel編譯器相對(duì)CPU性能提高10倍,且功耗僅為GPU的1/10。

OpenCL被CPU/GPU/FPGA廠(chǎng)商、服務(wù)器OEM廠(chǎng)商以及數(shù)據(jù)中心管理人員等日益廣泛地接受,說(shuō)明各方都已經(jīng)認(rèn)識(shí)到一個(gè)嚴(yán)峻的現(xiàn)實(shí):用于單處理器架構(gòu)的C語(yǔ)言編譯器在服務(wù)器機(jī)架內(nèi)部只能實(shí)現(xiàn)小幅總體功耗降低,即便是在處理器采用低于20nm的工藝技術(shù)并添加特殊省電狀態(tài)后依然如此。

OpenCL是一種用于編寫(xiě)可在由CPU、GPU、DSP、FPGA及其它處理器構(gòu)成的異構(gòu)平臺(tái)上運(yùn)行的程序的框架。OpenCL包含基于C99的編程語(yǔ)言和應(yīng)用編程接口(API),以控制平臺(tái)和在目標(biāo)器件上執(zhí)行程序。OpenCL使用基于任務(wù)和基于數(shù)據(jù)的并行機(jī)制提供并行計(jì)算功能。

針對(duì)OpenCL的賽靈思SDAccel開(kāi)發(fā)環(huán)境

在開(kāi)發(fā)特定領(lǐng)域規(guī)格描述環(huán)境方面,賽靈思有近十年的工作經(jīng)驗(yàn)。數(shù)據(jù)中心管理人員和服務(wù)器/交換機(jī)OEM廠(chǎng)商對(duì)數(shù)據(jù)中心性能的擔(dān)憂(yōu),迫使開(kāi)發(fā)環(huán)境向統(tǒng)一環(huán)境方向縱向發(fā)展,以在數(shù)據(jù)中心應(yīng)用中實(shí)現(xiàn)設(shè)計(jì)優(yōu)化。在此情況下,一種用于應(yīng)用加速的OpenCL開(kāi)發(fā)環(huán)境―SDAccelTM―應(yīng)運(yùn)而生。

最新賽靈思SDAccel環(huán)境(如圖1所示)為數(shù)據(jù)中心應(yīng)用開(kāi)發(fā)人員提供完整的基于FPGA的硬件和OpenCL軟件。SDAccel內(nèi)含一個(gè)快速且架構(gòu)優(yōu)化編譯器,能高效利用片上FPGA資源以及用于代碼開(kāi)發(fā)、特性分析和調(diào)試的基于Eclipse集成設(shè)計(jì)環(huán)境(IDE)的熟悉軟件開(kāi)發(fā)流程。該IDE可提供類(lèi)似CPU/GPU的工作環(huán)境。

此外,SDAccel運(yùn)用賽靈思的動(dòng)態(tài)可重配置技術(shù),可提供針對(duì)將即時(shí)換入換出的不同應(yīng)用優(yōu)化的加速器內(nèi)核。這些應(yīng)用能夠在運(yùn)行時(shí)間內(nèi)將多個(gè)內(nèi)核換入或換出FPGA,且不會(huì)給服務(wù)器CPU和用于持續(xù)應(yīng)用加速的FPGA之間的接口造成擾動(dòng)。

圖1 - SDAccel環(huán)境包含架構(gòu)優(yōu)化編譯器、庫(kù)、調(diào)試器和分析器,可提供類(lèi)似CPU/GPU的編程體驗(yàn)。

開(kāi)發(fā)人員使用SDAccel的架構(gòu)優(yōu)化編譯器可優(yōu)化和編譯流、低延遲定制數(shù)據(jù)路徑應(yīng)用。SDAccel編譯器支持使用C、C++和OpenCL任意組合的源代碼,主要面向賽靈思高性能FPGA器件。SDAccel編譯器與高端CPU相比,性能提升10倍,功耗僅為GPU的1/10,同時(shí)保持代碼兼容性和傳統(tǒng)軟件編程模式,便于應(yīng)用移植并有助于降低成本。

圖2C運(yùn)用OpenCL語(yǔ)言為CPU、GPU和FPGA架構(gòu)編寫(xiě)的視頻處理算法在FPGA上運(yùn)行速度更快

(Auviz使用AuvizCV庫(kù)完成的基準(zhǔn)測(cè)試)

SDAccel是唯一基于FPGA的開(kāi)發(fā)環(huán)境,內(nèi)含各種用于應(yīng)用加速并針對(duì)FPGA優(yōu)化的庫(kù)。該庫(kù)包含OpenCL內(nèi)置函數(shù)、任意精度數(shù)據(jù)類(lèi)型(定點(diǎn))、浮點(diǎn)、math.h、視頻、信號(hào)處理和線(xiàn)性代數(shù)函數(shù)。

在諸如帶有復(fù)雜嵌套數(shù)據(jù)路徑(nested datapath)的視頻處理等實(shí)際計(jì)算工作負(fù)載上,F(xiàn)PGA架構(gòu)的內(nèi)在靈活性使其相對(duì)于CPU和GPU固定架構(gòu)而言,在性能和功耗方面具有明顯的優(yōu)勢(shì)。如圖2中所示的基準(zhǔn)測(cè)試結(jié)果表明,SDAccel編譯的FPGA解決方案在性能上超過(guò)相同代碼的CPU實(shí)現(xiàn)方案,并提供可與GPU實(shí)現(xiàn)方案相媲美的卓越性能。

雙邊濾波器和Harris角點(diǎn)檢測(cè)器均使用標(biāo)準(zhǔn)的OpenCL設(shè)計(jì)模式編碼,使用器件的全局存儲(chǔ)器在內(nèi)核之間傳輸數(shù)據(jù)。SDAccel生成的FPGA實(shí)現(xiàn)方案通過(guò)創(chuàng)建片上存儲(chǔ)器組供高帶寬存儲(chǔ)器傳輸和低時(shí)延計(jì)算使用,可達(dá)到優(yōu)化存儲(chǔ)器訪(fǎng)問(wèn)的目的。創(chuàng)建和使用這些專(zhuān)用存儲(chǔ)器組代表SDAccel編譯器的部分架構(gòu)感知功能。

軟件工作流

FPGA一直有望超越CPU和GPU實(shí)現(xiàn)方案,擁有更高的算法性能以及更低的功耗范圍。但直到現(xiàn)在因?yàn)榫幊棠J?,未能如愿以?xún)?。而這一編程模式又是有效利用FPGA所必須的。SDAccel支持具備系統(tǒng)內(nèi)即時(shí)可重配置功能的軟件工作流,能最大化數(shù)據(jù)中心的硬件加速ROI,從而克服這一障礙。SDAcce是一種獨(dú)特而完整的基于FPGA的解決方案,他的功能和簡(jiǎn)便易用性遠(yuǎn)遠(yuǎn)超遠(yuǎn)競(jìng)爭(zhēng)對(duì)手的工具。更多詳情,敬請(qǐng)?jiān)L問(wèn)下列網(wǎng)站:http://china.xilinx.com/products/design-tools/sdx/sdaccel.html。



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉