前段時(shí)間,新一期全球超級(jí)計(jì)算機(jī)500強(qiáng)(TOP500)榜單在美國(guó)鹽湖城公布,中國(guó)神威太湖之光蟬聯(lián)冠軍,中國(guó)天河二號(hào)屈居次席。除神威太湖之光和天河二號(hào)外,中國(guó)也在TOP500上榜總數(shù)上與美國(guó)持平。
正如天河2號(hào)獲得6連冠后卻因?yàn)槭褂昧?a href="http://www.wenjunhu.com/tags/intel/" target="_blank">Intel公司的至強(qiáng)Phi計(jì)算卡而被一些別有用心之徒百般詆毀,在神威太湖之光實(shí)現(xiàn)了包括處理器在內(nèi)的所有核心部件全部國(guó)產(chǎn)化后,網(wǎng)絡(luò)上又傳來(lái)了不和諧的音符——有媒體認(rèn)為,神威太湖之光的“可用性能與理論性能相去甚遠(yuǎn)”,并以“HPL效率是74.16%”,“HPCG測(cè)試只有0.371PFLOPS,效率則只有0.3%,這比天河2號(hào)的1.1%還要低”來(lái)質(zhì)疑神威太湖之光。
言下之意,就是神威太湖之光的可用性能與理論性能相去甚遠(yuǎn),只能用來(lái)跑分,根本就用不來(lái)。那么什么是Linpack和HPCG,神威太湖之光真的只能用來(lái)跑分么?
什么是Linpack?
上面媒體的一段話(huà)引用了幾個(gè)測(cè)試的結(jié)果,并以74.16%、0.3%、1.1%等實(shí)際數(shù)據(jù)來(lái)說(shuō)明中國(guó)超算可用性能與理論性能相去甚遠(yuǎn),非常具有迷惑性。筆者簡(jiǎn)單的就Linpack測(cè)試和HPCG測(cè)試做個(gè)簡(jiǎn)要說(shuō)明。
Linpack指的是矩陣求解,在科學(xué)計(jì)算中把實(shí)際問(wèn)題抽象成方程組,然后離散成矩陣計(jì)算矩陣倍,代表的是傳統(tǒng)的以矩陣為基礎(chǔ)的數(shù)值計(jì)算方法,常用于理科和工科的數(shù)值求解和數(shù)值模擬。那么為何超算大多以L(fǎng)inpack測(cè)試成績(jī)論高低呢?原因就在于很多科學(xué)計(jì)算模型都包含了矩陣求解,比如解微分方程,因此在超算任務(wù)中具有不可取代性——像輻射流體力學(xué)就是求解微分方程;而核爆炸模擬其實(shí)就是輻射流體力學(xué)+蒙特卡洛預(yù)測(cè);雷達(dá)截面的矩量法計(jì)算也有賴(lài)于解微分方程;業(yè)內(nèi)專(zhuān)家還告訴筆者“現(xiàn)在的深度學(xué)習(xí)算法的核心算法與Linpack的是一個(gè)”。..。..。因此,linpack測(cè)試并非是一些跑分軟件那樣:不服跑個(gè)分,而是真正具有實(shí)戰(zhàn)價(jià)值的測(cè)試。
Linpack效率指的是實(shí)際計(jì)算時(shí)的次數(shù)除以理論計(jì)算,舉例來(lái)說(shuō):
神威太湖之光的理論性能為125.4 PFlops,Linpack浮點(diǎn)性能93PFlops,Linpack效率為74.16%。
天河2號(hào)的理論性能54.9Pflops,Linpack雙精浮點(diǎn)性能33.8PFlops,Linpack效率61.5%
泰坦的理論性能27 Pflops,Linpack雙精浮點(diǎn)性能17.6 PFlops,Linpack效率為65.19%。
紅杉的理論性能為20.1Pflops,Linpack測(cè)試雙精浮點(diǎn)性能為16.3P,Linpack效率高達(dá)81%。
這里要說(shuō)明一點(diǎn),就是超算的規(guī)模越大,Linpack測(cè)試效率的提高就越難——規(guī)模大到如一定程度,維持一段時(shí)間的穩(wěn)定運(yùn)行是非常難的,何況是太湖神威之光93PFlops的高性能。而神威太湖之光在Linpack測(cè)試性能是美國(guó)超算泰坦5倍以上的情況下,Linpack測(cè)試效率大幅領(lǐng)先于泰坦,這就非常可貴了!至于紅杉的Linpack測(cè)試效率為何會(huì)高達(dá)81%,筆者會(huì)在下文做講解。
另外還要說(shuō)明的的一點(diǎn),天河2號(hào)Linpack效率低于美國(guó)泰坦的原因——一方面是因?yàn)樘旌?號(hào)的規(guī)模更大,影響了效率;另一方面是因?yàn)樘旌?號(hào)采用的是Intel的至強(qiáng)PHI計(jì)算卡,而該計(jì)算卡就以理論性能強(qiáng)大,但穩(wěn)定性能相對(duì)偏低著稱(chēng)——同樣使用E5和至強(qiáng)PHI計(jì)算卡的美國(guó)超算Stampede,不僅運(yùn)算能力僅為天河2號(hào)的五分之一左右(未升級(jí)前,升級(jí)后為三分之一),整機(jī)效率比天河2號(hào)更低,只有60.7%。
總而言之,以神威太湖之光的規(guī)模,取得Linpack效率達(dá)到74.16%已經(jīng)非常厲害了,在采用異構(gòu)計(jì)算的超算中屬于頂尖水平,大家千萬(wàn)不要被一些無(wú)良媒體誤導(dǎo)了。
異構(gòu)超算在Linpack效率上天然低于同構(gòu)超算
對(duì)于筆者認(rèn)為的神威太湖之光Linpack效率達(dá)到74.16%屬于頂尖水平的結(jié)論,也許某些人會(huì)提出異議,比如會(huì)列舉出TOP500排名第四的美國(guó)超算紅杉,紅杉的理論性能為20.1Pflops,Linpack測(cè)試雙精浮點(diǎn)性能為16.3P,Linpack效率高達(dá)81%。
那么為何紅杉的Linpack效率如此之高呢?原因就在于和神威太湖之光、天河2號(hào)、泰坦等采用異構(gòu)計(jì)算的超算不同,紅杉采用的依舊是傳統(tǒng)的同構(gòu)計(jì)算技術(shù)。
超算可以分為兩種架構(gòu)。采用同構(gòu)計(jì)算架構(gòu)的超算只需要單純使用一種處理器,在同一類(lèi)型的處理器上執(zhí)行計(jì)算任務(wù)。舉例來(lái)說(shuō),中國(guó)超算神威藍(lán)光采用了申威1600,美國(guó)的米拉和紅杉采用了PowerPC-A2處理器,這些超算都沒(méi)有采用GPU或其它類(lèi)型的眾核芯片等加速器。因此,紅杉、米拉、神威藍(lán)光都是采用同構(gòu)計(jì)算架構(gòu)超算的代表。
異構(gòu)計(jì)算使用CPU、GPGPU、GPDSP、ASIC、FPGA和其它類(lèi)型的眾核處理器來(lái)處理不同類(lèi)型的計(jì)算任務(wù)。采用異構(gòu)計(jì)算架構(gòu)的超算會(huì)使用至少2種類(lèi)型的處理器,其中異構(gòu)計(jì)算架構(gòu)中通用CPU負(fù)責(zé)邏輯復(fù)雜的調(diào)度和串行任務(wù),加速器負(fù)責(zé)并行度高的任務(wù),實(shí)現(xiàn)計(jì)算加速。具體來(lái)說(shuō),采用異構(gòu)計(jì)算架構(gòu)的超算在運(yùn)算中既使用處理器,又使用GPU或眾核芯片等加速器。以中國(guó)天河2號(hào)和神威太湖之光為例,天河2號(hào)有16000個(gè)計(jì)算節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)由2片Intel-E5-2692和3片Xeon-Phi組成,共使用了32000片Intel-E5-2692和48000片Xeon-Phi。神威太湖之光雖然只采用了申威26010眾核處理器,看起來(lái)像同構(gòu)超算,但由于申威26010集成了4個(gè)管理核心和256個(gè)運(yùn)算核心,一片申威26010就是一個(gè)計(jì)算節(jié)點(diǎn),管理核心執(zhí)行類(lèi)似于天河計(jì)算節(jié)點(diǎn)中E5的功能,而256個(gè)運(yùn)算核心則發(fā)揮了類(lèi)似于Xeon-Phi的加速作用,因此也屬于異構(gòu)超算。
由于異構(gòu)編程需要提前預(yù)知模型并做特殊優(yōu)化,而且很多應(yīng)用未必適合異構(gòu)模型,使得采用異構(gòu)計(jì)算的超算對(duì)于編程和優(yōu)化的要求更高——一位業(yè)內(nèi)人士就評(píng)價(jià),“異構(gòu)編程太勞心勞力了,高端人才的精力應(yīng)該用在關(guān)注自己的專(zhuān)業(yè)上來(lái),而不是當(dāng)代碼狗。..。..年紀(jì)大一點(diǎn)的科研人員就不愿自己編代碼了,一些年青但不愿勞思費(fèi)神的科研人員也不愿意編寫(xiě)異構(gòu)代碼。..。..”。因此,采用異構(gòu)計(jì)算的超算在Linpack效率上天然低于采用同構(gòu)計(jì)算的超算。
那么既然同構(gòu)超算在編程方便和效率上具有優(yōu)勢(shì),為何全球超算都轉(zhuǎn)向異構(gòu)計(jì)算呢?原因就在于,這樣超算可以獲得更高的性能,之前抱怨異構(gòu)編程太勞心勞力的業(yè)內(nèi)朋友就表示,“超算方面眾核是近些年的趨勢(shì),雖然編程勞心費(fèi)力,但是在性能面前我們還是得忍,相同成本誰(shuí)不想性能更好,科研對(duì)性能的需求可以用饑渴來(lái)形容”。
嘮嘮叨叨說(shuō)這么多,主要是為了打一個(gè)補(bǔ)丁,防止別有用心之徒用美國(guó)同構(gòu)超算和中國(guó)異構(gòu)超算比Linpack效率,進(jìn)而抹黑中國(guó)超算Linpack效率低下,何況前者的規(guī)模遠(yuǎn)遠(yuǎn)小于后者。
什么是HPCG
目前,評(píng)價(jià)超算的指標(biāo)有不少,除了測(cè)試Linpack的TOP500,還有強(qiáng)調(diào)的是內(nèi)存帶寬和延遲的Graph500,Graph500對(duì)全系統(tǒng)的內(nèi)存帶寬和內(nèi)存延遲有很高的要求,而計(jì)算能力本身已經(jīng)不影響測(cè)試結(jié)果了,這種測(cè)試偏向于訪(fǎng)存密集型運(yùn)算,在大數(shù)據(jù)分析等場(chǎng)景下比較有意義。
除Graph500之外,還有強(qiáng)調(diào)節(jié)能環(huán)保的Green500。那么,在Graph500和Green500排行榜上,神威太湖之光的表現(xiàn)如何呢?Graph500名列第二,Green500名列第三。
不過(guò),也有工程師認(rèn)為無(wú)論是TOP500,還是Graph500都過(guò)于極端——TOP500過(guò)于強(qiáng)調(diào)計(jì)算性能,Graph500過(guò)于強(qiáng)調(diào)帶寬和延遲等因素,因此采用了新的標(biāo)準(zhǔn)HPCG。
HPCG是美國(guó)正在推的一個(gè)新測(cè)試標(biāo)準(zhǔn),目前還沒(méi)有被業(yè)界廣泛接受,HPCG代表了共軛梯度迭代法的一類(lèi)應(yīng)用的計(jì)算和通信特征,僅僅代表了某一個(gè)方面的特征,并不能涵蓋超算的所以特征。HPCG比較重視計(jì)算性能和通信的平衡,如果計(jì)算性能和通信不是一個(gè)量級(jí)的,即便兩項(xiàng)指標(biāo)分開(kāi)看都很強(qiáng),但也會(huì)導(dǎo)致HPCG偏低的結(jié)果。
另外,HPCG也存在一些缺陷,據(jù)業(yè)內(nèi)人士介紹,“由于針對(duì)具體硬件結(jié)構(gòu)修改共軛梯度算法很容易得到高得多的成績(jī),為了避免這一點(diǎn),HPCG代碼目前還在鎖定狀態(tài),不準(zhǔn)修改算法本身。但在使用中,用戶(hù)是會(huì)修改算法的,這使得這一測(cè)試會(huì)脫離實(shí)際”。
在某媒體的報(bào)道中,“但在更具實(shí)戰(zhàn)意義的HPCG性能(高性能共軛梯度基準(zhǔn)測(cè)試)中,太湖之光只有0.371PFLOPS,效率則只有0.3%,這比天河2號(hào)的1.1%還要低”,0.3%和1.1%的數(shù)據(jù)和該媒體的這種表述很容易讓人誤認(rèn)為,天河2號(hào)和神威太湖之光的HPCG測(cè)試結(jié)果非常差,但實(shí)際上,在HPCG測(cè)試排行榜中,天河2號(hào)位列第一,而神威太湖之光為列第三,這其實(shí)是很不錯(cuò)的成績(jī)。而且一位業(yè)內(nèi)人士猜測(cè),“也許神威還沒(méi)有好好進(jìn)行優(yōu)化”。
必須指出的是,神威太湖之光的HPCG低于天河2號(hào),并非是因?yàn)橛?jì)算性能或在通信上不如天河2號(hào),恰恰相反,在計(jì)算性能上神威太湖之光大幅領(lǐng)先于天河2號(hào),而在互聯(lián)網(wǎng)絡(luò)方面,神威太湖之光也不遜色于天河2號(hào)——雖然在帶寬上有差距,但在實(shí)際應(yīng)用中,帶寬指標(biāo)比較延遲等指標(biāo)而言并不太重要(延時(shí)指的是1個(gè)CPU把自己的計(jì)算結(jié)果交給其他CPU,如及時(shí)送到,其他CPU就能繼續(xù)計(jì)算,否則就要等待了,芯片、鏈路、協(xié)議等都會(huì)影響延時(shí))。因此,神威太湖之光在HPCG上遜色于天河2號(hào),原因就在于計(jì)算性能實(shí)在是過(guò)于強(qiáng)悍,以至于產(chǎn)生了計(jì)算和通信上的不平衡,并最終導(dǎo)致自HPCG上遜色于天河2號(hào)。
評(píng)論
查看更多