Xilinx SDAccel:為數據中心帶來(lái)最佳單位功耗性能
引言
本文引用地址:http://dyxdggzs.com/article/201610/308423.htm數據中心運維人員總是不斷在尋求更高的服務(wù)器性能。目前,他們主要是通過(guò)易于編程的多核CPU 和GPU 來(lái)開(kāi)發(fā)應用,但CPU 和GPU 都遇到了單位功耗性能的瓶頸壁壘。從事海量數據中心應用開(kāi)發(fā)(如密鑰加速、圖像識別、語(yǔ)音轉錄、加密和文本搜索等)的設計人員既希望GPU 易于編程,同時(shí)又希望硬件具有低功耗、高吞吐量和最低時(shí)延功能。然而,多核CPU和GPU 加速器在可擴展性上存在嚴重的問(wèn)題:客戶(hù)希望用簡(jiǎn)單的全高度插入式PCIe 開(kāi)發(fā)板作為數據中心服務(wù)器的應用加速器。這種開(kāi)發(fā)板經(jīng)配置可運行高功率圖形卡,但客戶(hù)同時(shí)希望功耗不超過(guò)25W,以便最大化可擴展性并最小化總功耗。
最近賽靈思同瑞士蘇黎世聯(lián)邦理工學(xué)院(ETH Zurich)聯(lián)合開(kāi)展的一系列研究發(fā)現,基于FPGA 的應用加速想比CPU/GPU實(shí)現方案,單位功耗性能可提升25 倍,而時(shí)延則縮短了50 到75 倍,與此同時(shí)還能實(shí)現出色的I/O 集成(PCIe、DDR4SDRAM 接口、高速以太網(wǎng)等)。換言之,FPGA 能在單芯片上提供高能效硬件應用加速所需的核心功能,并同時(shí)提供每個(gè)開(kāi)發(fā)板目標功耗低于25W 的的解決方案。
中國網(wǎng)絡(luò )服務(wù)領(lǐng)先企業(yè)百度公司在美國加州圣何塞舉行的2014 年熱門(mén)芯片研討會(huì )上介紹了支持性調查結果。百度的結論
如下:
• 中端FPGA 能夠實(shí)現375 GFLOPS 的性能,功耗僅為10-20W
• 基于FPGA 的加速器可部署在所有類(lèi)型的服務(wù)器中。
• 和CPU 和GPU 相比, FPGA 在深度神經(jīng)網(wǎng)絡(luò )(DNN)預測系統中性能更加出色。DNN 系統用于語(yǔ)言識別、圖像搜索、OCR、面部識別、網(wǎng)頁(yè)搜索以及自然語(yǔ)言處理等各種不同應用。

FPGA 大幅提升了硬件加速的單位功耗性能。
FPGA 用于應用加速的最大問(wèn)題在于編程。數據中心應用開(kāi)發(fā)人員不希望采用以硬件為中心的RTL 流程,也就是傳統FPGA的開(kāi)發(fā)路徑。他們所需要的是:
• 單位功耗性能更高
• 完全軟件的開(kāi)發(fā)環(huán)境
• 易于升級的設計
推出全新賽靈思SDAccel 環(huán)境
全新的賽靈思SDAccel 開(kāi)發(fā)環(huán)境為數據中心應用開(kāi)發(fā)人員提供了他們所需要的完整的FPGA 軟硬件解決方案。SDAccel 包括可高效利用片上FPGA 資源的快速的、架構優(yōu)化的編譯器;熟悉的軟件開(kāi)發(fā)流程—— 其帶有用于代碼開(kāi)發(fā)、特性分析與調試的Eclipse 集成設計環(huán)境(IDE),可提供類(lèi)似于CPU/GPU 的工作環(huán)境;以及針對不同數據中心應用而優(yōu)化的動(dòng)態(tài)可重配置加速器,能在類(lèi)似CPU/GPU 運行時(shí)間環(huán)境中即時(shí)更換。運行過(guò)程中應用能讓不同處理模塊在FPGA 中即時(shí)替換,且不會(huì )干擾服務(wù)器CPU 和FPGA 之間的連接,實(shí)現不間斷的應用加速。

SDAccel 環(huán)境包括架構優(yōu)化的編譯器、庫、調試器和分析器,并提供類(lèi)似于CPUGPU的編程體驗。
SDAccel 結合業(yè)界首款架構優(yōu)化編譯器、庫和開(kāi)發(fā)板,是唯一能在FPGA 上提供類(lèi)似于CPU/GPU 的開(kāi)發(fā)和運行時(shí)間體驗。SDAccel 開(kāi)發(fā)環(huán)境面向基于X86 服務(wù)器處理器的主機系統,并可提供現成的商用(COTS)PCIe 插卡,用于添加FPGA 功能。
行業(yè)首款面向C、C++ 和OpenCL 的架構優(yōu)化編譯器
SDAccel 的架構優(yōu)化編譯器使軟件開(kāi)發(fā)者能夠優(yōu)化并編譯流媒體、低時(shí)延以及定制數據路徑應用。SDAccel 編譯器主要針對高性能賽靈思FPGA 并支持OpenCL,C 和C++ 任意組合的源代碼。SDAccel 編譯器相比高端CPU 性能提高達10 倍,而功耗僅為GPU 的1/10,同時(shí)能保持代碼的兼容性和一個(gè)傳統的軟件編程模式,以便于應用移植并節約成本。根據客戶(hù)基準,SDAccel 編譯器相比同類(lèi)競爭FPGA 解決方案,性能和資源效率均提升了3 倍。SDAccel 編譯器自動(dòng)生成的設計甚至比手動(dòng)編碼的RTL 設計方案的性能還高,在某些情況下可高出20% 之多。
架構優(yōu)化的SDAccel 編譯器可以自動(dòng)對應用源代碼實(shí)施一系列基礎甚至高級的優(yōu)化方案。下表列出了SDAccel 編譯器針對加速應用所進(jìn)行的一系列優(yōu)化。

SDAccel 編譯器針對加速應用所進(jìn)行的一系列優(yōu)化。
其中一些自動(dòng)優(yōu)化能大幅提升整體應用的效率。舉例來(lái)說(shuō),SDAccel 編譯器的數據流流水線(xiàn)功能可對多個(gè)功能進(jìn)行流水線(xiàn)化,而不會(huì )局限于僅能對單一功能進(jìn)行優(yōu)化。該編譯器的存儲器優(yōu)化功能能極大地提升功效,從而讓你能夠在FPGA 中添加更多功能。SDAccel 是首款面向FPGA 平臺的完全軟件的開(kāi)發(fā)環(huán)境,可實(shí)現類(lèi)似于CPU/GPU 的開(kāi)發(fā)體驗。開(kāi)發(fā)人員能用熟悉的工作流程優(yōu)化應用,而且即便很少或者沒(méi)有FPGA 使用經(jīng)驗,也能獲益于FPGA 的平臺優(yōu)勢。集成設計環(huán)境(IDE)不僅可提供編碼模板和軟件庫,而且還支持在x86 平臺上進(jìn)行編譯、調試、特性分析和FPGA 仿真。準備好部署后,IDE 能在配有自動(dòng)儀器插入功能的數據中心用現成的商用 FPGA 平臺上實(shí)現算法。
SDAccel 還經(jīng)過(guò)精心構建,使CPU/GPU 開(kāi)發(fā)人員能夠輕松將其應用移植到FPGA 上,同時(shí)還可在熟悉的工作流程中維護和復用OpenCL、C 和C++ 代碼。大量代碼和庫采用C 和C++ 格式。對于希望采用其現有代碼庫中的不同代碼, 或者采用第三方代碼庫,甚至繼續組合使用C、C++ 或OpenCL 進(jìn)行開(kāi)發(fā)的開(kāi)發(fā)者來(lái)說(shuō),能用C、C++ 或OpenCL 工作是最大的便利。
SDAccel 環(huán)境配套提供面向程序員的Eclipse IDE 以及一系列基于C 語(yǔ)言的FPGA 優(yōu)化庫和數據中心用現成商用平臺。Convey Computer、Alpha Data Parallel Systems 和Pico Computing 公司可提供數據中心用加速板卡。2015 年年初還將增加更多商用現貨(COTS)合作伙伴。SDAccel 庫包括內置OpenCL 函數、DSP、視頻和線(xiàn)性代數庫,能支持高性能低功耗實(shí)現方案。針對特定領(lǐng)域加速,賽靈思聯(lián)盟合作成員Auviz Systems 公司還提供優(yōu)化的 OpenCV 和BLAS SDAccel 兼容庫。

SDAccel :面向程序員的開(kāi)發(fā)平臺
應用開(kāi)發(fā)人員完全能在X86 仿真空間開(kāi)始使用SDAccel 使其代碼開(kāi)始工作。一旦其確信其算法開(kāi)發(fā)人員就能對代碼進(jìn)行特性分析,找到受益于加速的代碼片段。然后開(kāi)發(fā)人員就可以利用這些有針對性的片段,無(wú)縫采用快速自動(dòng)生成的周期精確內核仿真,從而實(shí)現加速。這些快速仿真可用來(lái)調試和優(yōu)化加速量,同時(shí)能在架構層面工作。業(yè)經(jīng)驗證的應用能方便地移植到主機/FPGA 系統。SDAccel 開(kāi)發(fā)環(huán)境可支持所有這些來(lái)自同一控制中心(cockpit)的活動(dòng)。
SDAccel 庫對SDAccel 類(lèi)似CPU/GPU 的開(kāi)發(fā)體驗發(fā)揮了重要作用。這些庫包含底層數學(xué)庫以及BLAS、OpenCV 和DSP 等高生產(chǎn)力庫。這些庫用C++(而不是用RTL)編寫(xiě),因此在所有開(kāi)發(fā)和調試階段都能完全像編寫(xiě)一樣使用。在項目早期階段,所有開(kāi)發(fā)工作都在CPU 主機上進(jìn)行。由于SDAccel 庫用C++ 語(yǔ)言編寫(xiě),因此能與CPU 目標的應用代碼一起編譯,創(chuàng )建虛擬設計原型,讓所有測試、調試和初始特性分析工作在主機上進(jìn)行。在此階段無(wú)需FPGA。
一旦應用經(jīng)過(guò)初始調試和特性分析,需要硬件加速的關(guān)鍵功能可通過(guò)編譯實(shí)現協(xié)同仿真,加速功能運行在基于CPU 的RTL仿真器上。這時(shí),軟件開(kāi)發(fā)團隊可觀(guān)察所得的性能,確定應用能否滿(mǎn)足性能目標要求。RTL 仿真能準確給出FPGA 硬件加速的性能情況,這就能讓開(kāi)發(fā)團隊得到很好的性能估算,而且能高度確保所得的FPGA 配置能精確重現應用源代碼的行為和結果。
加速功能隨后可遷移到FPGA 上,生成最后的加速應用,可用于部署。SDAccel 編譯器不是創(chuàng )建通用FPGA 配置,而是在編譯時(shí)針對特定的賽靈思FPGA,包括器件速度等級,這樣所得的加速功能就能針對FPGA 上的可用資源以及器件時(shí)序進(jìn)行優(yōu)化。在這時(shí)我們甚至還能測試功能,這對性能不會(huì )造成影響,硬件開(kāi)銷(xiāo)極低,而且還能在同樣熟悉的SDAccel 開(kāi)發(fā)環(huán)境中進(jìn)行更多后期特性分析,以便充分利用FPGA 硬件,全面最大化應用加速效果。
CPU 級特性分析能發(fā)現應用瓶頸。協(xié)同仿真將告訴您這些瓶頸是否已經(jīng)被加速特定功能消除掉。在FPGA 上對硬件加速功能進(jìn)行特性分析能實(shí)現更多優(yōu)化,進(jìn)一步優(yōu)化應用代碼和加速功能。在任何時(shí)間以及各個(gè)階段中,SDAccel 編譯器都可選擇性地檢測應用代碼,包括加速功能,這就意味著(zhù)調試和特性分析能夠以相同方式進(jìn)行,而且無(wú)論開(kāi)發(fā)工作進(jìn)入到哪個(gè)階段,都可用使用同一軟件開(kāi)發(fā)工具。
在FPGA 上首次帶來(lái)類(lèi)似CPU/GPU 的運行時(shí)間和升級體驗
SDAccel 可提供支持實(shí)時(shí)類(lèi)似CPU/GPU 運行時(shí)間升級的唯一FPGA 動(dòng)態(tài)可重配置加速器。SDAccel 對于FPGA 解決方案的獨特之處在于其利用唯一的FPGA 動(dòng)態(tài)重配置功能可在內核升級時(shí)保持系統繼續運行,這不僅可加載新的硬件加速器內核(這一點(diǎn)與CPU/GPU 加速器的功能類(lèi)似),同時(shí)還能保持關(guān)鍵的系統接口和功能(如存儲器、以太網(wǎng)、PCIe 和性能監控器)繼續發(fā)揮作用。這種即時(shí)的系統重配置功能理想適用于數據中心計算需求及負載的立即更新。這種應用的一個(gè)實(shí)例就是圖像搜索、視頻轉碼和圖像處理等功能的即時(shí)切換,從而帶來(lái)戰略性?xún)?yōu)勢。

可重配置加速器支持快速硬件加速變化,能最大化加速器投資回報
所有這些都能通過(guò)硬件重用轉換為資源優(yōu)化,這在數據中心環(huán)境中是一大優(yōu)勢。簡(jiǎn)而言之,基于SDAccel 的系統現在能加速應用,而如果未來(lái)需要另外一種類(lèi)型的加速,系統能快速順利地實(shí)現升級。
開(kāi)發(fā)者可以管理和運行基于SDAccel 的系統就像在CPU/GPU 系統一樣。利用SDAccel 和硬件快速動(dòng)態(tài)重配置功能,我們甚至能在應用運行中重用FPGA。這種功能使得我們能用相同的FPGA 板卡執行不同的內核加速,硬件可針對不同的算法進(jìn)行重新優(yōu)化,且不會(huì )限制或中斷應用流程。通過(guò)支持動(dòng)態(tài)重配置,SDAccel 能讓數據中心運維人員最大限度地發(fā)揮硬件加速投資價(jià)值。
實(shí)實(shí)在在的標準測試可證明SDAccel 的性能和價(jià)值
SDAccel 經(jīng)過(guò)了具有實(shí)際標準測試的業(yè)界驗證。舉例來(lái)說(shuō),在壓縮標準測試中,SDAccel 生成的硬件加速器比同類(lèi)競爭工具生成的加速器速度高3 倍多,尺寸小3 倍。占位面積及吞吐量與手動(dòng)優(yōu)化的RTL 實(shí)現方案旗鼓相當甚至更優(yōu)秀。

用兩個(gè)加速器測試標準比較手動(dòng)編碼的RTL、SDAccel 以及市場(chǎng)上類(lèi)似方案生成的結果
在上述的加密標準測試中,SDAccel 生成的硬件加速器比同類(lèi)競爭工具生成的加速器速度快1.2 倍,而面積小4 倍。更棒的是,SDAccel 自動(dòng)生成的加速器比用RTL 手動(dòng)編碼生成的加速器還快20%。SDAccel 開(kāi)箱即用,可直接編加速器,而且QOR(結果質(zhì)量)與手動(dòng)編碼結果質(zhì)量旗鼓相當,甚至更勝一籌。
結論
SDAccel 可滿(mǎn)足數據中心應用開(kāi)發(fā)人員的需求,包括提供類(lèi)似CPU/GPU 的工作環(huán)境,其生成的高效硬件加速器可實(shí)現最佳單位功耗性能,遠勝于運行在CPU/GPU 上的加速器。SDAccel 通過(guò)帶有系統內即時(shí)可重配置功能的單個(gè)控制中心環(huán)境(cockpit environment)支持軟件工作流程,最大化數據中心硬件加速投資回報。因此,SDAccel 是一種獨特而完整的FPGA解決方案,其易用性和功能遠超同類(lèi)競爭性工具。這些同類(lèi)競爭性工具不能提供高生產(chǎn)力工作流程,也不能提供熟悉的環(huán)境,加速器性能更不能與SDAccel 自動(dòng)生成的硬件加速器相提并論。

SDAccel 為硬件加速提供獨特而完整的FPGA 解決方案
評論