多核處理器可替代FPGA
Peter認(rèn)為,鑒于其高性能、易編程及低成本特點(diǎn),GPGPU技術(shù)在許多情況下能夠替代FPGA和DSP。
本文引用地址:http://m.butianyuan.cn/article/201610/307382.htm盡管沒有針腳,諸如圖形處理器(GPU)和Tilera處理器等多核處理器在某些應(yīng)用中正逐步替代現(xiàn)場(chǎng)可編程門陳列(FPGA)。開發(fā)人員表示,GPU可用于執(zhí)行多種功能,而非單純的圖形處理,從而成就了圖形處理器通用計(jì)算(GPGPU)技術(shù)的出現(xiàn),其中最為矚目的便是 NVIDIA’s CUDA。當(dāng)評(píng)估GPGPU、TILE或FPGA技術(shù)能否作為任何即定應(yīng)用的首選時(shí),需考慮(但不局限于)以下因素:
• 可用處理能力
• 延遲
• 可擴(kuò)展性
• 開發(fā)成本
• 技術(shù)嵌入
• 價(jià)格
處理能力的評(píng)估一定程度上取決于處理數(shù)據(jù)類型及處理算法。
由于GPU起初主要負(fù)責(zé)圖形繪制,因此,其尤其善于處理單精度(SP)及(某種情況下)雙精度(DP)浮點(diǎn)(FP)運(yùn)算。Tilera的TILE設(shè)備當(dāng)前不支持硬件FP運(yùn)算,但要求進(jìn)行軟件模擬,且性能代價(jià)高昂。一般而言,F(xiàn)PGA亦是如此,設(shè)備通過(guò)利用多種資源來(lái)處理FP運(yùn)算問題。達(dá)到可接受性能要求IP區(qū)塊需消耗多個(gè)門并要求深流水線技術(shù)。例如:當(dāng)前Tesla級(jí)GPU每秒最高可執(zhí)行1012次浮點(diǎn)運(yùn)算或1TFLOPS,而Xilinx Virtex-6設(shè)備則為150 GFLOPS。
當(dāng)考慮到定點(diǎn)運(yùn)算時(shí),情況有所不同。新一代GPU在浮點(diǎn)速率相同的情況下可執(zhí)行整數(shù)運(yùn)算,例如:當(dāng)Virtex-6設(shè)備提高至500GOPS時(shí),GPU每秒可執(zhí)行1012次運(yùn)算或1TOPS。整數(shù)性能是TILE處理器的優(yōu)勢(shì)所在:8位數(shù)據(jù)時(shí),TILE-Gx(圖1)最高執(zhí)行能力為750GOPS,32位數(shù)據(jù)時(shí)為188GOPS。
圖1:8位數(shù)據(jù)時(shí),Tilera的TILE-Gx處理器最高執(zhí)行能力為750GOPS
在信號(hào)處理應(yīng)用中使用定點(diǎn)處理會(huì)延長(zhǎng)開發(fā)時(shí)間。在系統(tǒng)定義階段時(shí)間進(jìn)行諸多分析,進(jìn)而能夠測(cè)定各處理階段的動(dòng)態(tài)范圍要求,并確保實(shí)際信號(hào)應(yīng)用中無(wú)上溢或下溢現(xiàn)象發(fā)生。否則,開發(fā)人員需要在系統(tǒng)運(yùn)行時(shí)使用額外資源來(lái)持續(xù)監(jiān)控動(dòng)態(tài)范圍并調(diào)整區(qū)塊比例因數(shù)。
無(wú)論從時(shí)間還是空間上講,許多通用架構(gòu)處理開銷可能顯著較大,因此,逐位運(yùn)算尤為適用于FPGA。若在FPGA上執(zhí)行逐位運(yùn)算,則需要考慮開發(fā)時(shí)間。毋庸置疑,系統(tǒng)的實(shí)際可用處理能力在很大程度上可能會(huì)因理論峰值處理能力的不同而有所差異。影響該差異的兩個(gè)主要因素包括硬件架構(gòu)算法的適用性及優(yōu)化執(zhí)行能力所需時(shí)間。
例如:FPGA能夠利用其并行及適應(yīng)多種算法的特性來(lái)獲得更加接近理論最大值的性能。但是,F(xiàn)PGA需要更大的硅片空間和更長(zhǎng)的開發(fā)時(shí)間來(lái)接近這些理論最大值。對(duì)于適應(yīng)于GPU硬件并行模式的算法,GPU已經(jīng)能夠達(dá)到峰值的20~30%。它們同樣具有合理的硅密度(40nm工藝,32nm研發(fā)中)和開發(fā)時(shí)間(通常只有數(shù)周,而FPGA則需幾個(gè)月)。TILEPro64處理器可提供FPGA相類似的適應(yīng)性和GPU相類似的可編程性,但是,由于其粗糙的任務(wù)級(jí)問題分解特點(diǎn)使得其無(wú)法像FPGA和GPU那樣實(shí)現(xiàn)細(xì)粒度并行。
內(nèi)存帶寬在評(píng)估處理器性能方面同等重要,GPU能夠提供3倍于FPGA、6倍于TILEPro64的優(yōu)勢(shì)。但是,必須指明,該帶寬須以下列條件為基礎(chǔ):出現(xiàn)的大延遲須通過(guò)交叉處理進(jìn)行控制,應(yīng)在最佳訪問模式中通過(guò)整合實(shí)現(xiàn)接合訪問。有了FPGA,開發(fā)人員需要充分考慮內(nèi)存位置。新一代GPU和TILEPro64處理器具有傳統(tǒng)的緩存分布,能夠幫助優(yōu)化內(nèi)存位置并減少開發(fā)時(shí)間。
延遲
也許能夠排除使用GPGPU的最可能因素便是延遲。例如:調(diào)用內(nèi)核所需時(shí)間及主存儲(chǔ)器較長(zhǎng)訪問時(shí)間均可引起長(zhǎng)延遲。許多情況下,這種延遲可能會(huì)稍有緩解但是無(wú)法完全避免。因此首選應(yīng)為大數(shù)據(jù)集處理,原因在于,其為大量運(yùn)算,換言之,其具備較高的計(jì)算強(qiáng)度。在需要滿足嚴(yán)格延遲要求的環(huán)境下(例如閉回路控制),F(xiàn)PGA為首選。TILE處理器具有良好的延遲特性,“裸機(jī)”模式下進(jìn)行編程時(shí)尤為突出。
可擴(kuò)展性
FPGA能夠與諸如Aurora等低開銷聯(lián)接緊密耦合,或執(zhí)行諸如Serial RapidIO或PCI Express等標(biāo)準(zhǔn)串行結(jié)構(gòu)。GPGPU為協(xié)處理器,通常需要一個(gè)主處理器。如圖2所示,許多GPU能夠聯(lián)接至一個(gè)單主處理器(首選多核)中,但是,當(dāng)各主處理器核使用一個(gè)GPU時(shí),共享資源會(huì)限制返回。
圖2:GE智能平臺(tái)加固型IPN250和NPN240能夠使Intel多核主處理器管理多個(gè)NVIDA GT240 96核CUDA GPU
多聯(lián)接GPGPU間執(zhí)行代碼的常用方法是使用OpenMP。該方法允許在并行線程中自動(dòng)執(zhí)行處理回路,且分別使用不同的GPU。在集群層面(主處理器+GPU[或多GPU])還可實(shí)現(xiàn)進(jìn)一步擴(kuò)展。該集群還可通過(guò)PCI Express、10G Ethernet、InfiniBand及其它聯(lián)接進(jìn)行聯(lián)接,并且通過(guò)使用諸如MPI等中間件進(jìn)行編程。
TILE處理器可通過(guò)多種網(wǎng)狀結(jié)構(gòu)實(shí)現(xiàn)核間高度連接,進(jìn)而調(diào)整至不同的處理類型。TILE處理器多交換結(jié)構(gòu)考慮到了核間通用低延遲IPC及核間內(nèi)存一致性。設(shè)備與設(shè)備之間可通過(guò)10G以太網(wǎng)和PCI Express進(jìn)行連接。整個(gè)設(shè)備或核心集群可編程為對(duì)稱多處理設(shè)備。
開發(fā)成本
開發(fā)成本難以度量。從定性分析的角度,一般認(rèn)為采用C或C++的多核設(shè)備編程要比FPGA編程簡(jiǎn)單。而且大家普遍認(rèn)為找到合格的多核設(shè)備編程工程師要比招募FPGA 設(shè)備的VHDL或Verilog編程人員更加容易。由于開發(fā)人員須同時(shí)優(yōu)化硬件和算法(軟件),因此需要多種技能,才可使FPGA接近理論性能。在多核情況下,因?yàn)橛布呀?jīng)確定,開發(fā)人員可專注于算法開發(fā)和優(yōu)化(僅軟件)。
量化該差別是個(gè)難題。一種方法是考慮軟件規(guī)模即代碼行(SLOC)多少。這種方法根據(jù)算法不同而會(huì)有所差異,但多核處理器代碼行少于三分之一的現(xiàn)象并不少見。使用更高級(jí)的比較方法會(huì)使情況變得模糊——如GPGPU采用MATLAB,F(xiàn)PGA編程采用Agility-C或MATLAB系統(tǒng)生成器等。
單單SLOC并不能精確代表開發(fā)成本。許多推動(dòng)軟件開發(fā)生產(chǎn)率發(fā)展的工具和語(yǔ)言創(chuàng)新,如集成開發(fā)環(huán)境、調(diào)試器、測(cè)試覆蓋率生成和面向?qū)ο缶幊潭荚趯?duì)FPGA開發(fā)產(chǎn)生影響——但還有很長(zhǎng)的路要走。此外,開箱即用的FPGA開發(fā)由于較長(zhǎng)的綜合及布局、布線時(shí)間、較低的處理器狀態(tài)透明度以及可能耗時(shí)很久的仿真時(shí)間等因素,并不具有最快的軟件測(cè)試和修改周期。這些問題有相應(yīng)的解決方案,但都需要額外的投資。
技術(shù)嵌入
在應(yīng)用層面,GPGPU設(shè)備可升級(jí)至更多核的新產(chǎn)品而無(wú)需做出很大改動(dòng)。例如,無(wú)論存在多少核,通過(guò)小型執(zhí)行單元(內(nèi)核)進(jìn)行并行處理的方法都依然有效。在開發(fā)及運(yùn)行時(shí),工具鏈和驅(qū)動(dòng)程序可分別使應(yīng)用程序與硬件脫離??赏瑫r(shí)調(diào)用成百上千的線程,運(yùn)行這些內(nèi)核。
單個(gè)二進(jìn)制數(shù)可運(yùn)行在具有不同核數(shù)量的不同設(shè)備上。多數(shù)情況下,這可以最大程度簡(jiǎn)化到新平臺(tái)的移植。
與此類似,編寫的TILE處理器的SMP應(yīng)用,可在添加了新設(shè)備時(shí),自動(dòng)適用于更大的核數(shù)量。
相比之下,將FPGA應(yīng)用移植到新設(shè)備上時(shí),即使算法保持不變,也需要對(duì)硬件表達(dá)式代碼進(jìn)行大量修改,以適應(yīng)不同的目標(biāo)平臺(tái)。
價(jià)格
商用級(jí)GPGPU板(圖3)的售價(jià)可低至$50,而針對(duì)超級(jí)計(jì)算應(yīng)用的最新GPGPU板的售價(jià)則為$4000。含有高端Virtex-6 的FPGA板的售價(jià)可能在$4000左右。Tilera板由于其針對(duì)性更強(qiáng),售價(jià)會(huì)高的多。這三種型號(hào)的加固產(chǎn)品由于具有更小的體積、更好的板構(gòu)造技術(shù)、更嚴(yán)格的檢測(cè)和篩選,因此價(jià)格高出許多。例如,完全加固、傳導(dǎo)冷卻的GPU板售價(jià)可在$7000左右。此類板針對(duì)軍事/航天應(yīng)用需求,原因是商用級(jí)板無(wú)法適應(yīng)惡劣環(huán)境下的環(huán)境壓力,同時(shí)也不具備長(zhǎng)期項(xiàng)目所需的長(zhǎng)使用壽命。
圖3: NVIDIA的支持CUDA技術(shù)的GeForce GT130M即為GPGPU技術(shù)的廉價(jià)入門級(jí)產(chǎn)品
結(jié)論
對(duì)于很多應(yīng)用來(lái)說(shuō),F(xiàn)PGA在處理能力以及延遲方面的性能仍然無(wú)可比擬。但仍有許多應(yīng)用場(chǎng)合應(yīng)考慮使用多核設(shè)備。由于其定點(diǎn)性能,可考慮直接使用TILE處理器替代FPGA。GPGPU更加擅長(zhǎng)浮點(diǎn)運(yùn)算,因此可考慮將其用于替代FPGA,或作為FPGA的補(bǔ)充。
多核處理器與傳感器靠的更近,這種模塊可能不久就將面市 – 這些設(shè)備緊靠在模數(shù)轉(zhuǎn)換器(ADC)后面即FPGA原先所處的位置。原先從帶有AltiVec的PowerPC等通用處理器(GPP)改換至FPGA陣列的一些應(yīng)用現(xiàn)在開始移植到多核架構(gòu)上。例如,醫(yī)療成像設(shè)備如計(jì)算機(jī)斷層掃描(CT)和磁共振顯像現(xiàn)在采用GPGPU來(lái)成像。
目前混合采用FPGA和GPP的雷達(dá)系統(tǒng)正在評(píng)估使用GPGPU的可行性,以便降低處理子系統(tǒng)的尺寸、重量和功耗(SWaP),從而使其可部署在UAV等較小的平臺(tái)上,或提升相同占位面積的處理能力。360度態(tài)勢(shì)感知等一些先前使用專門硬件的成像應(yīng)用如今采用TILE處理器和GPU來(lái)采集多個(gè)攝像機(jī)數(shù)據(jù)流,然后經(jīng)過(guò)變形、拼接,從而顯示全景圖(圖4)
圖4: GPGPU支持多個(gè)攝像機(jī)數(shù)據(jù)流采集,從而實(shí)時(shí)生成全景圖。
考慮到多核設(shè)備編程簡(jiǎn)單,及出色的處理能力、低廉的購(gòu)置成本和與之相關(guān)的低廉開發(fā)成本,強(qiáng)烈建議將其用于先前主要采用可編程硬件陣列的應(yīng)用。
評(píng)論