“CPU+GPU”:解決超算中心性能與能耗的矛盾
作為世界上首個(gè)把GPU加速器與通用CPU計(jì)算相結(jié)合的超級(jí)計(jì)算機(jī),“天河一號(hào)A”與“CPU+GPU“架構(gòu)的淵源其實(shí)早在2005年就開(kāi)始了。
劉光明主任介紹道,當(dāng)時(shí),超級(jí)計(jì)算機(jī)的已經(jīng)達(dá)到了千萬(wàn)億級(jí)或者更高級(jí)別,用通用CPU計(jì)算機(jī)去做的話規(guī)模和功耗都太大,而且使用起來(lái)不一定很好。一個(gè)非常典型的例子,2011年下半年,美國(guó)IBM承擔(dān)的一個(gè)美國(guó)計(jì)算機(jī)的研究項(xiàng)目——完全通用CPU的方法去構(gòu)建最快計(jì)算機(jī),結(jié)果由于研制費(fèi)用高、機(jī)器占地規(guī)模和功耗大導(dǎo)致項(xiàng)目流產(chǎn)了。
針對(duì)CPU計(jì)算在HPC領(lǐng)域的瓶頸,國(guó)防科技大學(xué)于2005年到2007年之間研究了如何將用通用CPU與GPU加速器結(jié)合起來(lái),并加速高性能計(jì)算的應(yīng)用。當(dāng)時(shí)國(guó)防科大自己做了一個(gè)流處理器,結(jié)合起來(lái)之后發(fā)現(xiàn)有很大一類高性能計(jì)算機(jī)的應(yīng)用,比如流體力學(xué)、氣動(dòng)力學(xué)、FFT、CFD,還有很多算法都適合這種結(jié)構(gòu),非常適用于解決復(fù)雜的數(shù)學(xué)問(wèn)題。于是,2009年的天河一號(hào)第一期就選用了AMD的GPU來(lái)替代當(dāng)時(shí)國(guó)防科技大學(xué)自己研究的流處理器,這就是當(dāng)時(shí)排名是世界第五,亞洲第一的“天河一號(hào)”。
2010年開(kāi)始,天津超算中心決定使用NVIDIA Tesla 2050。劉光明表示,之所以將GPU換成了NVIDIA Tesla 2050,主要是因?yàn)锳MD的GPU沒(méi)有ECC校驗(yàn),而Tesla有ECC校驗(yàn)。與此同時(shí),將天河一號(hào)的高速互聯(lián)系統(tǒng)換成了自主研發(fā)的銀河的高速互聯(lián),操作系統(tǒng)也換成了自己強(qiáng)化的操作系統(tǒng),并且在升級(jí)之后又做了一些優(yōu)化,這樣就誕生了2010年11月Top500排行榜的冠軍——“天河一號(hào)A”。憑著“CPU+GPU異構(gòu)融合體系結(jié)構(gòu)、64位多核多線程自主飛騰1000CPU,以及自主高速互聯(lián)通信技術(shù)”等三大技術(shù)創(chuàng)新,“天河一號(hào)A”給全世界留下了深刻的印象。也是從那時(shí)開(kāi)始,CPU+GPU異構(gòu)融合體系結(jié)構(gòu)作為一個(gè)全新的HPC體系結(jié)構(gòu)開(kāi)始受到世界范圍內(nèi)的關(guān)注。
當(dāng)時(shí),國(guó)際上對(duì)于天河一號(hào)A所采用的“CPU+GPU”異構(gòu)融合計(jì)算體系存在諸多爭(zhēng)議,一些國(guó)家認(rèn)為這樣的計(jì)算架構(gòu)對(duì)于實(shí)際的應(yīng)用環(huán)境價(jià)值不大,主要原因是基于異構(gòu)混合架構(gòu)的編程難度太大,而且原有的應(yīng)用移植也比較困難,所以就算Linpack測(cè)試性能再好,對(duì)于實(shí)際生產(chǎn)并沒(méi)有多大的價(jià)值。
而事實(shí)上,在兩年多以后的今天,“CPU+GPU”異構(gòu)融合架構(gòu)體系已經(jīng)被越來(lái)越多的超級(jí)計(jì)算機(jī)所采用,像美國(guó)高性能超算中心、德國(guó)超算中心等這些國(guó)家或地區(qū)最大的系統(tǒng),都紛紛的采用了GPU加速并行計(jì)算。人們對(duì)于“CPU+GPU”異構(gòu)計(jì)算的態(tài)度的轉(zhuǎn)變,與“天河一號(hào)A”在“CPU+GPU”架構(gòu)的應(yīng)用方面令人矚目的成就是不可分割的。
劉光明主任介紹道,天河一號(hào)A系統(tǒng)分成兩部分,一部分是Intel CPU加上NVIDIA GPU構(gòu)成了一個(gè)新的系統(tǒng),這個(gè)系統(tǒng)占整個(gè)天河系統(tǒng)的7/8,另外1/8的部分是用自主研發(fā)的CPU——飛騰1000,這套系統(tǒng)主要是進(jìn)行實(shí)驗(yàn)優(yōu)化的環(huán)境,有很多科技計(jì)算的程序和應(yīng)用都在上面做測(cè)試。
“目前,基于‘天河一號(hào)A’的異構(gòu)結(jié)構(gòu)的幾個(gè)典型的應(yīng)用情況還是很不錯(cuò)的”,劉光明向記者分享了在異構(gòu)架構(gòu)應(yīng)用方面的經(jīng)驗(yàn)和感觸,“以最典型的石油勘探數(shù)據(jù)處理,經(jīng)過(guò)天河一號(hào)A,已經(jīng)完成了具有自主知識(shí)產(chǎn)權(quán)的石油三維歷史偏移。石油勘探數(shù)據(jù)處理軟件過(guò)去是掌握在國(guó)外公司手上,這對(duì)于我們來(lái)講是很不利的,一方面價(jià)格很高,另一方面,有的東西就算有錢(qián)也不賣(mài)給你。從2011年年初開(kāi)始,基于‘天河一號(hào)A’跟東方物理進(jìn)行合作,用了兩年的時(shí)間,將該軟件從通用CPU的版本上升到CPU+GPU的版本,整體性能提升了大概六倍。同時(shí)在這個(gè)基礎(chǔ)上又將磁盤(pán)的數(shù)據(jù)處理系統(tǒng)變成一個(gè)基于內(nèi)存的數(shù)據(jù)系統(tǒng)。”
除此之外,現(xiàn)在的氣動(dòng)力學(xué)、大飛機(jī)的仿真,還有一些源的分析等應(yīng)用都是基于CPU+GPU的異構(gòu)計(jì)算體系,現(xiàn)在應(yīng)用的效果都不錯(cuò)。
除了在性能方面的提升之外,CPU+GPU架構(gòu)帶來(lái)的能效的提升也是非常可觀的,據(jù)透露,整個(gè)天河一號(hào)A系統(tǒng)的平均利用率達(dá)到40%,而電費(fèi)成本每年大約在1500萬(wàn)到2000萬(wàn)人民幣之間,這樣的能效相比其他的超算中心而言大有提升。
NVIDIA:基于開(kāi)普勒架構(gòu)的HPC應(yīng)用數(shù)數(shù)量將突破一千
“CPU+GPU”架構(gòu)在一定程度上緩解了超算中心的計(jì)算能力與能耗之間的矛盾,。然而,正如本文開(kāi)篇所提到的,如何把這強(qiáng)大的計(jì)算能力轉(zhuǎn)化成生產(chǎn)力才是超算中心最應(yīng)該關(guān)注的?畢竟,對(duì)于一個(gè)國(guó)家而言,HPC產(chǎn)業(yè)發(fā)展的目的遠(yuǎn)遠(yuǎn)不止那個(gè)峰值計(jì)算的數(shù)值或者排行榜上的名次。這就意味著需要把強(qiáng)大的計(jì)算能力應(yīng)用到各行各業(yè)的實(shí)際應(yīng)用當(dāng)中,對(duì)于“CPU+GPU”異構(gòu)架構(gòu)而言,就需要通過(guò)更多的應(yīng)用程序,才能把這強(qiáng)大的計(jì)算能力傳遞到應(yīng)用領(lǐng)域。
作為“CPU+GPU”異構(gòu)架構(gòu)的最主要的推動(dòng)者之一,NVIDIA一直在努力推動(dòng)異構(gòu)編程,并且取得了一定的成績(jī)。Shanker 表示,現(xiàn)在有300個(gè)以上應(yīng)用軟件支持開(kāi)普勒架構(gòu),一到兩年內(nèi),這個(gè)數(shù)字將會(huì)突破1000個(gè),各種各樣的解決科學(xué)問(wèn)題的工具都可以在CPU+GPU的異構(gòu)體系上運(yùn)行。
Shanker介紹道,在CPU+GPU的異構(gòu)架構(gòu)上進(jìn)行編程主要有三種方式:對(duì)于存在了很多年的應(yīng)用,可以采用OpenACC的開(kāi)放標(biāo)準(zhǔn)進(jìn)行小小的改動(dòng),只需要通過(guò)一些標(biāo)記代碼,就可以將傳統(tǒng)的應(yīng)用很快速地轉(zhuǎn)移到CPU+GPU的架構(gòu)上來(lái)運(yùn)行。比如美國(guó)能源實(shí)驗(yàn)室的S3D核聚變應(yīng)用程序有100萬(wàn)行代碼,后來(lái)只改了400行,然后通過(guò)編譯器編譯,就簽到了CPU+GPU的混合計(jì)算平臺(tái)上,并取得了六倍的速度提升。
第二種方法,對(duì)于一些需要重頭開(kāi)始寫(xiě)的應(yīng)用程序,NVIDIA建議用CUDA GPU并行編程的方法, CUDA實(shí)際上就是把傳統(tǒng)的C語(yǔ)言進(jìn)行一些語(yǔ)法方法的擴(kuò)展,寫(xiě)程序的方法不變,重新寫(xiě)出來(lái)的程序效率可以大大的提升。
最后一種方法,就是針對(duì)一些比較規(guī)范的程序,可以調(diào)用庫(kù)函數(shù)。NVIDIA提供了很多系統(tǒng)級(jí)的基于GPU的庫(kù)函數(shù),還有很多是大學(xué)、科研機(jī)構(gòu)提供的。
聯(lián)合實(shí)驗(yàn)室推動(dòng)產(chǎn)業(yè)轉(zhuǎn)型升級(jí)
為了進(jìn)一步推動(dòng)在CPU+GPU的異構(gòu)計(jì)算的應(yīng)用,2013年1月17日,天津超算中心和NVIDIA宣布建立聯(lián)合實(shí)驗(yàn)室。聯(lián)合實(shí)驗(yàn)室將依托“天河一號(hào)A”超級(jí)計(jì)算機(jī),主要研究任務(wù)包括兩個(gè)方面:一個(gè)方面就是在異構(gòu)結(jié)構(gòu)上再優(yōu)化,用NVIDIA的一些新的軟件,提升用戶使用的效率。第二個(gè)方面,基于天河一號(hào)A新的通信處理技術(shù)、硬件和軟件,實(shí)現(xiàn)云計(jì)算、物聯(lián)網(wǎng),包括智慧城市和三網(wǎng)合一等。
劉光明表示,跟有很強(qiáng)優(yōu)勢(shì)的國(guó)外的公司合作,目的就是實(shí)現(xiàn)強(qiáng)強(qiáng)結(jié)合,將國(guó)外的技術(shù)優(yōu)勢(shì)與我們自身的優(yōu)勢(shì)相結(jié)合,達(dá)到雙贏,最終目的是推動(dòng)我們國(guó)家向新的生產(chǎn)方式轉(zhuǎn)變。
此次聯(lián)合實(shí)驗(yàn)室的成立,標(biāo)志著我國(guó)HPC產(chǎn)業(yè)從硬件資源的升級(jí)轉(zhuǎn)變?yōu)檐浖腿瞬刨Y源的升級(jí),作為“CPU+GPU”異構(gòu)計(jì)算的重要推動(dòng)者,NVIDIA也將繼續(xù)在推動(dòng)天津超算中心未來(lái)的發(fā)展和應(yīng)用中扮演重要的角色。
后記:隨著環(huán)境問(wèn)題不斷加劇,綠色節(jié)能已經(jīng)成為當(dāng)今全球范圍內(nèi)最受關(guān)注話題之一,“CPU+GPU”異構(gòu)計(jì)算的架構(gòu)將會(huì)在未來(lái)的HPC領(lǐng)域更大的空間,當(dāng)前,異構(gòu)計(jì)算生態(tài)系統(tǒng)正在不斷成熟壯大,越來(lái)越多的組織和機(jī)構(gòu)加入到異構(gòu)計(jì)算的隊(duì)伍,基于“CPU+GPU”架構(gòu)的應(yīng)用不斷豐富,全球范圍內(nèi)的超算中心或?qū)⒂瓉?lái)一個(gè)異構(gòu)計(jì)算的新時(shí)代。