多核處理器可替代FPGA
Peter認為,鑒于其高性能、易編程及低成本特點(diǎn),GPGPU技術(shù)在許多情況下能夠替代FPGA和DSP。
本文引用地址:http://dyxdggzs.com/article/201610/307382.htm盡管沒(méi)有針腳,諸如圖形處理器(GPU)和Tilera處理器等多核處理器在某些應用中正逐步替代現場(chǎng)可編程門(mén)陳列(FPGA)。開(kāi)發(fā)人員表示,GPU可用于執行多種功能,而非單純的圖形處理,從而成就了圖形處理器通用計算(GPGPU)技術(shù)的出現,其中最為矚目的便是 NVIDIA’s CUDA。當評估GPGPU、TILE或FPGA技術(shù)能否作為任何即定應用的首選時(shí),需考慮(但不局限于)以下因素:
• 可用處理能力
• 延遲
• 可擴展性
• 開(kāi)發(fā)成本
• 技術(shù)嵌入
• 價(jià)格
處理能力的評估一定程度上取決于處理數據類(lèi)型及處理算法。
由于GPU起初主要負責圖形繪制,因此,其尤其善于處理單精度(SP)及(某種情況下)雙精度(DP)浮點(diǎn)(FP)運算。Tilera的TILE設備當前不支持硬件FP運算,但要求進(jìn)行軟件模擬,且性能代價(jià)高昂。一般而言,FPGA亦是如此,設備通過(guò)利用多種資源來(lái)處理FP運算問(wèn)題。達到可接受性能要求IP區塊需消耗多個(gè)門(mén)并要求深流水線(xiàn)技術(shù)。例如:當前Tesla級GPU每秒最高可執行1012次浮點(diǎn)運算或1TFLOPS,而Xilinx Virtex-6設備則為150 GFLOPS。
當考慮到定點(diǎn)運算時(shí),情況有所不同。新一代GPU在浮點(diǎn)速率相同的情況下可執行整數運算,例如:當Virtex-6設備提高至500GOPS時(shí),GPU每秒可執行1012次運算或1TOPS。整數性能是TILE處理器的優(yōu)勢所在:8位數據時(shí),TILE-Gx(圖1)最高執行能力為750GOPS,32位數據時(shí)為188GOPS。
圖1:8位數據時(shí),Tilera的TILE-Gx處理器最高執行能力為750GOPS
在信號處理應用中使用定點(diǎn)處理會(huì )延長(cháng)開(kāi)發(fā)時(shí)間。在系統定義階段時(shí)間進(jìn)行諸多分析,進(jìn)而能夠測定各處理階段的動(dòng)態(tài)范圍要求,并確保實(shí)際信號應用中無(wú)上溢或下溢現象發(fā)生。否則,開(kāi)發(fā)人員需要在系統運行時(shí)使用額外資源來(lái)持續監控動(dòng)態(tài)范圍并調整區塊比例因數。
無(wú)論從時(shí)間還是空間上講,許多通用架構處理開(kāi)銷(xiāo)可能顯著(zhù)較大,因此,逐位運算尤為適用于FPGA。若在FPGA上執行逐位運算,則需要考慮開(kāi)發(fā)時(shí)間。毋庸置疑,系統的實(shí)際可用處理能力在很大程度上可能會(huì )因理論峰值處理能力的不同而有所差異。影響該差異的兩個(gè)主要因素包括硬件架構算法的適用性及優(yōu)化執行能力所需時(shí)間。
例如:FPGA能夠利用其并行及適應多種算法的特性來(lái)獲得更加接近理論最大值的性能。但是,FPGA需要更大的硅片空間和更長(cháng)的開(kāi)發(fā)時(shí)間來(lái)接近這些理論最大值。對于適應于GPU硬件并行模式的算法,GPU已經(jīng)能夠達到峰值的20~30%。它們同樣具有合理的硅密度(40nm工藝,32nm研發(fā)中)和開(kāi)發(fā)時(shí)間(通常只有數周,而FPGA則需幾個(gè)月)。TILEPro64處理器可提供FPGA相類(lèi)似的適應性和GPU相類(lèi)似的可編程性,但是,由于其粗糙的任務(wù)級問(wèn)題分解特點(diǎn)使得其無(wú)法像FPGA和GPU那樣實(shí)現細粒度并行。
內存帶寬在評估處理器性能方面同等重要,GPU能夠提供3倍于FPGA、6倍于TILEPro64的優(yōu)勢。但是,必須指明,該帶寬須以下列條件為基礎:出現的大延遲須通過(guò)交叉處理進(jìn)行控制,應在最佳訪(fǎng)問(wèn)模式中通過(guò)整合實(shí)現接合訪(fǎng)問(wèn)。有了FPGA,開(kāi)發(fā)人員需要充分考慮內存位置。新一代GPU和TILEPro64處理器具有傳統的緩存分布,能夠幫助優(yōu)化內存位置并減少開(kāi)發(fā)時(shí)間。
延遲
也許能夠排除使用GPGPU的最可能因素便是延遲。例如:調用內核所需時(shí)間及主存儲器較長(cháng)訪(fǎng)問(wèn)時(shí)間均可引起長(cháng)延遲。許多情況下,這種延遲可能會(huì )稍有緩解但是無(wú)法完全避免。因此首選應為大數據集處理,原因在于,其為大量運算,換言之,其具備較高的計算強度。在需要滿(mǎn)足嚴格延遲要求的環(huán)境下(例如閉回路控制),FPGA為首選。TILE處理器具有良好的延遲特性,“裸機”模式下進(jìn)行編程時(shí)尤為突出。
可擴展性
FPGA能夠與諸如Aurora等低開(kāi)銷(xiāo)聯(lián)接緊密耦合,或執行諸如Serial RapidIO或PCI Express等標準串行結構。GPGPU為協(xié)處理器,通常需要一個(gè)主處理器。如圖2所示,許多GPU能夠聯(lián)接至一個(gè)單主處理器(首選多核)中,但是,當各主處理器核使用一個(gè)GPU時(shí),共享資源會(huì )限制返回。

圖2:GE智能平臺加固型IPN250和NPN240能夠使Intel多核主處理器管理多個(gè)NVIDA GT240 96核CUDA GPU
多聯(lián)接GPGPU間執行代碼的常用方法是使用OpenMP。該方法允許在并行線(xiàn)程中自動(dòng)執行處理回路,且分別使用不同的GPU。在集群層面(主處理器+GPU[或多GPU])還可實(shí)現進(jìn)一步擴展。該集群還可通過(guò)PCI Express、10G Ethernet、InfiniBand及其它聯(lián)接進(jìn)行聯(lián)接,并且通過(guò)使用諸如MPI等中間件進(jìn)行編程。
TILE處理器可通過(guò)多種網(wǎng)狀結構實(shí)現核間高度連接,進(jìn)而調整至不同的處理類(lèi)型。TILE處理器多交換結構考慮到了核間通用低延遲IPC及核間內存一致性。設備與設備之間可通過(guò)10G以太網(wǎng)和PCI Express進(jìn)行連接。整個(gè)設備或核心集群可編程為對稱(chēng)多處理設備。
開(kāi)發(fā)成本
開(kāi)發(fā)成本難以度量。從定性分析的角度,一般認為采用C或C++的多核設備編程要比FPGA編程簡(jiǎn)單。而且大家普遍認為找到合格的多核設備編程工程師要比招募FPGA 設備的VHDL或Verilog編程人員更加容易。由于開(kāi)發(fā)人員須同時(shí)優(yōu)化硬件和算法(軟件),因此需要多種技能,才可使FPGA接近理論性能。在多核情況下,因為硬件已經(jīng)確定,開(kāi)發(fā)人員可專(zhuān)注于算法開(kāi)發(fā)和優(yōu)化(僅軟件)。
量化該差別是個(gè)難題。一種方法是考慮軟件規模即代碼行(SLOC)多少。這種方法根據算法不同而會(huì )有所差異,但多核處理器代碼行少于三分之一的現象并不少見(jiàn)。使用更高級的比較方法會(huì )使情況變得模糊——如GPGPU采用MATLAB,FPGA編程采用Agility-C或MATLAB系統生成器等。
單單SLOC并不能精確代表開(kāi)發(fā)成本。許多推動(dòng)軟件開(kāi)發(fā)生產(chǎn)率發(fā)展的工具和語(yǔ)言創(chuàng )新,如集成開(kāi)發(fā)環(huán)境、調試器、測試覆蓋率生成和面向對象編程都在對FPGA開(kāi)發(fā)產(chǎn)生影響——但還有很長(cháng)的路要走。此外,開(kāi)箱即用的FPGA開(kāi)發(fā)由于較長(cháng)的綜合及布局、布線(xiàn)時(shí)間、較低的處理器狀態(tài)透明度以及可能耗時(shí)很久的仿真時(shí)間等因素,并不具有最快的軟件測試和修改周期。這些問(wèn)題有相應的解決方案,但都需要額外的投資。
技術(shù)嵌入
在應用層面,GPGPU設備可升級至更多核的新產(chǎn)品而無(wú)需做出很大改動(dòng)。例如,無(wú)論存在多少核,通過(guò)小型執行單元(內核)進(jìn)行并行處理的方法都依然有效。在開(kāi)發(fā)及運行時(shí),工具鏈和驅動(dòng)程序可分別使應用程序與硬件脫離??赏瑫r(shí)調用成百上千的線(xiàn)程,運行這些內核。
單個(gè)二進(jìn)制數可運行在具有不同核數量的不同設備上。多數情況下,這可以最大程度簡(jiǎn)化到新平臺的移植。
與此類(lèi)似,編寫(xiě)的TILE處理器的SMP應用,可在添加了新設備時(shí),自動(dòng)適用于更大的核數量。
相比之下,將FPGA應用移植到新設備上時(shí),即使算法保持不變,也需要對硬件表達式代碼進(jìn)行大量修改,以適應不同的目標平臺。
價(jià)格
商用級GPGPU板(圖3)的售價(jià)可低至$50,而針對超級計算應用的最新GPGPU板的售價(jià)則為$4000。含有高端Virtex-6 的FPGA板的售價(jià)可能在$4000左右。Tilera板由于其針對性更強,售價(jià)會(huì )高的多。這三種型號的加固產(chǎn)品由于具有更小的體積、更好的板構造技術(shù)、更嚴格的檢測和篩選,因此價(jià)格高出許多。例如,完全加固、傳導冷卻的GPU板售價(jià)可在$7000左右。此類(lèi)板針對軍事/航天應用需求,原因是商用級板無(wú)法適應惡劣環(huán)境下的環(huán)境壓力,同時(shí)也不具備長(cháng)期項目所需的長(cháng)使用壽命。

圖3: NVIDIA的支持CUDA技術(shù)的GeForce GT130M即為GPGPU技術(shù)的廉價(jià)入門(mén)級產(chǎn)品
結論
對于很多應用來(lái)說(shuō),FPGA在處理能力以及延遲方面的性能仍然無(wú)可比擬。但仍有許多應用場(chǎng)合應考慮使用多核設備。由于其定點(diǎn)性能,可考慮直接使用TILE處理器替代FPGA。GPGPU更加擅長(cháng)浮點(diǎn)運算,因此可考慮將其用于替代FPGA,或作為FPGA的補充。
多核處理器與傳感器靠的更近,這種模塊可能不久就將面市 – 這些設備緊靠在模數轉換器(ADC)后面即FPGA原先所處的位置。原先從帶有AltiVec的PowerPC等通用處理器(GPP)改換至FPGA陣列的一些應用現在開(kāi)始移植到多核架構上。例如,醫療成像設備如計算機斷層掃描(CT)和磁共振顯像現在采用GPGPU來(lái)成像。
目前混合采用FPGA和GPP的雷達系統正在評估使用GPGPU的可行性,以便降低處理子系統的尺寸、重量和功耗(SWaP),從而使其可部署在UAV等較小的平臺上,或提升相同占位面積的處理能力。360度態(tài)勢感知等一些先前使用專(zhuān)門(mén)硬件的成像應用如今采用TILE處理器和GPU來(lái)采集多個(gè)攝像機數據流,然后經(jīng)過(guò)變形、拼接,從而顯示全景圖(圖4)

圖4: GPGPU支持多個(gè)攝像機數據流采集,從而實(shí)時(shí)生成全景圖。
考慮到多核設備編程簡(jiǎn)單,及出色的處理能力、低廉的購置成本和與之相關(guān)的低廉開(kāi)發(fā)成本,強烈建議將其用于先前主要采用可編程硬件陣列的應用。
評論