通用圖形處理器(general-purpose graphics processing unit, GPGPU)是一種近年來出現(xiàn)的計算機芯片,它給航空航天以及防務應用中的高性能嵌入式計算帶來了重大突破。這種功能強大的芯片是在前一個十年里作為高端計算機游戲的圖形處理引擎引入的,是一種大規(guī)模并行處理器。它不僅有助于復雜的浮點計算處理,而且容易編程,對于廣泛的嵌入式軍用系統(tǒng)頗具吸引力。 同時,通用圖形處理器技術(shù)的進展基本上符合摩爾定律,也就是說,通用圖形處理器的處理能力每2年提高1倍,而尺寸每2年減小一半。現(xiàn)在美國的通用圖形處理器芯片的主要設(shè)計制造商有加利福尼亞州圣克拉拉的NVIDIA公司和加利福亞州桑尼維爾的先進微型器件公司(AMD公司)。AMD公司的通用圖形處理器的專門技術(shù)中,大多來自于它2006年并購的位于加拿大安大略省馬克姆的ATI技術(shù)公司。 強大的并行處理能力 在通用圖形處理器這個名字中,“圖形”( “graphics”)一詞的涵義并不十分確切。特別是在航空航天和國防應用中,通用圖形處理器芯片的最大吸引力是它的并行處理能力,運用“圖形”一詞就更顯不當。 總部在馬薩諸塞州切姆斯德的水星系統(tǒng)公司的馬克•庫圖爾(Marc Couture)解釋說,圖形處理器(GPU)是大規(guī)模并行處理器件,重點應用是大型數(shù)據(jù)集的多路和并行處理。相對說來,中央處理器(CPU)的重點應用是單路處理。通用圖形處理器每秒進行浮點運算的次數(shù)要比CPU高出很多。像水星系統(tǒng)公司這樣的企業(yè)總是著眼于不同類型的計算引擎,很明顯,集合了許多處理核的GPU可以像一個大型網(wǎng)絡一樣進行浮點運算。 弗吉尼亞州夏洛茨維爾的通用電氣智能平臺公司的通用圖形處理器應用工程師達斯廷•富蘭克林(Dustin Franklin)說,通用圖形處理器是一種高性能的嵌入式并行處理器。叫高性能的嵌入式并行處理器比較確切。 作為一種嵌入式并行處理引擎,通用圖形處理器特別適合于數(shù)據(jù)密集的信息組合,例如由許多像素組成的數(shù)字圖像。加利福尼亞州弗里蒙特的西彌斯計算機公司(Themis Computer)的羅杰•斯坦(Roger Stein)說,它的數(shù)以千計的處理器可以一個像素一個像素地處理圖像,那些像素可以直接進入通用圖形處理器,進行并行處理。 水星系統(tǒng)公司的6U OpenVPX GSC6201模塊具有雙通用圖形處理器,用于高端雷達、電子戰(zhàn)和圖像處理。 以前的并行處理計算機又大又復雜,其硬件結(jié)構(gòu)體系相當脆弱,只有專業(yè)的計算機人員才能夠編程。在通用圖形處理器出現(xiàn)之前,大多數(shù)的嵌入式計算都不可能使用并行處理器。由于計算機游戲產(chǎn)業(yè)的推動,通用圖形處理器技術(shù)正在成為數(shù)量越來越多的嵌入式計算應用的經(jīng)濟實用的選擇。有專業(yè)人士稱,通用圖形處理器適合于中等價位的中等計算能力的需求,可能既不適合于對成本敏感的低端應用,也不適合于最為昂貴的并行處理體系。寇蒂斯萊特控制-防務系統(tǒng)公司的威廉•皮勞德(William Pilaud)認為,通用圖形處理器的強項是進行浮點運算,特別適用于具有持續(xù)信息流的雷達、監(jiān)視和信息功能系統(tǒng)。 并非適用于所有的高性能嵌入式計算 皮勞德認為,通用圖形處理器并非適用于所有的高性能嵌入式計算,它很適合于需要進行大量快速傅里葉變換計算的應用場合,而不適合于需要作出判決的地方。通用圖形處理器的各個核中不具備CPU所具有的那種判決機制,也不具備CPU所具有的那種改變數(shù)據(jù)流的能力。也就是說,對于像導彈預警系統(tǒng)和智能運動控制那樣的由中斷所驅(qū)動的應用來說,通用圖形處理器就絕對沒有如Intel Core i7微處理器中的CPU那樣的能力。然而,在需要進行大量數(shù)據(jù)處理的應用中,就幾乎沒有什么其它嵌入式計算技術(shù)能夠與通用圖形處理器匹敵。 庫圖爾也說,通用圖形處理器雖然具有極高的處理速度,但是卻不具有在若干微秒甚至若干毫微秒的時間內(nèi)轉(zhuǎn)向的能力。在電子戰(zhàn)中,必須在若干毫微秒或者幾個微秒內(nèi)進行轉(zhuǎn)向,因此必須采用GPU。 在設(shè)計中采用通用圖形處理器還必須考慮到它的功耗和散熱。如果將通用圖形處理器與CPU和現(xiàn)場可編程門陣列一對一地進行比較的話,通用圖形處理器的功耗要大得多,所產(chǎn)生的熱量也多許多。據(jù)西彌斯公司的斯坦說,通用圖形處理器本身的功耗為250瓦,而且,移動的軍用嵌入式計算應用采用直流電源,可能難以提供通用圖形處理器所需要的功率。 一般說來,通用圖形處理器的功能越強大,它運行所需要的電功率也就越高。因此,對于某些要求更為苛刻的嵌入式計算應用來說,通用圖形處理器要達到其高性能低功耗的要求可能還需要一些時日。庫圖爾也說,某些通用圖形處理器雖然功能強大,但是由于功耗過高,產(chǎn)生的熱量過多,也不適合于嵌入式應用。 寇蒂斯萊特控制-防務系統(tǒng)公司提供的基于3U VPX3-491 NVIDIA Fermi GPGPU通用圖形處理器的計算引擎。 盡管通用圖形處理器功耗很大,發(fā)熱很多,但是進行嵌入式計算設(shè)計的人士還是應該在是否采用通用圖形處理器時就運用異乎尋常的熱管理方法能夠帶來的好處進行權(quán)衡。庫圖爾解釋說,對于某些功能強大的通用圖形處理器可以運用一些特殊的冷卻技術(shù)。水星系統(tǒng)公司就一直在進行“空氣流”( Air Flow-By)冷卻方式的開發(fā)工作,以一種不同尋常的方式利用空氣來冷卻發(fā)熱量大的處理器和多核器件。水星系統(tǒng)公司開發(fā)的“空氣流”冷卻技術(shù)用于空氣冷卻和傳導冷卻的VITA 48分系統(tǒng)機箱,而此型機箱廣泛地用于地面車輛和飛機上的高功率雷達、光電系統(tǒng)、信號情報裝置以及電子戰(zhàn)裝置之中。 圖形處理器的實質(zhì) 即使表面上看來運用通用圖形處理器進行數(shù)字信號處理并沒有利用其圖形處理能力,但是此類器件的圖形特性對于圖像裝置、雷達、聲納、信號情報以及其它進行復雜計算的裝置中的信號處理具有根本性的影響。斯坦對此的解釋是,將通用圖形處理器應用于信號處理是使圖形卡逆向運行。富蘭克林說,通用圖形處理器可以用來解析事物以得到可利用的信息,傳遞周圍環(huán)境中的有用材料。通用圖形處理器所擅長的是完成兩方面的工作,一是表現(xiàn)事物,二是解析事物。 通用圖形處理器為軍用信號處理應用系統(tǒng)的設(shè)計人員提供了可以利用的圖形處理技術(shù),幾乎免費地得到了極大的嵌入式并行處理能力。通用圖形處理器在航空航天和防務應用中的增長正是將現(xiàn)成的商用技術(shù)用于軍事技術(shù)領(lǐng)域的實例。富蘭克林說,圖形處理器的主要應用仍然是圖形處理,雖然圖形處理器制造商在計算機游戲中所掙的美元數(shù)以十億計,但是像NVIDIA那樣的公司每研發(fā)一個系列的圖形處理器都要投入20億美元的成本。 現(xiàn)在,不僅通用圖形處理器芯片的應用領(lǐng)域從單一的圖形處理裝置擴展到了信號處理裝置,而且通用圖形處理器的軟件編程語言也在向著信號處理和通用處理擴展。類似于“開放性圖形庫”( OpenGL)那樣的圖形處理語言就可以用于通用處理。 通用圖形處理器的設(shè)計優(yōu)勢 通用圖形處理器技術(shù)在航空航天和防務數(shù)字信號處理中得到越來越廣泛的使用,包括“開放性圖形庫”( Open Graphics Library, OpenGL)語言、NVIDIA公司創(chuàng)造的并行處理編程語言CUDA和最近出現(xiàn)的“開放性計算語言”( Open Computing Language, OpenCL)在內(nèi)的軟件編程語言在其中起到了相當大的作用。 在OpenGL, CUDA和OpenCL這些軟件編程語言出現(xiàn)之前,大規(guī)模并行處理計算機的編程是一項困難的任務,只有為數(shù)不多的專家采用神秘的編程語言才能夠完成。這些新出現(xiàn)的軟件編程語言,尤其是OpenCL有助于熟悉C語言和C++語言的程序編制人員接受通用圖形處理器技術(shù)。而且,OpenCL仍在進一步開發(fā)之中,最終可能會在通用圖形處理器、CPU和FPGA中通用。這樣的開發(fā)有助于在將來開發(fā)涉及到CPU、FPGA和通用圖形處理器組合運用的嵌入式計算結(jié)構(gòu)體系,全部用同樣的軟件語言編程和維護。庫圖爾認為,通用圖形處理器和FPGA不會直接而且迅速發(fā)生變化,因此CPU能夠在其中發(fā)揮重要作用,使得通用圖形處理器、CPU和 FPGA可以作為一種開放性的芯片來編程。 通用圖形處理器的開放性軟件庫的內(nèi)容也在增加,使得通用圖形處理器的軟件得到更為廣泛的應用,F(xiàn)在也有許多Linux操作系統(tǒng)可以供下載和增加通用圖形處理器的材料。據(jù)斯坦說,已經(jīng)采用FPGA和DSP之類的器件展開了多種類型的嵌入式計算方面的工作,這些系統(tǒng)采用一些專門化的處理技術(shù)。通用圖形處理器所使用的開放性的編程語言使情況發(fā)生了很大變化。雖然通用圖形處理器的編程類似于FPGA和DSP,但是使用OpenCL來編程,其專門化的程度就比較低了。 此外,通用圖形處理器的編程軟件也有助于它在嵌入計算中的發(fā)展。在通用圖形處理器中,多個處理核規(guī)則地排列在一起,因此隨著時間的推移,器件中處理核的數(shù)量會越來越多,但是通用圖形處理器的軟件沒有必要隨著處理核數(shù)量的增加而重新編寫。 每瓦功耗的能力 通用圖形處理器最能夠吸引嵌入式系統(tǒng)設(shè)計人員的方面是它的每瓦功耗產(chǎn)生的能力高,而這正是要求尺寸,重量和功率消耗(size, weight, and power consumption, SWAP)要小的系統(tǒng)的重要考慮之一。斯坦說,通用圖形處理器具有巨大的SWAP潛力,雖然它的功率消耗大,但是由于有許多的核,因此在某種程度上可以代替許多個通用處理器。用一個具有通用圖形處理器的服務器可以代替6個1U服務器,并且可以用它來加強大量必須進行的處理。 無論現(xiàn)在還是未來,對于像無人機那樣的要求在小的尺寸內(nèi)擁有大的處理能力的裝備來說,尺寸,重量和功率消耗小都是特別重要的。皮勞德說,載人機和無人機都存在裝備的尺寸問題,如果能夠有效地解決冷卻問題的話,通用圖形處理器就會具有相當大的吸引力。如果能夠提供幾百瓦的功率的話,則可以考慮使用通用圖形處理器。使用通用圖形處理器可以提高系統(tǒng)的效率。 目前,通用圖形處理器的各項性能正在改進,它的數(shù)字信號處理速度也正在提高。此前,通用圖形處理器存在的一個問題是反應速度慢,在綜合系統(tǒng)中數(shù)據(jù)在CPU和通用圖形處理器之間移動需要額外的時間。水星系統(tǒng)公司就采用了一種稱為“直接流”( StreamDirect)的方法,使數(shù)據(jù)直接從I/O源,例如傳感器向圖形處理器移動,以此來提高系統(tǒng)的反應速度。 NVIDIA公司也采取了類似的措施,于2010年引入了“直接圖形處理器”(GPUDirect)。開頭,GPUDirect用來提高了網(wǎng)絡和存儲裝置之間的通信速度;而后又用來支持圖形處理器和視頻應用程序接口(API)之間的對等網(wǎng)絡通信以及圖形處理器和第三方器件之間的RDMA。GPUDirect使得第三方網(wǎng)絡適配器、固態(tài)器件以及其它器件能夠直接讀寫CUDA主機和存儲器,而不需要經(jīng)過CPU。現(xiàn)在,GPUDirect RDMA使得FPGA、磁盤或者以太網(wǎng)的數(shù)據(jù)流能夠直接進入通用圖形處理器,而不需要經(jīng)過CPU。GPUDirect的這種能力會為各種航空航天和防務系統(tǒng),例如電子戰(zhàn)裝置直接帶來好處,將進行信號情報和電子戰(zhàn)基準計算的時間從原來的1毫秒縮短為20至50微秒。
更多相關(guān): AV集成