新趨勢:FPGA協(xié)處理器為HPC加速
隨著(zhù)計算機技術(shù)的發(fā)展,人們開(kāi)始把它應用到越來(lái)越多的領(lǐng)域,例如金融分析、科學(xué)計算、網(wǎng)絡(luò )服務(wù)應用、醫療成像等等。雖然這些不同領(lǐng)域有著(zhù)各異的應用程序和算法,但對于高性能的計算機而言,它們共同的需求就是,對程序要有強大的執行效率,并且能夠實(shí)現較快的計算速度。
為了提高HPC的計算能力,在最近的幾年中,人們開(kāi)始把其他各種高性能架構開(kāi)始向機群系統轉移。然而,目前的機群系統大多還是傳統的CPU,為了追求計算能力,僅僅是不停的增加計算節點(diǎn),最終服務(wù)器會(huì )堆到機房外面。
如果在HPC系統中的計算節點(diǎn)上加入FPGA(現場(chǎng)可編程門(mén)陣列)作為協(xié)處理器,通過(guò)對FPGA進(jìn)行特定程序算法優(yōu)化,可以大大提高對特定應用程序的執行效率,同時(shí)還可以大大降低系統的功耗,并降低系統TCO。
隨著(zhù)主流服務(wù)器芯片廠(chǎng)商中AMD和Intel先后開(kāi)放了CPU接口總線(xiàn)IP核,使得FPGA同CPU總線(xiàn)直接接口變得更加容易,而不需要再采用IO接口進(jìn)行設計專(zhuān)門(mén)的協(xié)處理IO卡。目前已經(jīng)有大量的廠(chǎng)商開(kāi)始提供相關(guān)的協(xié)處理器。
HPC變遷趨勢和機群架構的新問(wèn)題
對于高性能計算(HPC),其特點(diǎn)是計算能力強,一般為特別設計的超級計算機。之前的超級計算機架構多是SMP、MPP、SMD等,圖1所示為T(mén)OP500中HPC的架構變遷。
集群(Cluster)技術(shù)是近幾年興起的發(fā)展高性能計算機的一項技術(shù),采用Cluster體系結構集群系統,具有可自由伸縮、高度可管理、高可用、高性能價(jià)格比等諸多優(yōu)點(diǎn),從圖1中我們可以看到機群系統逐漸在HPC應用上取代MPP開(kāi)始占據主流位置。
圖1 TOP500中系統架構發(fā)展情況
雖然機群系統有著(zhù)上述種種優(yōu)勢,但由于使用了通用的處理器,隨著(zhù)應用對計算能力需求的日益增加,人們不得不被動(dòng)增加計算結點(diǎn)數目,增加CPU數目來(lái)應對計算能力需求的提升。目前的機群系統從原來(lái)的幾十個(gè)計算結點(diǎn),到現在的成百上千個(gè)結點(diǎn),甚至到不遠的將來(lái)上萬(wàn)個(gè)計算結點(diǎn),機群系統的不足也隨之日趨明顯。主要體現在:第一、受機柜高度和傳統1U機箱的限制,計算密度比較疏松,而且密度無(wú)法突破;第二、安裝維護工作量和成本過(guò)大;第三、對于大規模機群,功耗日趨成為瓶頸;第四、智能而有效的管理監控成為大規模機群系統新的挑戰。所有這些問(wèn)題都會(huì )導致數據中心的整體擁有成本的增加(TCO),這對于長(cháng)期運營(yíng)的數據中心而言,是最不想看到的。
而最大的問(wèn)題在于,對于所有的應用而言,都采用同樣的CPU進(jìn)行運算處理,而像金融分析、生物計算、科學(xué)計算,對CPU資源的需求是不同的,因此采用同樣的系統,就不能夠實(shí)際獲得機群系統所標稱(chēng)的性能。
目前,人們開(kāi)始尋找一種替代方式,可以看到的是采用基于FPGA的協(xié)處理器來(lái)加速應用軟件的關(guān)鍵算法執行。這種方式類(lèi)似于以前提出過(guò)的在C++代碼中的內層循環(huán)采用匯編語(yǔ)言來(lái)直接編寫(xiě),以?xún)?yōu)化關(guān)鍵程序運行。
相對于目前的X86處理器而言,FPGA一般都運行在比較低的時(shí)鐘頻率下,優(yōu)勢在于有著(zhù)較高的內存帶寬、突出的并行處理能力和出色的根據應用環(huán)境的硬件定制化能力。如果同在服務(wù)器上增加一顆處理器/內核比較,僅僅在服務(wù)器上增加一顆FPGA的協(xié)處理器,一般情況下性能可以提高2至3倍,而功耗則可以降低40%,根據應用情況進(jìn)行算法優(yōu)化的話(huà),最大可以提高性能達10倍。
FPGA協(xié)處理器為HPC 加速
正如上文所言,目前HPC應用涵蓋了多個(gè)領(lǐng)域,有著(zhù)不同的計算需求。例如在商業(yè)數據分析和基因測序中,要進(jìn)行大量的數組運算、線(xiàn)形數據匹配、邏輯測試等等,而對于醫療成像、計算化學(xué)而言,其主要工作是同步映射、過(guò)濾等等。這些不同的應用需要不同的數學(xué)邏輯操作以及有效的內存連接讀取等。
通用的CPU、專(zhuān)用的圖像處理CPU(目前稱(chēng)之為GPU)或網(wǎng)絡(luò )處理CPU,都無(wú)法為HPC應用提供一個(gè)可選的通用解決方案。而FPGA作為一個(gè)可重構計算引擎,可以在軟件控制下進(jìn)行硬件單元優(yōu)化工作,來(lái)滿(mǎn)足不同HPC應用需求,從而提供計算效率。從某種程度上說(shuō),采用基于FPGA協(xié)處理器的可重構計算硬件平臺,可以有可能讓HPC在各種應用軟件下達到很高的效率。
FPGA通過(guò)把高性能計算算法中固有的并行運算部分硬件化來(lái)實(shí)現HPC應用加速。其實(shí)這種并行可分為多個(gè)等級,在機群計算中在多個(gè)CPU上進(jìn)行任務(wù)的多線(xiàn)程分配我們可以稱(chēng)之為“任務(wù)級并行”。第二級并行我們稱(chēng)之為“指令并行”,傳統的CPU支持數量有限的指令并發(fā)處理,就是CPU指令流水線(xiàn)的管道數或者發(fā)射數比較有限。而FPGA則可以提供很多管道,也就是說(shuō)可以同時(shí)并行執行大量的指令?!皵祿⑿小笔荈PGA很容易實(shí)現的第三級并行處理能力,FPGA的結構非常容易實(shí)現并行操作。因而,通過(guò)配置,它可以同時(shí)執行大量的數據吞吐操作,在這種情況下,該設備相當于多個(gè)傳統CPU在同時(shí)工作。
如果實(shí)現上述三種級別的并行處理,一個(gè)200Mhz的FPGA處理能力將遠遠超過(guò)一個(gè)3Ghz的通用CPU,然而功耗僅僅是后者的1/4。例如在生物計算中,FPGA在處理DNA基因排序上能往往能夠比通用CPU加速50倍到100倍;而在醫療CT的2D/3D圖像處理上能夠加速10倍左右;而對與一些通用的算法如FFT,一般情況下FPGA的加速至少可以達到10倍以上。
一個(gè)標準FPGA協(xié)處理器的例子
本文以XtremeData公司的協(xié)處理器產(chǎn)品為例,介紹其應用環(huán)境及工作流程。圖二是XtremeData 公司的x86 FPGA 協(xié)處理器實(shí)物以及應用平臺情況。從圖中可以看出,該協(xié)處理器產(chǎn)品可以直接放置在普通的4路或者兩路Opteron系統上,該系統可以是機架式服務(wù)器或刀片產(chǎn)品。
{{分頁(yè)}}
該協(xié)處理器模塊同CPU管教兼容,同時(shí)可以直接使用板上連接在協(xié)處理器上的內存條,或者通過(guò)HT總線(xiàn)使用其他CPU上連接的內存條。這種結構有很大的優(yōu)勢,主板可以不用作任何改動(dòng),也就是說(shuō)在普通的服務(wù)器上可以即插即用,同時(shí)還可以直接利用主板資源,并獲取很大的HT總線(xiàn)帶寬和低延遲。
圖2 典型協(xié)處理器應用架構
其工作原理把適用于該芯片的算法庫安裝在主機上,根據應用不同,主機上的GUI可以在線(xiàn)配置和更改FPGA內硬件進(jìn)行不用算法的優(yōu)化。當然,前提是對于各種HPC應用都要實(shí)現完成算法庫的編寫(xiě),并轉換成FGPA可以識別的硬件描述語(yǔ)言庫,通過(guò)加載該語(yǔ)言庫,可更改FPGA內部硬件結構,實(shí)現應用程序的硬件加速。圖3為系統工作流程。
圖3 協(xié)處理器配置和實(shí)現過(guò)程
在執行過(guò)程中,對于并行性較強、浮點(diǎn)運算需求較高的計算可以通過(guò)后HT總線(xiàn)丟給協(xié)處理器進(jìn)行計算,并持續獲取計算結果,主CPU主要負責IO處理以及程序調度工作,從而實(shí)現協(xié)處理器的加速工作。
CPU廠(chǎng)商持開(kāi)放態(tài)度
CPU廠(chǎng)商目前對協(xié)處理器的出現并沒(méi)有持抵制態(tài)度,而是比較支持協(xié)處理器的開(kāi)發(fā)。
AMD率先提出Torenza協(xié)處理平臺,允許第三方處理器與Opteron合作,開(kāi)放相關(guān)接口。之后,Intel在IDF上也提出了自己的系統架構開(kāi)放計劃。Intel高級副總裁Pat Gelsinger宣布,Intel將向Xilinx等第三方FPGA生產(chǎn)商開(kāi)放前端總線(xiàn)(FSB)授權,以便他們的芯片能通過(guò)前端總線(xiàn)和內存控制器(MCH)的直連與Intel處理器協(xié)同工作。如同AMD的HyperTransport總線(xiàn),Intel的前端總線(xiàn)授權也能讓各種加速單元加入一個(gè)高帶寬、低延遲的總線(xiàn),從而在Intel系統中與MCH直接相連。
至此,兩個(gè)通用處理器的巨人對協(xié)處理器都抱著(zhù)支持和看好的態(tài)度,大大方便了第三方廠(chǎng)商進(jìn)行協(xié)處理器同通用處理器的接口的開(kāi)發(fā)工作。
總之,從市場(chǎng)來(lái)看,目前IBM 的cell、美國的Cleaspeed、DRC、Mitrionics和Celoxic等公司都有相應產(chǎn)品提供。在目前的應用中,Sun公司在為東京理工大學(xué)制造的超級計算機就采用了ClearSpeed的協(xié)處理器卡進(jìn)行了加速,Cray公司目前在超級計算機上也有應用。
不過(guò),該技術(shù)從目前的情況來(lái)看還不是很成熟,距離大規模商業(yè)應用還有一定的距離。主要問(wèn)題在于:不同的HPC領(lǐng)域應用算法各異。而作為可重構計算的FPGA協(xié)處理器,對于不同的算法都需要通過(guò)硬件描述語(yǔ)言解釋和實(shí)現,需要進(jìn)行大量的算法庫的工作。而目前沒(méi)有公司能夠提供足夠多的IP核供使用,只能在少數應用上進(jìn)行FPGA協(xié)處理器的加速。當然,由于Linepacke是HPC的主要測試軟件,而各家公司的產(chǎn)品都可以加速Linpake的性能測試。
從長(cháng)遠看來(lái),由于FPGA可重構的協(xié)處理器有著(zhù)上文描述的種種優(yōu)勢,所以在將來(lái)的HPC應用中,解決的不同算法的硬件描述轉化的問(wèn)題后,將會(huì )得到大量的應用。
c++相關(guān)文章:c++教程
加速度計相關(guān)文章:加速度計原理
評論