北卡羅萊納州大學和AMD公司的研究人員們最近找到了一種新方法,能夠讓AMD APU、Intel Sandy Bridge這種集CPU、GPU于一體的融合型處理器獲得平均20%以上的性能提升,最多可翻一番還多。工程師們主要是利用了x86處理器的一些獨特性 質,比如說資料預取和大容量緩存,從而在GPU上加速並行任務的執行。
研究論文作者之一、電子與電腦工程副教授周惠陽博士(Dr. Huiyang Zhou)認為:“晶片廠商開 發了‘融合架構’的處理器,將CPU、GPU整合在單獨一顆晶片上。這種方法降低了製造成本,讓電腦更加高效,但是CPU核心、GPU核心仍然都幾乎完 全在執行各自不同的功能,很少能夠合作執行任何程式,因此沒有預想得那麼高效。這就是我們要爭取解決的問題。”
他進一步解釋說:“我們的方法是讓GPU核心去執行計算型功能,同時讓CPU從片外主記憶體中預取GPU所需要的資料。這樣做的效率更高,因為它能讓CPU、GPU去做各自擅長的事情:GPU的長項是進行計算,CPU則適合做出決定、彈性獲取資料。”
其實CPU、GPU從主記憶體中獲取資料的速度是差不多的,但如果能讓CPU來提前判斷GPU所需資料,並拿來做好準備,GPU就可以減輕負擔,全身心投入到執行和計算中去了,效率自然可以得到提升。
在一個由CPU輔助進行的GPGPU處理器中,CPU啟動一個GPU程式後,會創建一個預執行程式。該程式使用編譯器演算法從GPU內核中自動生成, 包含GPU內核多個執行緒塊的記憶體訪問指令。CPU預執行程式會在GPU內核之前運行,這是因為:第一,CPU預執行執行緒僅包含來自GPU內核的記憶體拾取指 令,沒有浮點計算;第二,相比於GPU標量核心,CPU的運行頻率更高,指令級的並行度也更高。
研究人員們還利用了CPU二級緩存的預取能力,來提高CPU的記憶體頻寬,因此GPU執行緒訪問記憶體對三級緩存的依賴及其延遲都大為降低。
此外,因為預執行程式是直接由使用者級的應用程式控制的,精度和彈性都非常高。
工程師們通過對一系列基準測試進行試驗,最後得出結論稱這種方法可將處理器性能平均提升21.4%,最多可達驚人的113%。
這篇名為《CPU-GPU融合架構上的CPU輔助GPGPU》(CPU-Assisted GPGPU on Fused CPU-GPU Architectures)的論文將於二月底在新奧爾良舉行的第18屆國際高性能電腦架構研討會上公佈。該論文的作者還有北卡羅來納州大學的在校學生Yi Yang、Ping Xiang(看來都是華裔人士),以及來自AMD公司的Mike Mantor,而為研究提供資助的是美國國家科學基金會和AMD公司。
很顯然,AMD未來的Fusion APU非常有希望用到這些技術。
|