在New Orleans舉辦的超級(jí)計(jì)算機(jī)大會(huì)(SC14)上,Convey Computer公司介紹了很多關(guān)于HLL(高級(jí)語(yǔ)言)的標(biāo)準(zhǔn)擴(kuò)展和利用FPGA實(shí)現(xiàn)加速的應(yīng)用等內(nèi)容。Convey公司制造了一整套的基于FPGA的硬件加速器板卡,支持PCIe計(jì)算接口和服務(wù)器系統(tǒng)包裹Wolverine(”金剛狼”),這些設(shè)計(jì)都是基于Xilinx Virtex-7系列FPGA芯片。Convey公司是目前幾個(gè)能夠提供加速器板卡商業(yè)成品的提供商之一,加速器板卡也是這次Xilinx公司推出的SDAccel開(kāi)發(fā)環(huán)境的一部分。( 為OpenCL,C, C++打造類似于CPU/GPU的軟件開(kāi)發(fā)環(huán)境)
基于FPGA的加速器應(yīng)用Wolverine(”金剛狼”),支持PCIe系統(tǒng)
在SC14會(huì)議上Convey公司的展臺(tái)采用信息海報(bào)的形式,提供了大量關(guān)于使用高級(jí)語(yǔ)言(HLL)來(lái)加速基于FPGA的應(yīng)用代碼的開(kāi)發(fā)。下面我將引用海報(bào)的重點(diǎn)部分,以防你錯(cuò)過(guò)了Convey公司的展臺(tái),或者不能親自來(lái)New Orleans參加SC14會(huì)議:
以前加速器應(yīng)用設(shè)計(jì)主要使用硬件描述語(yǔ)言(HDL)例如Verilog來(lái)進(jìn)行程序設(shè)計(jì)。這就需要專門(mén)的技能和工具軟件,這就限制了這個(gè)器件不能被更多的人所接觸到。
最近,加速器編程標(biāo)準(zhǔn)已經(jīng)推出,主要為便攜式應(yīng)用的設(shè)計(jì)提供支持,這個(gè)標(biāo)準(zhǔn)主要面對(duì)不同提供商的加速器。這里我們介紹一下由Convey Computer公司開(kāi)發(fā)的OpenMP編譯器原型和由Xilinx公司開(kāi)發(fā)的OpenCL編譯器.(也就是Xilinx公司推出SDAccel開(kāi)發(fā)工具軟件)
FPGA是一塊可編程的集成電路,通過(guò)編程可以實(shí)現(xiàn)不同的電路設(shè)計(jì),這些設(shè)計(jì)是通過(guò)硬件描述語(yǔ)言(HDL)例如Verilog具體實(shí)現(xiàn)的,通過(guò)硬件綜合工具將硬件描述語(yǔ)言代碼轉(zhuǎn)換成比特流文件,下載到器件中完成對(duì)電路的配置。
Convey公司的OpenMP編譯器采用OpenMP4.0加速器指令,將它們轉(zhuǎn)換為公司的混合線程(HT)來(lái)表示。中間語(yǔ)言包括將基于C++和實(shí)時(shí)運(yùn)行庫(kù)的高級(jí)編程指令相結(jié)合,主要是為了能夠訪問(wèn)系統(tǒng)的底層設(shè)備。這個(gè)工具集將HT轉(zhuǎn)化為Verilog語(yǔ)言,很多工作都是自動(dòng)完成的,包括創(chuàng)建復(fù)用并行單元和轉(zhuǎn)化工作順序表。生成的Verilog語(yǔ)言代碼和由硬件平臺(tái)提供的系統(tǒng)底層驅(qū)動(dòng)代碼會(huì)被綜合生成比特流文件,最后將比特流文件下載到處理器中,完成配置。
Xilinx公司SDAccel開(kāi)發(fā)軟件能夠?qū)崿F(xiàn)將OpenCL應(yīng)用代碼編譯成二進(jìn)制文件,這些二進(jìn)制文件是能夠被處理器所識(shí)別的,并執(zhí)行,編譯過(guò)程采用標(biāo)準(zhǔn)的編程開(kāi)發(fā)環(huán)境。下面的插圖展示了這兩種編譯器是怎么工作的:
使用高級(jí)編程工具將需要更少的代碼來(lái)實(shí)現(xiàn)功能的描述,這就可以讓程序員將更多的精力放在算法的研究上,而不是為搭建一些底層驅(qū)動(dòng)傷腦筋。
例如,手工實(shí)現(xiàn)的Graph500廣度優(yōu)先搜索內(nèi)核使用Verilog語(yǔ)言大概包括超過(guò)4500多行的代碼,同樣的內(nèi)核實(shí)現(xiàn)使用混合線程(HT)中間過(guò)渡語(yǔ)言只需要883行代碼。使用OpneMP版本的內(nèi)核只需304行C語(yǔ)言代碼,使用OpenMP實(shí)現(xiàn)的內(nèi)核性能是9.7 GTEPS,使用Verilog語(yǔ)言的內(nèi)核性能是11.4GTEPS,使用HT語(yǔ)言的內(nèi)核性能是11.2GTEPS,相比較而言還是可以接受的。
從這個(gè)例子所顯示出的意義來(lái)看,使用OpenMP代碼實(shí)現(xiàn)的簡(jiǎn)單內(nèi)核性能完全可以與Verilog語(yǔ)言實(shí)現(xiàn)的內(nèi)核性能相匹敵,例如Graph500,使用OpenMP實(shí)現(xiàn)的版本可以達(dá)到Verilog語(yǔ)言實(shí)現(xiàn)版本性能的85%,但是卻只需要更少的代碼量。
這次對(duì)高級(jí)語(yǔ)言標(biāo)準(zhǔn)擴(kuò)展的介紹允許將基于FPGA的加速器應(yīng)用的程序設(shè)計(jì)大大簡(jiǎn)化?;谶@些標(biāo)準(zhǔn)的編程工具可以生成高度并行的硬件設(shè)計(jì),而且性能完全可以與采用底層硬件描述語(yǔ)言實(shí)現(xiàn)的設(shè)計(jì)性能相匹敵。
---> END <---
-
超級(jí)計(jì)算機(jī)
+關(guān)注
關(guān)注
2文章
464瀏覽量
42028 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137712 -
加速器板卡
+關(guān)注
關(guān)注
0文章
2瀏覽量
2290
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論