文/林新華
“管窺GPU”九則
文/林新華
2004年,Intel宣布停止單核CPU研發(fā),全面轉(zhuǎn)向多核C P U?!扒厥渎埂?各路協(xié)處理器們蠢蠢欲動(dòng)。最老牌的FPGA,頂著IBM和當(dāng)時(shí)世界第一超級(jí)計(jì)算機(jī)RoadRunner光環(huán)的CELL,以及附東京工大Tsubame驥尾的Clear Speed,一時(shí)間群雄逐鹿。然而nVIDIA的GPU在2005~2006年之間以GPGPU技術(shù)之名異軍突起,在2007年推出CUDA之后,終于一戰(zhàn)成功,結(jié)束了這場(chǎng)長(zhǎng)達(dá)數(shù)年的“協(xié)處理器戰(zhàn)爭(zhēng)”。與現(xiàn)在偏安一隅的FPGA,瀕臨絕境的CELL和已經(jīng)銷(xiāo)聲匿跡的ClearSpeed相比,GPU有兩大制勝利器:CUDA這柄技術(shù)的“倚天劍”以及價(jià)格這把商業(yè)的“屠龍刀”。凡是用過(guò)FPGA和CELL編程的人,都對(duì)GPU上有CUDA艷羨不已。相比之下,真是又快又好用。而通過(guò)與出貨量巨大的面向消費(fèi)級(jí)市場(chǎng)的Geforce和專(zhuān)業(yè)圖形的Quadro并線(xiàn)生產(chǎn)核心單元(SM),使得面向HPC市場(chǎng)的Tesla成本極具競(jìng)爭(zhēng)力。
比爾·蓋茨
2005年,時(shí)任微軟CEO的比爾·蓋茨在西雅圖召開(kāi)的Supercomputing2005上做主題報(bào)告,吹響了微軟進(jìn)軍HPC的號(hào)角:在西雅圖和上海分別建立HPC研發(fā)團(tuán)隊(duì),在全球與10所著名高校合作成立HPC創(chuàng)新研究院(上海交大作為國(guó)內(nèi)惟一的合作單位也參與其中),并積極聯(lián)絡(luò)開(kāi)源軟件社區(qū)和CAE等商業(yè)公司,希望借助中國(guó)等Windows基礎(chǔ)良好的市場(chǎng),推動(dòng)Windows HPC生態(tài)環(huán)境的良性發(fā)展。然而如今,HPC研發(fā)團(tuán)隊(duì)重組到Azure,部門(mén)總經(jīng)理跳槽亞馬遜,市場(chǎng)份額無(wú)足輕重,銷(xiāo)售業(yè)績(jī)不溫不火。這不能不讓人感嘆,吳軍在《浪潮之巔》中關(guān)于公司基因一說(shuō)頗為在理,就像擅長(zhǎng)企業(yè)市場(chǎng)的HP玩不轉(zhuǎn)消費(fèi)級(jí)的Palm,強(qiáng)悍如蘋(píng)果也才剛剛試水企業(yè)市場(chǎng),做商業(yè)的微軟果然還是缺少HPC的基因。nVIDIA則運(yùn)氣頗佳,在它進(jìn)軍HPC領(lǐng)域時(shí),正好趕上SGI式微,順勢(shì)招攬到一大批技術(shù)和商業(yè)人才,這些人既能融入到nVIDIA中做圖形的基因,又幫助nVIDIA迅速形成了HPC基因。
2009年“天河1號(hào)”橫空出世,2010年“天河1A”不負(fù)眾望,成功登頂TOP500,其中GPU助力良多。光環(huán)之下,CPU+GPU的異構(gòu)計(jì)算模式頓成時(shí)髦名詞。各地超算中心建設(shè)時(shí)免不得捎帶上些GPU,一些科研型用戶(hù)也嘗試購(gòu)置GPU。GPU的市場(chǎng)份額穩(wěn)步增加,但漸漸趨于飽和,原因無(wú)外大型超算中心數(shù)量畢竟有限,而科研型用戶(hù)的需求又較小,真正占大頭的生產(chǎn)型用戶(hù)在沒(méi)找到對(duì)口GPU軟件之前又不會(huì)大規(guī)模部署GPU。目前GPU在石油行業(yè)中頗為成功,就是因?yàn)榛庋邪l(fā)了幾個(gè)關(guān)鍵算法軟件,而且成果在實(shí)際生產(chǎn)中立竿見(jiàn)影。也有傳聞?wù)fnVIDIA期待Tesla版本的Kepler銷(xiāo)量能超過(guò)歷代總和。
John Hennessy
在M.J.Flynn眼里,Cray的向量機(jī),Intel的SSE和AVX指令集與nVIDIA的GPU都可以歸到單指令、多數(shù)據(jù)(SIMD)這一模型中。斯坦福大學(xué)校長(zhǎng)John Hennessy和伯克利計(jì)算機(jī)系前主任David Patterson在合著的《計(jì)算機(jī)體系結(jié)構(gòu):量化研究方法》最新第5版中就遵循這種思路,將這三者放在一章中串講?,F(xiàn)代的GPU使脫胎于古老向量機(jī)的SIMD編程模式重新煥發(fā)青春,這就如同多核CPU使原先針對(duì)SMP機(jī)器設(shè)計(jì)的OpenMP再次流行起來(lái)一般。與目前常用的并行工具M(jìn)PI、OpenMP等多指令多數(shù)據(jù)(MIMD)模式相比,SIMD模式編程的思維方式更接近串行程序,功耗也更低,因?yàn)橐粭l指令能同時(shí)處理多個(gè)數(shù)據(jù)。
2008年,Apple首先提出OpenCL,隨后Intel,nVIDIA和AMD各自派人跟進(jìn),希望借鑒OpenMP的成功經(jīng)驗(yàn),在CUDA之外,制定為各公司廣泛接受并支持的通用GPU編程標(biāo)準(zhǔn)。但與PC時(shí)代的Windows,智能手機(jī)時(shí)代的Android一樣,出于對(duì)抗CUDA的目的,OpenCL希望支持盡可能多的廠(chǎng)商設(shè)備,因此在技術(shù)上它遇到的“性能可移植性”非常棘手,即為設(shè)備A所編寫(xiě)的程序如何在不修改源代碼的情況下,在設(shè)備B、設(shè)備C上繼續(xù)獲得良好的加速性能。讓人郁悶的是,雖然OpenCL的設(shè)計(jì)初衷是“通用”的CPU+GPU異構(gòu)計(jì)算標(biāo)準(zhǔn),但現(xiàn)實(shí)中出于商業(yè)利益的考慮,號(hào)稱(chēng)支持OpenCL的廠(chǎng)商都只做了“半吊子”的實(shí)現(xiàn)。Intel的OpenCL只支持Intel CPU,nVIDIA的OpenCL只支持nVIDIA GPU,AMD的OpenCL倒是能同時(shí)支持CPU和G P U,但只是A M D自家的產(chǎn)品。隨著2011年底nVIDIA宣布會(huì)陸續(xù)開(kāi)放CUDA源代碼之后,OpenCL最大的亮點(diǎn)“開(kāi)放性”也似乎黯淡了不少。
Ian Buck
CUDA之父Ian Buck博士畢業(yè)后加入nVIDIA,從他在斯坦福做的Brook中獲得了不少啟發(fā),開(kāi)創(chuàng)性地引入了SM內(nèi)部線(xiàn)程同步機(jī)制,實(shí)現(xiàn)了單指令多線(xiàn)程SIMT的編程方式,并在2007年發(fā)布1.0版本,之后每個(gè)版本都有相當(dāng)?shù)奶岣摺EcFPGA和CELL相較,CUDA當(dāng)然簡(jiǎn)單易學(xué),但對(duì)于一般應(yīng)用開(kāi)發(fā)者來(lái)說(shuō),上手還是比較困難。因此當(dāng)Cray 前CTO Steve Scott加入nVIDIA成為T(mén)esla部門(mén)的CTO之后,他力推基于編譯器指令的編程方式,聯(lián)合了老東家Cray、Portland Group和法國(guó)的CAPS,一起推出OpenACC規(guī)范,希望做到真正的簡(jiǎn)單易學(xué)好上手。但目前并沒(méi)有支持OpenACC的免費(fèi)編譯器可用:Cray的編譯器可以免費(fèi)贈(zèng)送,但只針對(duì)購(gòu)買(mǎi)了Cray機(jī)器的用戶(hù);Portland和CAPS的編譯器都是要收費(fèi)的?,F(xiàn)在讓開(kāi)發(fā)者自個(gè)掏錢(qián)買(mǎi)開(kāi)發(fā)工具的比較少見(jiàn),在國(guó)內(nèi)就更難了?;蛟SnVIDIA收購(gòu)其中一家的編譯器,然后免費(fèi)發(fā)布給開(kāi)發(fā)者倒不失為一個(gè)良策。
巨型機(jī)之父Seymour Cray曾說(shuō),“如果你要耕田,你會(huì)用一頭強(qiáng)健的公牛,還是一群母雞?”一觀(guān)點(diǎn)深刻影響了上個(gè)世紀(jì)整個(gè)HPC領(lǐng)域CPU設(shè)計(jì)的理念。直至以GPU為代表的眾核芯片出現(xiàn),人們才發(fā)現(xiàn)“原來(lái)一群母雞也是可以耕田的,而且耕得還挺快!”作為Fermi下一代的Kepler,會(huì)在今年如期而至。Tesla版的Kepler核數(shù)將一舉突破1000大關(guān),每個(gè)SM所含的SP也從32增加至192。性能增加約2倍但核數(shù)增加不止了2倍,Kepler無(wú)異是準(zhǔn)備用“更多更小的母雞耕田”了。
Seymour Cray
也許是因?yàn)橛辛薒arrabee痛苦的“流產(chǎn)”經(jīng)歷,連一向大氣的Intel這次也學(xué)習(xí)了港人懷孕前三月避而不宣的傳統(tǒng),對(duì)將要出世的第二代MIC Knights Corner諱莫如深。50+的奔騰核心配上PCIE2-X16的接口,從技術(shù)參數(shù)上看似乎與Fermi同一輩分。但年中發(fā)布的MIC遇到年底發(fā)布的Kepler,屆時(shí)不知會(huì)是一副怎樣的光景。MIC宣稱(chēng)的能實(shí)現(xiàn)對(duì)現(xiàn)有OpenMP和MPI程序無(wú)改動(dòng)編譯及顯著提速,具體能對(duì)多少真實(shí)應(yīng)用起效果,也只能拭目以待了。
目前以CUDA為代表的x86+GPU的異構(gòu)編程模式,其實(shí)還是以GPU計(jì)算為主,高性能高能耗的x86 CPU只負(fù)責(zé)程序的框架部分,比如邏輯判斷、I/O等邊角料的工作,既然這匹吃很多的“千里馬”干不上活,不妨換上“跑得慢但也吃的少”的駑馬——ARM。CARMA就是CUDA on ARM原型系統(tǒng)的代號(hào)。nVIDIA將在今年年中發(fā)布工程樣機(jī),勇于吃螃蟹的西班牙巴塞羅那超算中心會(huì)在今年大規(guī)模部署CARMA。在大型超算能耗問(wèn)題日益突出的情況下,或許低能耗低性能的ARM+低能耗高性能的GPU的組合在未來(lái)能與高能耗高性能的Intel CPU一競(jìng)高下。
(作者系上海交通大學(xué)高性能計(jì)算中心副主任)
本文所闡述的觀(guān)點(diǎn),為探討學(xué)術(shù)之用。僅代表作者本人意見(jiàn),無(wú)關(guān)所在單位立場(chǎng)。
IBM與羅格斯大學(xué)開(kāi)放超級(jí)計(jì)算機(jī)中心
美國(guó)羅格斯大學(xué)(Rutgers University)與IBM在新澤西州開(kāi)放一個(gè)超級(jí)計(jì)算機(jī)中心,該中心將包括一臺(tái)價(jià)值330萬(wàn)美元的超級(jí)計(jì)算機(jī)。這臺(tái)超級(jí)計(jì)算機(jī)名為“IBM Blue Gene/P”,大小大約相當(dāng)于兩臺(tái)電冰箱,它配備了數(shù)千個(gè)中央處理器,將是美國(guó)東部地區(qū)性能最強(qiáng)的計(jì)算機(jī)之一。IBM希望它能夠入選下一年的全球超級(jí)計(jì)算機(jī)500強(qiáng)名單。
這臺(tái)超級(jí)計(jì)算機(jī)的分析能力與IBM在Jeopardy電視游戲展會(huì)上展示的Watson不相上下。
私有企業(yè)也將能夠使用這臺(tái)超級(jí)計(jì)算機(jī)。據(jù)羅格斯大學(xué)發(fā)言人稱(chēng),至少有12家來(lái)自新澤西州和紐約州的公司有意使用這臺(tái)超級(jí)計(jì)算機(jī),包括百時(shí)美施貴寶、強(qiáng)生、施樂(lè)、西門(mén)子和摩根大通等。
超級(jí)計(jì)算機(jī)可以處理大量數(shù)據(jù),比如基因序列和消費(fèi)者購(gòu)買(mǎi)趨勢(shì)等。例如,羅格斯大學(xué)的研究與經(jīng)濟(jì)開(kāi)發(fā)副總裁邁克爾帕扎尼(Michael Pazzani)稱(chēng),在普通臺(tái)式機(jī)電腦上進(jìn)行一次基因分析需要一年的時(shí)間,但在這臺(tái)超級(jí)計(jì)算機(jī)上只要1天就夠了。
帕扎尼稱(chēng):“IBM與羅格斯大學(xué)簽訂了一份長(zhǎng)期合作協(xié)議,這只是雙方合作的第一步。我們希望能成為全球十大學(xué)術(shù)計(jì)算中心之一?!彼f(shuō),由于計(jì)算時(shí)間大大縮短,不再成為制約研究進(jìn)度的因素,因此研究人員可以更好地發(fā)揮出他們的創(chuàng)造力。
加州風(fēng)險(xiǎn)投資公司Trident Capital的伊萬(wàn)戈洛斯西毛迪思(Evangelos Simoudis)稱(chēng),新澤西的高性能計(jì)算中心在美國(guó)大學(xué)之中也是比較少見(jiàn)的,它將專(zhuān)注于幫助企業(yè)和科學(xué)家。他說(shuō),只有大型企業(yè)內(nèi)部開(kāi)發(fā)的超級(jí)計(jì)算機(jī)才能在規(guī)模上與羅格斯大學(xué)的超級(jí)計(jì)算機(jī)相比。
Blue Gene超級(jí)計(jì)算機(jī)將幫助羅格斯大學(xué)的研究人員執(zhí)行分析工作,最初的分析對(duì)象是癌細(xì)胞、超導(dǎo)材料和預(yù)報(bào)洪水。
羅格斯大學(xué)希望這臺(tái)超級(jí)計(jì)算機(jī)可以幫助它吸引更多全國(guó)科學(xué)基金和全國(guó)健康研究院的專(zhuān)用撥款。
羅格斯大學(xué)顧問(wèn)專(zhuān)家組將決定哪些公司能夠使用這臺(tái)超級(jí)計(jì)算機(jī)以及收費(fèi)標(biāo)準(zhǔn)。羅格斯大學(xué)還計(jì)劃通過(guò)它培養(yǎng)出數(shù)百名科學(xué)和計(jì)算機(jī)科學(xué)的學(xué)生。
為了在財(cái)務(wù)和生命科學(xué)創(chuàng)新領(lǐng)域保持競(jìng)爭(zhēng)力,建立足夠強(qiáng)大的計(jì)算機(jī)來(lái)分析海量數(shù)據(jù)已經(jīng)成為21世紀(jì)的一項(xiàng)挑戰(zhàn)。同樣,隨著可用信息量的不斷增長(zhǎng),數(shù)據(jù)科學(xué)技術(shù)將成為美國(guó)最新的需求。
IBM與羅格斯大學(xué)早在幾年前就開(kāi)始合作了,IBM與200多家大學(xué)建立了合作關(guān)系,幫助它們?cè)鰪?qiáng)計(jì)算機(jī)分析能力,包括耶魯大學(xué)、西北大學(xué)和福德漢姆大學(xué)等。