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