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