很久沒(méi)有看FPGA了,本來(lái)想繼續(xù)學(xué)習(xí)HLS,就上Xilinx的網(wǎng)站看了看。結(jié)果發(fā)現(xiàn)了SDx 開發(fā)環(huán)境,很新的一個(gè)東西。由于我對(duì)這方面了解不多,本篇博文僅僅只是資料的整合和介紹。
Xilinx官網(wǎng)這樣解釋SDx:SDx? 是一種面向系統(tǒng)和軟件工程師的開發(fā)環(huán)境。?SDx 讓沒(méi)有 FPGA 專業(yè)知識(shí)的系統(tǒng)和軟件工程師也能通過(guò)使用高層次編程語(yǔ)言,來(lái)獲益于帶有業(yè)界標(biāo)準(zhǔn)處理器的可編程硬件的強(qiáng)大威力。SDAccel 是首個(gè)面向 OpenCL、C 和 C++進(jìn)行架構(gòu)優(yōu)化的編譯器,并結(jié)合了#庫(kù)、開發(fā)板,可在FPGA上實(shí)現(xiàn)類似 CPU/GPU 的開發(fā)運(yùn)行體驗(yàn) 。
FPGA的結(jié)構(gòu),F(xiàn)PGA、GPU、CPU之間的優(yōu)勢(shì)劣勢(shì)在我的FPGA學(xué)習(xí)之基本結(jié)構(gòu)和高層次綜合(HLS)-簡(jiǎn)介中略有涉及,網(wǎng)上也有大量的資料。簡(jiǎn)單來(lái)說(shuō),F(xiàn)PGA是一種可編程的器件,采用HDL語(yǔ)言來(lái)編寫改變其結(jié)構(gòu)。其全并行等特性使得FPGA有極強(qiáng)的計(jì)算能力。但FPGA開發(fā)是困難的,之前的集成開發(fā)環(huán)境是ISE,通常采用VHDL或Verilog HDL編寫代碼。HDL,即硬件描述語(yǔ)言,所以這個(gè)時(shí)候是和軟件工程師沒(méi)什么關(guān)系的(不知道這樣說(shuō)對(duì)不對(duì))。
?后來(lái)主推Vivado,有了HLS(高層次綜合),倒有幾份文檔是面向軟件工程師的,但具體怎么樣,我也不太清楚——我并沒(méi)有使用過(guò)Vivado。但毫無(wú)疑問(wèn)的是,Vivado不是面向“軟件工程師”的。
由此看來(lái),SDx開發(fā)平臺(tái)對(duì)Xilinx應(yīng)該具有很大的意義。而SDAccel是其中最新的一個(gè)組成部分(另一個(gè)是SDNet,“軟”定義網(wǎng)絡(luò)),Xilinx的對(duì)SDAccel描述如下
2.FPGA計(jì)算
FPGA用于高效能計(jì)算,這個(gè)想法出項(xiàng)很長(zhǎng)時(shí)間了。各大公司也進(jìn)行了一些嘗試,下一代計(jì)算設(shè)備CPU/GPU/FPGA:FPGA規(guī)模商用還需時(shí)日中提到了FPGA、CPU、GPU和DSP之間的對(duì)比,大體結(jié)果是GPU性能最強(qiáng)而FPGA具有更高的性能功耗比。文中還提到了微軟利用FPGA對(duì)Bing數(shù)據(jù)中心進(jìn)行加速的計(jì)劃,以及Baidu在這方面的研究。
關(guān)于微軟的項(xiàng)目,Microsoft, Baidu find speedier search results through specialized chips中有更詳細(xì)的介紹。這一項(xiàng)目中利用了Altera的FPGA,文中寫道Xilinx的V6系列FPGA曾經(jīng)被嘗試使用并被放棄。
至于百度,Xilinx官方給出的背景資料中提到了Baidu的研究??偨Y(jié)來(lái)說(shuō),F(xiàn)GPA計(jì)算在功率受限下具有很高的性能,可以用在數(shù)據(jù)中心的加速中。在Machine Learning中,F(xiàn)PGA在實(shí)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)上有很好的表現(xiàn)。(百度采用Mid-range FPGAs,利用的是K7系列XC7K480T)
這一點(diǎn)點(diǎn)的優(yōu)勢(shì)的背后是巨大的劣勢(shì)。首先,F(xiàn)PGA的計(jì)算能力不是最強(qiáng)的;其次,F(xiàn)PGA的開發(fā)環(huán)境不成熟,難度較大,時(shí)間周期長(zhǎng);其三,F(xiàn)PGA局限性大,支持性差。
3.SDAccel簡(jiǎn)介
本節(jié)內(nèi)容主要來(lái)自或參考于SDAccel背景資料
這份文檔的副標(biāo)題是“Bringing The Best Performance/Watt to the Data Center”,也就是說(shuō)這是對(duì)于功率受限的數(shù)據(jù)中心提出的,另一份白皮書中提到是“Tomorrow’s Data Center”這是其自身的定位。圖中可以看出FPGA極高的效能比
文中指出開發(fā)者希望數(shù)據(jù)中心有以下幾個(gè)特性:
1、高效能
2、完整的軟件開發(fā)環(huán)境
3、利于升級(jí)的設(shè)計(jì)
然而這些正是SDAccel所能帶給我們的,關(guān)于SDAccel有這樣一則新聞賽靈思推出針對(duì)OpenCL、 C和 C++的SDAccel開發(fā)環(huán)境。SDAccel設(shè)計(jì)思路如下圖,它強(qiáng)調(diào)的是“FPGA 上類似GPU/GPU的開發(fā)體驗(yàn)”。
背景資料中僅對(duì)SDAccel特性做了簡(jiǎn)要說(shuō)明。
開發(fā)體驗(yàn):CPU/GPU開發(fā)者可以通過(guò)重用或維護(hù)OpenCL,C,C++代碼輕易將應(yīng)用程序遷移到FPGA上。SDAccel報(bào)還一些基本的庫(kù)(OpenCL built-ins, DSP, Video, and linear algebra libraries),同時(shí)Auviz還提供了OpenCV和BLAS。程序調(diào)試成型之前并不需要FPGA參與,之后需要進(jìn)行RTL仿真
升級(jí):SDAccel可以實(shí)現(xiàn)即時(shí)的硬件動(dòng)態(tài)重配,F(xiàn)PGA硬件可復(fù)用,因此應(yīng)用可以平滑的升級(jí)。
性能和總結(jié):SDAccel生成的代碼在某些方面甚至超過(guò)了手工編寫的HDL code,和其他編譯器相比較更是有巨大優(yōu)勢(shì)。
背景資料中并沒(méi)有提供更多的信息,總結(jié)起來(lái)就是——Xilinx說(shuō)他的產(chǎn)品很好。
4.其他
25倍說(shuō)得很模糊,單詞用的是“表現(xiàn)”。本文的標(biāo)題取自Xilinx,如果從GFLOPs衡量的話,Xilinx官網(wǎng)給出了下面一個(gè)圖(高性能計(jì)算應(yīng)用)。圖中采用K10進(jìn)行對(duì)比,最新的K80在保持K10功耗下,計(jì)算能力大概變成了原來(lái)的兩倍。Virtex7差不多是最新的 FPGA(20nm),因此FPGA相對(duì)于GPU的優(yōu)勢(shì)并不明顯。
就僅有的資料而言,Xilinx對(duì)其作出了很多限制(譬如數(shù)據(jù)中心,功耗限制),無(wú)疑在這些方面FPGA有很大的優(yōu)勢(shì)。但前景到底如何呢?
評(píng)論