GPU讓桌面型超級(jí)計(jì)算機(jī)不再是夢(mèng)想
GPU(圖形處理器)正在高性能計(jì)算領(lǐng)域掀起一股新風(fēng):GPGPU計(jì)算。
GPGPU計(jì)算是一種異構(gòu)模式,由CPU負(fù)責(zé)執(zhí)行順序型的代碼,如操作系統(tǒng)、數(shù)據(jù)庫(kù)等應(yīng)用,而由GPU來(lái)負(fù)責(zé)密集的并行計(jì)算。打個(gè)比方說(shuō),假設(shè)讓10個(gè)人把各自塑料瓶子的水倒入一個(gè)大桶中,CPU的做法是讓這10個(gè)人按著順序一個(gè)一個(gè)往里面倒,而GPU的做法則是在設(shè)定好一定規(guī)則的前提下讓10個(gè)人同時(shí)或分組往里面倒。因此,在高性能計(jì)算領(lǐng)域,可以把CPU服務(wù)器和GPU服務(wù)器結(jié)合起來(lái),構(gòu)成一個(gè)混合型的集群,各司其職,會(huì)大大提高集群系統(tǒng)的總體計(jì)算效能。
7月25日,NVIDIA在北京舉辦了一場(chǎng)小規(guī)模的媒體專(zhuān)訪,其Tesla GPU 計(jì)算事業(yè)部高級(jí)產(chǎn)品經(jīng)理Sumit Gupta首次向中國(guó)媒體系統(tǒng)、全面地介紹了NVIDIA的Tesla GPU計(jì)算機(jī)和專(zhuān)門(mén)針對(duì)GPU的C語(yǔ)言開(kāi)發(fā)工具CUDA。
A1.jpg
個(gè)人桌面型超級(jí)計(jì)算機(jī)不再是夢(mèng)想
傳統(tǒng)上,人們一提及超級(jí)計(jì)算機(jī),往往想到的是機(jī)房里整柜整柜的宏然大物。但你是否知道,如果用GPU來(lái)構(gòu)建,你甚至可以把原來(lái)超級(jí)計(jì)算機(jī)要做的事濃縮到一個(gè)普通的臺(tái)式工作站或機(jī)架服務(wù)器中去呢?因?yàn)槟壳暗腦86處理器只集成了4個(gè)內(nèi)核,而GPU已經(jīng)擁有數(shù)以百計(jì)的內(nèi)核,在高密度并行計(jì)算方面擁有得天獨(dú)厚的優(yōu)勢(shì)。
據(jù)Sumit Gupta介紹,相對(duì)于傳統(tǒng)的服務(wù)器集群,GPU超級(jí)計(jì)算機(jī)在性?xún)r(jià)比、占地空間、功耗等方面的優(yōu)勢(shì)非常明顯。他舉了一個(gè)“臺(tái)式GPU超級(jí)計(jì)算機(jī)擊敗服務(wù)器集群”的例子:某大學(xué)原來(lái)用的超級(jí)計(jì)算機(jī)有512顆處理器核,構(gòu)建成本是530萬(wàn)美元,而且這套超級(jí)計(jì)算機(jī)是由全校共同來(lái)使用;而如果換成一臺(tái)擁有8個(gè)GPU的臺(tái)式機(jī)(9800GX2),性能相當(dāng),而成本只有7000美元,而且可以為每個(gè)研究人員在桌邊配備一臺(tái)。
“每個(gè)人都可以擁有自己的桌面超級(jí)計(jì)算機(jī),而不是大家來(lái)共享一臺(tái)大型的超級(jí)計(jì)算機(jī)。這不是簡(jiǎn)單的芯片的性能提升,而是帶來(lái)了一種全新的、具有革命性的計(jì)算模式。” Sumit Gupta在訪談中多次強(qiáng)調(diào)了這一點(diǎn)。
在許多領(lǐng)域,GPU計(jì)算甚至超過(guò)了傳統(tǒng)的計(jì)算機(jī),讓許多原來(lái)無(wú)法解決的問(wèn)題現(xiàn)在可以通過(guò)GPU計(jì)算機(jī)來(lái)輕松實(shí)現(xiàn)。比如,針對(duì)新型流行性疾病如非典禽流感等,人們總是希望新藥物研制的時(shí)間越短越好;在天氣預(yù)報(bào)方面,人們希望預(yù)報(bào)的精度和準(zhǔn)確度越高越好;在金融股票價(jià)格分析方面,人們?cè)跊Q定買(mǎi)賣(mài)股票時(shí)總是希望越快越好。GPU計(jì)算的出現(xiàn),使得超級(jí)計(jì)算機(jī)在挑戰(zhàn)這些領(lǐng)域極限方面又進(jìn)了一步。比如,美國(guó)國(guó)家癌癥研究所通過(guò)GPU計(jì)算將模擬速度提升了12倍,等待結(jié)果的時(shí)間從原來(lái)的2個(gè)小時(shí)縮短到了10分鐘;美國(guó)國(guó)家大氣研究中心的氣象研究和預(yù)報(bào)模型(WRF)盡管僅僅將1%通過(guò)CUDA來(lái)實(shí)現(xiàn),但其總體速度卻提升了20%,節(jié)省了一個(gè)星期的分析時(shí)間;在評(píng)估整個(gè)美國(guó)期權(quán)市場(chǎng)時(shí),Hanweck原來(lái)計(jì)劃用價(jià)值26.2萬(wàn)美元的600 CPU集群來(lái)處理,而實(shí)際采用三臺(tái)nvidia Telsa S870后,機(jī)架空間節(jié)省了9倍,硬件成本節(jié)省了6倍。這就是GPU加速帶來(lái)的魅力!
A2.jpg
在國(guó)內(nèi),也有一些機(jī)構(gòu)正在從GPU計(jì)算中獲得好處。清華大學(xué)微電子學(xué)研究所的鄧仰東副教授已經(jīng)成功實(shí)現(xiàn)了“基于CUDA的電子設(shè)計(jì)自動(dòng)化(EDA)并行計(jì)算”。
他告訴記者,由于現(xiàn)在大規(guī)模集成電路芯片中的晶體管數(shù)量越來(lái)越多,動(dòng)輒數(shù)以?xún)|計(jì),結(jié)構(gòu)越來(lái)越復(fù)雜,加上昂貴的制造成本,在設(shè)計(jì)集成電路時(shí)必須用到EDA軟件來(lái)進(jìn)行模擬計(jì)算。但單核CPU的性能已經(jīng)飽和,雖然通過(guò)多核CPU可以重復(fù)使用以前的代碼,但也面臨一些問(wèn)題,如為保持?jǐn)?shù)據(jù)一致性的數(shù)據(jù)鎖會(huì)導(dǎo)致性能下降,在計(jì)算結(jié)果上會(huì)排除最優(yōu)解等等。“多核CPU只取得了有限的成功,到了10核以上,加速比就無(wú)法再提高,而在GPU平臺(tái)上使用CUDA,可以讓EDA從粗粒度、任務(wù)級(jí)的并行轉(zhuǎn)向細(xì)粒度、數(shù)據(jù)級(jí)的并行。” #p#page_title#e#
據(jù)介紹,在使用CUDA后,項(xiàng)目組在靜態(tài)時(shí)序分析上實(shí)現(xiàn)了80倍的加速比,全芯片STA從CPU所需要的1小時(shí)縮短了用GPU的1分鐘,意味著可以實(shí)時(shí)得到結(jié)果,嘗試更多設(shè)計(jì);在故障仿真上實(shí)現(xiàn)了200倍的加速比,讓原來(lái)CPU一周的工作量縮短到了GPU的一個(gè)小時(shí),原來(lái)需要用一套集群來(lái)模擬,現(xiàn)在只需要一塊GPU卡;在電路布局方面也取得了3倍的加速比,從而允許每天可以多做1-2次優(yōu)化。鄧仰東表示,后續(xù)還會(huì)用CUDA來(lái)實(shí)現(xiàn)EDA更多流程的并行化。
Sumit Gupta還介紹了GPU計(jì)算在消費(fèi)電子領(lǐng)域的應(yīng)用,如為了把一段影片轉(zhuǎn)換成iPod可以播放的格式,原來(lái)在普通電腦上可能需要15分鐘,而用GPU只需要1分半鐘。另外,在照片編輯、人臉識(shí)別、電子游戲等方面GPU計(jì)算也大有可為。很多原來(lái)需要用到集群超級(jí)計(jì)算機(jī)來(lái)完成的任務(wù),現(xiàn)在用一臺(tái)GPU電腦就可以實(shí)現(xiàn)了。
T10:NVIDIA第二代CUDA處理器
CUDA雖然發(fā)布只有一年半的時(shí)間,但現(xiàn)在已經(jīng)有很多領(lǐng)域在使用。Nvidia所要做的是要讓人們可以在網(wǎng)上找到免費(fèi)的軟件,而且讓自身的GPU產(chǎn)品支持CUDA。據(jù)Sumit Gupta介紹,NVIDIA T8系列以上Telsa產(chǎn)品都將支持CUDA。截止到目前,CUDA GPU的市場(chǎng)保有量已經(jīng)達(dá)到了8000萬(wàn)顆。
而在今年的8月份,NVIDIA還將向市場(chǎng)提供其第二代CUDA處理器——T10系列。T10 GPU可謂是當(dāng)前世界上最大的芯片,擁有14億個(gè)晶體管,共有240個(gè)核心,一塊這樣的GPU卡的浮點(diǎn)運(yùn)算性能可達(dá)到1萬(wàn)億次每秒(Tflops),而現(xiàn)在一顆四核CPU只有每秒700億次浮點(diǎn)計(jì)算。
A3.jpg
跟T8系列相比,T10在性能和顯存容量上都增加了一倍,還增加了雙精度的支持,從而能更好地加速汽車(chē)飛機(jī)設(shè)計(jì)、CFD計(jì)算流體動(dòng)力學(xué)以及金融分析等需要高準(zhǔn)確度的應(yīng)用。由于高性能計(jì)算應(yīng)用的數(shù)據(jù)量往往很大,需要用到大容量?jī)?nèi)存,所以T10的板載顯存容量也從原來(lái)的1.5GB提升到了4GB。NVIDIA工程師在逆時(shí)偏移測(cè)試時(shí)發(fā)現(xiàn),在同樣配置1.5GB內(nèi)存時(shí),T10僅比G80提升了1.9倍,而如果把內(nèi)存加大到4GB,性能會(huì)提高到3.5倍。
Nvidia還推出了兩款基于T10的GPU新產(chǎn)品:一款是Telsa S1070 1U機(jī)架服務(wù)器,共有4個(gè)GPU卡,共960個(gè)內(nèi)核,性能達(dá)到4萬(wàn)億次每秒,功耗只有700瓦,而如果要達(dá)到相同計(jì)算性能,需要一個(gè)小服務(wù)器集群才能實(shí)現(xiàn),而功耗可能達(dá)到幾萬(wàn)瓦;另一款產(chǎn)品是Telsa C1060,可以用到普通的PC和工作站中,性能是957Gflops,功耗只有160瓦。
A4.jpg
A5.jpg
假設(shè)要構(gòu)建一個(gè)具有100萬(wàn)億次規(guī)模的數(shù)據(jù)中心,如果完全采用基于CPU 的1U服務(wù)器,需要用到1429臺(tái)四核服務(wù)器,成本高達(dá)310萬(wàn)美元,功耗571KW;而如果采用CPU+GPU的異構(gòu)模式,則僅需要25臺(tái)CPU服務(wù)器和25臺(tái)Telsa系統(tǒng),僅需31萬(wàn)美元,功耗只有27KW。
據(jù)了解,在GPGPU集群中,CPU服務(wù)器負(fù)責(zé)執(zhí)行順序型任務(wù),如操作系統(tǒng)和數(shù)據(jù)庫(kù),CPU服務(wù)器與CPU服務(wù)器之間通過(guò)Infiband進(jìn)行連接通信,GPU服務(wù)器則作為“一種協(xié)處理器的拓展”,通過(guò)PCI-E2.0連到CPU服務(wù)器上,承擔(dān)并行計(jì)算任務(wù)。由于GPU服務(wù)器上沒(méi)有CPU,所以操作系統(tǒng)的啟用需要用到CPU服務(wù)器。用戶可以根據(jù)順序任務(wù)和并行任務(wù)的比率,來(lái)配備CPU核與GPU核的不同數(shù)量。
象學(xué)C語(yǔ)言一樣學(xué)習(xí)CUDA
對(duì)于高性能并行計(jì)算而言,硬件和軟件是不可分割的兩大支撐。NVIDIA對(duì)GPU架構(gòu)進(jìn)行了根本性的改變,使其可以用C語(yǔ)言來(lái)編程。為了理解CUDA的作用,不妨讓我們回到本文開(kāi)頭的那個(gè)比方,10個(gè)人輪流地向桶中倒水的順序比較容易控制,而當(dāng)10個(gè)人并行地向桶中倒水時(shí),如何保證效率呢?Sumit Gupta調(diào)侃道,“CUDA在GPU多核并行計(jì)算中起到的作用就好比是軍隊(duì)里的將軍一樣,通過(guò)它來(lái)保證并行高效有序地實(shí)現(xiàn)。” 跟CELL、FGPA以及其他GPU相比,CUDA環(huán)境支持已經(jīng)成為NVIDIA GPU計(jì)算的一大優(yōu)勢(shì),用戶借助CUDA可以更加方便地使用GPU計(jì)算。 #p#page_title#e#
Sumit Gupta告訴記者,過(guò)去并行編程語(yǔ)言只有一兩所大學(xué)或一兩個(gè)研究機(jī)構(gòu)在使用,而現(xiàn)在CUDA是全球第一個(gè)廣泛使用的并行編程環(huán)境。CUDA的客戶數(shù)量已經(jīng)達(dá)到了250家,涉及生命科學(xué)、醫(yī)學(xué)設(shè)備、工業(yè)生產(chǎn)、石油天然氣、電子設(shè)計(jì)自動(dòng)化、制造、金融、通訊等多個(gè)領(lǐng)域。CUDA有英文、中文、日文、韓文和西班牙語(yǔ)等多個(gè)版本,支持Linux、Windows、Mac OS等多種操作系統(tǒng),全球有50多所大學(xué)開(kāi)設(shè)了CUDA并行編程課程。清華大學(xué)、中科院等也將陸續(xù)開(kāi)通CUDA的教育培訓(xùn)。“也許以后學(xué)生要象學(xué)C語(yǔ)言一樣學(xué)習(xí)CUDA。”A6.jpg
據(jù)了解,開(kāi)發(fā)人員只要用CUDA開(kāi)發(fā)一次程序,就既可以在CPU上運(yùn)行,也可以在GPU平臺(tái)中使用。這樣,當(dāng)用戶沒(méi)有用到GPU的時(shí)候,就可以在普通電腦上使用??梢?jiàn),尤其對(duì)于新創(chuàng)的小型軟件廠商來(lái)說(shuō),CUDA是一個(gè)挑戰(zhàn)大ISV的不錯(cuò)機(jī)會(huì)。
雖然CUDA 1.0發(fā)布只有一年的時(shí)間,但截止到2008年6月份,CUDA編譯器下載量已經(jīng)達(dá)到了10萬(wàn),CUDA GPU市場(chǎng)保有量也達(dá)到了8000萬(wàn)顆。CUDA2.0版本將開(kāi)始支持多個(gè)處理器和多核心。
Sumit Gupta表示,下一步,CUDA會(huì)支持FORTRAN和C++,未來(lái)還將讓兩個(gè)GPU直接通信而不需要經(jīng)過(guò)CPU,可以進(jìn)行多核多線程調(diào)試,推出GPU群集管理軟件等等。
小結(jié):GPU Vs. CPU
Sumit Gupta認(rèn)為,計(jì)算機(jī)的發(fā)展存在兩條路線,一條是多核X86 CPU針對(duì)數(shù)據(jù)庫(kù)、操作系統(tǒng)等順序執(zhí)行的處理架構(gòu),另一條是多核GPU的高性能并行計(jì)算架構(gòu)。
A7.jpg
由于受到空間、電力、冷卻等因素的限制,高性能計(jì)算系統(tǒng)從過(guò)去的高主頻單核X86處理器轉(zhuǎn)向了多核,但多核系統(tǒng)目前也面臨著“內(nèi)核數(shù)超過(guò)16個(gè)以后性能無(wú)法隨內(nèi)核數(shù)線性擴(kuò)展”以及并行軟件限制等問(wèn)題,在這一背景下,GPGPU等加速技術(shù)的出現(xiàn),為高性能計(jì)算帶來(lái)了新的希望。于是,我們看到,IBM用12960顆Cell核心和6948顆雙核AMD Opteron處理器構(gòu)建起了全球第一臺(tái)每秒運(yùn)算一千萬(wàn)億次的超級(jí)計(jì)算機(jī)走鵑,AMD在整合ATI之后啟動(dòng)了把CPU和GPU內(nèi)核集成到一個(gè)芯片中去的Fusion計(jì)劃,英特爾計(jì)劃明年發(fā)布Larrabee處理器進(jìn)入高端圖形市場(chǎng),NVIDIA Telsa和CUDA更是讓人們清晰地看到了GPU進(jìn)軍高性能計(jì)算領(lǐng)域的新氣象。
Sumit Gupta認(rèn)為,將CPU和GPU集成在一起的做法對(duì)中低端市場(chǎng)會(huì)比較有意義,而對(duì)于高端市場(chǎng),大型GPU加上少數(shù)CPU的做法會(huì)更具優(yōu)勢(shì)。而后者,正是NVIDIA目前和未來(lái)要拓展的一塊全新的業(yè)務(wù)。