CPU+GPU異構融合體系結構,形象地說,就是把眾多CPU、GPU有機地連成一枚“捆綁式火箭”(CPU相當于主改動機、GPU相當于助推改動機)。
這一技術路線的最大創新,就是將用于圖像處理的GPU運用于高性能計算,最大的挑戰就是實現GPU高效能計算。它成為阻擋每秒千萬億次超級計算機戰役進展的第一個“堡壘”。
2008年底,以楊學軍為總設計師的總師組,把撕開“突破口”的重任交給楊燦群和他帶領的突擊隊。
經過10余年科研實踐歷練的楊燦群,對于自己的工作有個非常精妙的比喻:“搞工程技術,就像猜謎語。謎底出來了,大家恍然大悟:‘原來并不深奧,可在此之前,你的眼前卻是一片云山霧海,你不知道目標在哪里,甚至不知道該朝哪個方向尋找,可以說兩眼迷茫。”
GPU的科學計算問題便是這樣一道謎語。
當時,市場上宣稱有通用計算能力的GPU有兩種,分別由NVIDIA與AMD生產,每種GPU都有多個型號。單獨的GPU只是一顆芯片,需要和配套的存儲器及外圍電路構成顯卡才能使用,生產此類顯卡的廠商有好幾家,市場上可購買的計算顯卡就有近20種。這林林總總的顯卡中,哪款能滿足科學計算要求?楊燦群和突擊隊員兩眼一抹黑。
為從這眾多顯卡中找到雙精度浮點計算性能高、系統兼容性好、運行穩定的顯卡,楊燦群帶領突擊隊從2009年初開始夜以繼日地進行大海撈針般的篩選工作。
春節前一周,他們把一種顯卡安裝到一款主機板上測試,但軟件系統安裝完成后,系統無法啟動。他們首先懷疑是硬件問題,但硬件技術人員堅稱該主板質量非常過硬。他們便從軟件找原因,但嘗試不同版本操作系統和顯卡驅動后,問題依然如故。為了找到問題癥結,他們在春節期間加班加點。大年初四那天,他們不經意間在主板上發現有個模糊標識,稱該主板有啟動異常故障,維修后也沒有確認故障是否徹底解決,弄得大家哭笑不得。
還有一種顯卡含兩個GPU芯片,其驅動程序要求接上兩個顯示器才能讓兩個GPU同時工作,這顯然不能滿足科學計算的要求,因為不可能在一臺計算機里安裝一大堆顯示器。他們通過查閱資料發現,可在顯卡輸出接上電阻來模擬顯示器。為找到這種電阻,他們從塵封了上十年的器件柜中找出了幾個滿足要求的插裝電阻,解決了測試問題。
……
兩個月間,他們不知經歷了多少這樣的曲曲折折,才完成了近20款GPU的安裝、測試,終于找到了滿足計算條件的GPU。
中國有一句諺語:“一個和尚挑水喝,兩個和尚抬水喝,三個和尚沒水喝。”
CPU+GPU異構融合體系結構,把數千個CPU、數千個GPU組合在一個“大廟”,它們還能賣力“挑水”嗎?
2009年3月,他們把CPU、GPU這兩類“和尚”組合起來,利用GPU加速應用程序進行評測,竟發現總性能還不到每秒600億次,而一顆CPU就有近每秒500億次的性能。也就是說GPU這個“和尚”,雖然用于圖像處理,速度驚人,但讓它與CPU放在一塊用于科學計算,就變得非常懶惰,計算效能只有20%左右。
面對這樣的測試結果,大家心里涼了半截。須知,憑著GPU這等工作效率要造出每秒千萬億次超級計算機,豈不是天方夜譚?難道真如外國專家斷定的,GPU根本不能用于科學計算機嗎?
總設計師楊學軍得到報告后,在第一時間趕到實驗室。聽完情況匯報后,他向身邊的妻子招招手:“玉華,你去把車開來,帶我出去轉轉。”
這是他的工作習慣,每凡科研遇到難題時,就讓妻子開車帶他去兜風。
“雪弗萊”駛出市區,奔馳在二環高速公路上。楊學軍仰靠著座背,微閉著眼睛,讓思緒隨著從車旁呼嘯而過的春風、撲面而來又疾速閃去的盎然春景,在科學的天地的盤旋……
“雪弗萊”駛出高速收費站時,楊學軍掏出手機,撥通了楊燦群的號碼,堅定地說:“別人不敢走的路,并不等于走不通。從技術原理分析,GPU的計算性能,通過軟件優化,是可以大幅提高的……”
學校召開每秒千萬億次超級計算機工程攻堅動員大會。學校、學院黨委向大家發出號召:“勇敢地擔當起國家和民族沖擊世界超級計算機科技高峰的歷史重任,在年底前堅決完成每秒千萬億次計算機攻關任務,讓銀河的凱歌在神州大地上奏響,讓銀河的光彩再一次閃亮寰球!”
關鍵時刻,經學校黨委推薦、中央軍委主席胡錦濤任命廖湘科為計算機學院院長,同時兼任每秒千萬億次超級計算機工程總指揮和常務副總師。
挫折面前,楊學軍總師、廖湘科總指揮一商量,竟作出這樣一個超常決策:把完成研制任務的時間節點,由原計劃2010年底提前一年,即在2009年底前推出中國第一臺每秒千萬億次超級計算機。
決定一宣布,把一些人的眼睛驚得圓圓的:“關鍵技術尚未突破,還提前一年完成任務,能行嗎?”
可新一代銀河人對自己充滿自信:“當年研制‘銀河—Ⅰ時,困難還不大嗎?可前輩們頑強拼搏,愣是提前一年完成任務。還有‘銀河—Ⅲ,原計劃用五年,大家齊心協力,爭分奪秒,僅用三年就實現了每秒10億次到每秒100億次的大跨越。前輩們能做到的,我們也一定能做到!”
在楊學軍、廖湘科率領下,國防科技大學超級計算機創新團隊,拉開了每秒千萬億次超級計算機戰役總攻的序幕。
長沙北郊的湘江之畔,有一片群山環抱的洼地,山上草木郁郁蔥蔥,山下坐落著一棟三層小樓。這是長沙市抗洪指揮部所在地。由于汛期未至,這里鳥兒啁啾,人跡稀少,煞是幽靜。
楊燦群和他的突擊隊,把這里當作攻堅的戰場。他們整天貓在小樓里,心里只想一件事,就是想方設法調動GPU這群“和尚”的積極性,讓他們多“挑水”,爭取“1+1”盡量接近“2”。眼睛也只盯著一個地方——顯示屏,從那些不停滾動的浩如煙海的數據中,尋找一個個稍縱即逝的靈感,捕捉一次次優化GPU計算效能的機遇,然后對計算程序進行一遍又一遍的修改。
那周,楊燦群與伙伴們和往常一樣,從早上7點盯到午夜,從周一盯到周五,竟然沒有發現一次戰機,沒有取得任何戰果。
連續鏖戰數日,早已筋疲力盡的楊燦群,躺在床上輾轉反側,難以入眠。他于心不甘。往常從周一到周五,都能找到性能優化突破口,可在周末時間研究優化方法。那些數據猶如一群蜜蜂,在眼前不停地竄來竄去。閉上眼睛,滿腦子還是那些波濤般滾動的數據。
突然,他隱隱覺得眼簾上滾動的一些數據低于設計目標。他一骨碌從床上爬起來,從家里跑到辦公室,打開與服務器相連的筆記本電腦,進入試驗數據庫,果然發現GPU一部分計算資源沒有用起來。興奮難抑的楊燦群,立刻著手程序優化,GPU計算性能又一次提升。當他改完程序起身打開房門時,只見太陽早已爬上山頂,露出了燦爛的笑臉,小鳥在樹林里歡快舞蹈、清脆鳴唱。
類似這樣的優化改進,他們在兩個月里進行了一萬多次,終于把GPU計算效能提升到58%。
這充分驗證CPU+GPU異構融合技術是科學可行的!
楊燦群帶領突擊隊乘勝擴大戰果,不分晝夜反復測試、研討、改進。雖然每一次提升都如同滴水般微小,但把它們匯集起來,就能創造科學奇跡。在連續奮戰四個月,先后改進優化8萬余次之后GPU計算效能躍升至70%以上,達到世界最高水平!