文/王左利
GPU的花樣年華

文/王左利
全球TOP500排行榜出爐,使業界對GPU的關注又上了一層樓。可以說,2010年,GPU是HPC界當仁不讓的主角。
2010年,GPU在高性能計算領域迎來了令人矚目的成績。在TOP500全球超級計算機排行榜中,冠軍天河1A,季軍星云和排名第四的日本Tsubame都使用了Tesla GPU。一瞬間,GPU成為HPC業界當仁不讓的明星。
想要實踐GPU的高校也正在增加。在2010年底,清華大學百萬億次超算平臺始建,采用的正是CPU-GPU協同加速技術。而南京大學,幾年前就開始了對GPU的測試,并在幾個月前貼出了對GPU服務器的招標啟事。
一項技術要取得長足的發展,必須有產業界的支持。盡管Intel對GPU總是不屑一顧,但nVIDIA卻是GPU堅定的支持者。在2010年底,nVIDIA公司創始人黃仁勛說,“過去的約10年中,TOP500 全球最高速超級計算機的總運算性能提升速度基本上和摩爾定律保持一致。而在2007年左右,TOP500超級計算機的性能開始明顯地加速上漲。這一時間點,正是GPU被引入超級計算機的開端。”
從技術上來說,GPU的發展并不是一帆風順的。首先,GPU本身是一個特殊的多核處理器,并不是所有的計算都適合這樣的結構;其次,還需要開發新的算法和軟件。現成的軟件不可能通過重新編譯就能充分利用GPU的計算效能,必須要做一些移植和再開發,對于很多人來講,或者對于很多企業來講,這是一個很高的門檻。
不過隨后CUDA(Compute Unified Device Architecture)平臺的推出,極大地推動了GPU在高性能計算中的應用。
業界此前就有質疑的聲音出現:未來GPU與CPU誰將是勝者?一些人認為GPU最終將代替CPU,另一些觀點則恰好相反;而更多的人相信,未來它們將是融合而非戰爭。事實正在證明第三種猜測。天河1A使用了超過14000顆CPU,輔以7168顆Tesla M2050 GPU,總運算能力2.5PFLOPS,成為當今全球最強的超級計算機。據稱天河1A將GPU加速的效率從20%提升到了70%。
但是與此同時,CPU與GPU的結合面臨著巨大的挑戰。“根據我們實驗室的測試,當CPU利用率越高時,GPU的利用率就越低,二者之間的此消彼長使得這種GPU與CPU的融合無法達到完美效果。”南京大學周會群教授說,“我們今后很重要的任務就是解決平衡問題,利用GPU和CPU來設計我們的并行計算軟件,這是相當大的挑戰。”
不言而喻,軟件應用仍然面臨很大挑戰。依賴GPU的系統也意味著大部分現有的超級計算機軟件都必須全部重寫,這是目前困擾工程師的一個編程難題——從某種程度上看,這是一項“藝術多過科學”的任務。但這并不意味著這項任務無法完成。
另外,雖然Nvidia公司這幾年來也在不斷發展其CUDA軟件開發與應用生態系統,但GPU編程難、標準不統一、程序可移植性差仍然讓許多用戶望而生畏。
GPU要想發展,必須形成自己的產品生態鏈。而中國給予了GPU機會。從天河1A到星云,都在給予GPU機會。這也難怪一直在美國舉行年會的nVidia公司在2010年破例選擇了在北京召開了它的年會,也許它認為,正在新興發展并且投入巨資建設城市高性能計算中心的中國將是GPU發展的幸運之地。
相關人士表示,正在打造圍繞GPU并行計算的開發人員生態系統,包括多種數據庫、調優工具、GPU編譯器、并行化編譯工具、各種工具包、CUDA咨詢與培訓以及眾多的GPU計算解決方案。
盡管2010年GPU表現突出,但實際上目前占據主流的仍然是Intel的CPU,GPU要想更進一步地發展,在改進并行計算平臺之外,還必須和控制著主流編程語言走向并在廣大開發人員中具有巨大影響力的微軟(.net平臺),SUN(Java平臺)和Google(Web平臺)三巨頭有良好的合作。而對GPU來說,微軟正在與Intel分道揚鑣,這也許就是它的一個機會。