|
公司基本資料信息
|
英偉達(dá)測試Tesla K20 GPU協(xié)處理器
英偉達(dá)對絕對性能一直沒有給出明確的態(tài)度,但是我們預(yù)計,GK110在處理器核心上,以1GHz的時鐘頻率,有望提供每秒近2萬億次浮點運算的原始雙精度浮點性能,而在單精度下可能達(dá)到每秒3.5萬億次浮點運算。這性能大概是特斯拉M20系列GPU協(xié)處理器所用的現(xiàn)有Fermi GF110 GPU的三倍,也就是說相當(dāng)于每瓦散熱性能高出三倍。
早在今年5月英偉達(dá)透露其高端GK110圖形芯片的一部分新功能時,這家公司聲稱,這款GPU即圖形處理器的兩項新功能:Hyper-Q和動態(tài)并行處理(Dynamic Parallelism)有望幫助GPU更高效地運行,而CPU即處理器不會一直干預(yù)。如今英偉達(dá)在逐步透露用于服務(wù)器的特斯拉(Tesla)K20 GPU協(xié)處理器的一些基準(zhǔn)測試結(jié)果,GK110預(yù)計會在今年晚些時候交付。
GK110 GPU芯片有時稱為Kepler2,絕對是功能超強的怪獸:芯片代工廠臺積電公司(TSMC)采用了非常熱門的28納米工藝,在一塊晶片上蝕刻了超過71億個晶體管。它采用了15個極致流式多處理器(SMX)處理單元,每個單元又有192個單精度CUDA(計算統(tǒng)一設(shè)備架構(gòu))核心,為每三個一組的CUDA核心添加了64個雙精度浮點單元。這為你在GK110芯片上的最多2880個CUDA核心上提供了960個雙精度浮點單元。
英偉達(dá)對絕對性能一直沒有給出明確的態(tài)度,但是我們預(yù)計,GK110在處理器核心上,以1GHz的時鐘頻率,有望提供每秒近2萬億次浮點運算的原始雙精度浮點性能,而在單精度下可能達(dá)到每秒3.5萬億次浮點運算。這性能大概是特斯拉M20系列GPU協(xié)處理器所用的現(xiàn)有Fermi GF110 GPU的三倍,也就是說相當(dāng)于每瓦散熱性能高出三倍。
僅僅擁有更多的處理器核心提升不了性能。你還得更高效地利用這些核心;這時候,Hyper-Q和動態(tài)并行處理這兩項功能正好可以派得上用場。
值得關(guān)注的是,這兩項功能并未出現(xiàn)在GK104 GPU芯片上,這款芯片用在了英偉達(dá)已經(jīng)交付給需要單精度浮點運算處理的客戶的特斯拉K10協(xié)處理器上。特斯拉K10 GPU協(xié)處理器把兩塊GK104芯片放到一塊PCI-Express卡上,在225瓦散熱范圍內(nèi)提供了每秒4.58萬億次浮點的單精度運算能力——這個性能是Fermi M2090協(xié)處理器的整整3.5倍。
許多超級計算機應(yīng)用程序運行消息傳遞接口(MPI)協(xié)議,將工作調(diào)度分派到并行機器上,而Hyper-Q讓GPU得以在處理MPI工作分配時,以一種更合作的方式與CPU協(xié)同運行。如果使用Fermi卡,GPU每次只有一個MPI任務(wù)由CPU調(diào)度分配,然后卸載給GPU。這顯然是個瓶頸。
英偉達(dá)為Kepler GPU增添的Hyper-Q功能
借助Hyper-Q,英偉達(dá)為GPU本身添加了一個隊列,現(xiàn)在處理器可以同時把最多32個不同的MPI任務(wù)調(diào)度分派給GPU。沒必要改動一行MPI代碼,就可以充分利用Hyper-Q;CPU與GPU進(jìn)行聯(lián)系時,這項功能完全是自動發(fā)揮作用。
為了表明Hyper-Q的效果有多好(以及那些數(shù)千個CUDA核心不會無所事事),英偉達(dá)的高級開發(fā)工程師Peter Messmer拿來了名為CP2K的一些分子模擬代碼。他在博客中表示,這種代碼“對GPU來說向來一向很難處理的代碼”,測試了在Hyper-Q功能先關(guān)閉,后開啟的特斯拉K20協(xié)處理器上運行起來有多好。
正如Messmer解釋的那樣,當(dāng)MPI進(jìn)程被CPU限制于少量的工作時,MPI應(yīng)用程序“出現(xiàn)了打折扣的性能提升”。CPU頻繁接到任務(wù),而GPU在許多時候處于閑置狀態(tài)。而混合系統(tǒng)中的GPU提速幅度也不是很明顯,你從這個基準(zhǔn)測試中可以看出。這項測試把特斯拉K20協(xié)處理器放到配備16核心皓龍6200處理器的未來版克雷XK7超級計算機節(jié)點里面。
Hyper-Q為運行CP2K分子模擬的節(jié)點將性能提升了2.5倍。
就這個模擬864個水分子的特定數(shù)據(jù)集而言,增添CPU和GPU節(jié)點組合其實提升性能的幅度不是很大。如果是Hyper-Q功能沒有開啟的16個節(jié)點,你能獲得12倍的性能(由于某種原因,英偉達(dá)的Y軸代表較之兩個CPU+GPU節(jié)點的相對提速)。但在擁有16個CPU+GPU節(jié)點、Hyper-Q功能開啟的同一系統(tǒng)上,性能高達(dá)2.5倍。你要知道,英偉達(dá)并沒有承諾:啟用Hyper-Q功能后,所有代碼都會類似的提速效果。
我們詢問英偉達(dá)特斯拉事業(yè)部的高級主管Sumit Gupta,為什么CP2K測試不對Fermi GPU和Kepler GPU進(jìn)行橫向比較。他開玩笑說,英偉達(dá)總得為今年11月在鹽湖城召開的SC12超級計算大會保留壓箱之作。
借助GK110 GPU的另一項功能:動態(tài)并行處理,GPU就能夠根據(jù)需要在GPU里面調(diào)度分派工作,受制于由CPU分派給它的運算任務(wù)。如果是Fermi GPU,系統(tǒng)中的CPU把工作分派給一個或多個CUDA核心,工作的處理結(jié)果會被送回到CPU。如果進(jìn)一步的運算必不可少,CPU就把這部分?jǐn)?shù)據(jù)和算法分派到GPU,然后GPU把處理結(jié)果發(fā)回給CPU,依次往返,直至運算計算完畢。
動態(tài)并行處理:讓GPU調(diào)度處理自己的工作
如果使用現(xiàn)有的Fermi GPU,會有大量的往返操作。動態(tài)并行處理功能讓GPU可以處理自己的工作。但是更重要的是,它還可以讓模擬的精細(xì)度實現(xiàn)動態(tài)變化:處理值得關(guān)注的任務(wù)時,獲得更精細(xì)的粒度,而在什么都沒進(jìn)行的模擬方面,基本上什么都不做。
通過調(diào)整模擬的精細(xì)度和數(shù)據(jù)的精細(xì)度,你就能獲得更好的結(jié)果,(在更短的時間內(nèi))處理更少的工作,不然在所有區(qū)域和時間片處理細(xì)粒度的模擬時效果差強人意。
GK110 GPU來自動態(tài)并行處理的性能提升
動態(tài)并行處理方面最重要的一點是,GPU會針對運算的粗粒度自動作出決策;根據(jù)需要,對數(shù)據(jù)作出響應(yīng)、啟動新的線程。
為了展示動態(tài)并行處理的早期測試結(jié)果,英偉達(dá)沒有進(jìn)行流體力學(xué)模擬或者諸如此類的模擬,而是在另一篇博文中,英偉達(dá)工程師Steven Jones對動態(tài)并行處理功能先開啟、后關(guān)閉的K20 GPU協(xié)處理器進(jìn)行了Quicksort基準(zhǔn)測試。
如果你忘了以前學(xué)的計算機學(xué)入門課程,Jones在博文中添加了他在測試中所用的Quicksort代碼。值得關(guān)注的是,在動態(tài)并行處理功能開啟并使用的GPU上編寫Quicksort例程只用了一半的代碼,那是由于你沒必要控制CPU與GPU之間的來回操作。
從上面那張圖中可以看出,如果你為由CPU排序的每一段數(shù)據(jù)處理所有的運行工作——Fermi GPU就需要這么處理,那么它要花更長的時間來排序。在K20 GPU上,動態(tài)并行處理功能把Quicksort的性能提升了兩倍,幾乎能夠隨數(shù)據(jù)集的大小靈活擴展。值得關(guān)注的是,這個K20在處理Quicksort方面與實際的Fermi GPU相比到底好多少,以及其他工作負(fù)載和模擬如何處理這種GPU自主性