利用高效的編程技術(shù)發(fā)揮多內(nèi)核架構(gòu)優(yōu)勢
TI的OMAP 44xx平臺整合了ARM Cortex-A9、PowerVR SGX 540 GPU、C64x DSP和圖像信號處理器。每個內(nèi)核有專門的功能,處理器之間的通信不是對稱的。OMAP只工作在AMP模式,而P4080的內(nèi)核是SMP系統(tǒng),但也能夠?qū)?nèi)核劃分為AMP模式。8內(nèi)核芯片可以像8個獨立內(nèi)核那樣運行,在許多配置中也可以聯(lián)合起來使用(如一對雙內(nèi)核SMP子系統(tǒng),或四個單內(nèi)核子系統(tǒng))。
OMAP和P4080在高層架構(gòu)的主要區(qū)別是OMAP功能是固定的,內(nèi)核針對各自的事務(wù)做了優(yōu)化。這將使編程容易得多,因為可以根據(jù)匹配功能將應(yīng)用程序劃分到特定內(nèi)核。
每個子系統(tǒng)的性能水平受架構(gòu)的限制,但P4080可以調(diào)整劃分方案,雖然劃分通常是在系統(tǒng)啟動時完成的。系統(tǒng)設(shè)計師可以調(diào)整P4080中內(nèi)核的分配,前提是有足夠多的內(nèi)核。市場上也有內(nèi)核數(shù)量較少的QorIQ平臺,因此可以選用更經(jīng)濟(jì)的芯片。
IBM的Cell處理器填補(bǔ)了中間的空白。它采用了1個64位的Power內(nèi)核和8個增效處理單元(SPE)。所有SPE都是相同的(每個有256KB的內(nèi)存),它們工作在隔離狀態(tài),這與上述討論的共享內(nèi)存SMP系統(tǒng)有所不同。SPE內(nèi)沒有緩存,也不支持虛擬內(nèi)存。
對軟硬件設(shè)計來說,這種方式既有優(yōu)點又有缺點。優(yōu)點為是簡化了硬件實現(xiàn),但從多個角度看都使軟件復(fù)雜化了。例如,內(nèi)存管理受應(yīng)用程序控制,就像內(nèi)核間的通信一樣。數(shù)據(jù)在能夠操作之前必須要移進(jìn)SPE的本地內(nèi)存。完全開發(fā)Cell這樣的架構(gòu)很花時間,因為它們有別于更傳統(tǒng)的SMP或AMP平臺。多年來在像索尼的PlayStation 3這樣的基于Cell的平臺上所作的軟件改進(jìn)突顯了編程技術(shù)和經(jīng)驗的變化。
GPU等專用處理器
改變編程技術(shù)是使用圖形處理單元(GPU)是否成功的關(guān)健。來自ATI和Nvidia等公司的GPU在單個芯片內(nèi)有上百個內(nèi)核,這些GPU可以被整合進(jìn)多芯片解決方案,向開發(fā)人員提供上千個內(nèi)核。例如,集成進(jìn)1U機(jī)箱的4個Nvidia Tesla T10就可以提供960個內(nèi)核(圖4)。
對Tesla或其它任何兼容的Nvidia GPU芯片進(jìn)行編程都極具挑戰(zhàn)性,但類似Nvidia的CUDA這樣的架構(gòu)或基于CUDA的運行時利用可以使工作變得更加輕松。部分挑戰(zhàn)來自于Nvidia GPU的單指令、多線程(SIMT)架構(gòu)。與許多高性能系統(tǒng)一樣,這種GPU喜歡處理數(shù)組數(shù)據(jù)。對許多應(yīng)用來說這是不錯的選擇,但并非都是這樣,這正是GPU經(jīng)常要與多內(nèi)核CPU匹配的原因之一。
另一種并行編程架構(gòu),CUDA和OpenCL(開放計算語言),則完全匹配GPU方法(使用與主處理器分開的存儲器)。這意味著數(shù)據(jù)在能被操作之前必須從一個地方移動到另一個地方。C編程語言有一定擴(kuò)展,但也有限制。例如,它是自由遞歸的,不支持函數(shù)指針。其中一些限制源自SIMT方法。
許多應(yīng)用程序使用CUDA,但與傳統(tǒng)SMP平臺相比,性能增益有很大的變化,從2倍到100倍不等。造成這種變化的原因是,線程以32為組運行時的效率最高。分支不影響性能,前提是32線程組在同一分支內(nèi)。
像GPU這樣的專用處理器,其采用的方案是同時提供圖形和多內(nèi)核處理。另外一種方案是使用許多傳統(tǒng)內(nèi)核,如Intel的Larrabee(圖5)。Larrabee使用專門針對矢量處理優(yōu)化過的x86兼容內(nèi)核。
評論