高性能計算的另類思維
隨著IBM高性能計算機“走鵑”于2008年6月誕生,高性能計算機(HPC)邁入千萬億次門檻。用戶對高性能計算需求的持續增長,推動著HPC規模越做越大。在由CPU構成的高性能計算的世界中,由于CPU計算性能的提升速度遠遠落后于高性能計算需求增長的速度,增加CPU的個數便成為提高HPC性能的主要途徑。如今全球高性能計算500強(Top500)中已經出現內核累計總數多達20多萬個的HPC。
本文引用地址:http://www.j9360.com/article/91321.htm但是,在提升性能的同時,CPU個數的增加也給HPC增添了復雜性,并帶來可用性降低、系統功耗驚人、成本高居不下等問題,讓HPC廠商日益感到頭痛。于是,高性能計算廠商開始探索新的提升HPC性能的途徑。IBM的“走鵑”就是采用CPU和Cell處理器的混合架構,AMD和Intel也都分別對外發布了各自的CPU+GPU(圖形處理器)的混合架構。
作為GPU領域龍頭老大的NVIDIA自然不會放棄在高性能計算這一CPU的傳統領地炫耀性能的機會。它先是推出了CUDA架構,使得程序員可以用C語言對CPU和基于CUDA架構的GPU進行統一編程,從而解決了因編程復雜而被程序員敬而遠之所造成的GPU應用難以普及的問題。進而,它又推出了面向高性能計算的Tesla系列GPU。2008年11月21日,NVIDIA在美國德克薩斯州奧斯汀市舉辦的2008超級計算大會上聯手HPC的巨頭Crayon推出個人HPC。與此同時,會上公布的Top500中,采用Tesla技術的HPC首戰便占據了第29名的位置,標志著NVIDIA從個人HPC和高端HPC全面切入高性能計算領域。
為此,本報記者獨家專訪了NVIDIA高性能計算事業部總經理Andy Keane。
Andy Keane 2006年加盟NVIDIA,出任GPU計算事業部總經理,全面負責這一全新業務部門的組建和運營。他曾為3dfx和QED的快速發展以及公開上市做出了卓越貢獻。3dfx帶動了消費級3D圖形加速器的發展,而QED則是世界首批多核處理器供應商之一。他還在Xilinx早期進行的可重配置計算以及FPGA系統的開發過程中發揮了重要作用。Keane還曾任職于英特爾生產設計部門,從事容錯并行計算技術的生產設計。
最近,剛剛慶祝了十周歲生日的英特爾中國研究中心迎來了英特爾研究獲取的兩項最新成果——按Tick-Tock戰略完成下一代32納米芯片制造工藝開發工作和在硅光電子領域做出基于硅的、擁有創世界紀錄性能和明顯成本優勢的雪崩光電探測器。這兩項成果讓我們這些在英特爾內部從事研發工作的人振奮不已。這種振奮,一方面是源于它們可以大大增強英特爾在技術上的領先地位和未來產品的競爭力;另一方面,則是因為它們來的很是時候,正好趕上了大有愈演愈烈之勢的全球金融風暴。
或許有朋友會問,英特爾發布技術創新成果,和眼下的經濟形勢有什么關系?事實上,這場危機的影響已經開始從很多IT企業的業務部門波及到了研發部門,讓他們不得不開始緊縮在研發上的投入。在這種情況下,英特爾是不是也要采取類似的措施,放慢技術創新的腳步?對于這個問題,我們的董事會主席貝瑞特和CEO歐德寧早已做出了回答:即使全球經濟出現衰退,英特爾也會堅持對產品和技術領域的創新投入。
英特爾本身就是一個以領先產品和技術為安身立命之本的企業,而且在過去40年的發展歷程中,它已經形成了一個傳統,那就是要用加大技術創新的力度方式來主動對抗危機,而不是僅僅依靠壓縮支出被動地熬過困難期。因為后一種策略即便奏效,也會讓公司大傷元氣,無法在經濟形勢轉暖時迅速恢復原有的競爭力,而前一種辦法不但有助于公司在危機后獲得進一步拓展業務領域和競爭優勢的機會,甚至在危機持續過程中,它也可能為公司找到新增長點,化危機為轉機。
早在上世紀70年代中期第一次石油危機導致美國經濟蕭條時,英特爾就堅持走技術創新的道路,并給剛畢業的大學生提供了很多機會,這種看似逆勢而為的做法不但沒有讓當時成立只有數年的英特爾倒下,反而還提升了公司在產業和市場上的影響力。在80年代中期美國半導體存儲行業因日本同行壓價行為而受到強力沖擊時,英特爾再次憑借在處理器領域的技術創新,用最快的速度從一家以半導體存儲器為主營業務的企業轉型成為一家處理器制造商,從而避過了那次危機,并為我們催生全球PC和互聯網革命打下了基礎。在2000年前后.com泡沫破滅,全球IT產業進入寒冬時,英特爾又是在很多同行都削減研發投資時,反其道而行之,加大了對技術創新的投資,最終使公司憑借迅馳平臺這樣的突破性創新技術獲得了新的、更具增值潛力的發展機會,實現了持續穩定的發展。
這些過往的經歷讓我們認識到,每次危機就好比是一次考驗,只有把它的壓力轉變為動力,積極革新和完善自身,才有可能避免損失,并獲取進一步強大的資本。因此對一家以技術研發為核心競爭力的IT企業來說,越是在危機時刻,就越要加注創新、拓展新的市場機遇。如果產業界有更多同仁能夠在這次經濟危機中堅持這一策略,并攜起手來迅速推廣每一項創新成果,兌現它們應有的價值,那么整個IT產業擺脫危機影響,也就可以是一件指日可待的事情了。
越是危機時刻 越要重視創新。
HPC中的GPU
記者:GPU在高性能計算中的性能已經到達了何種地步?
Keane:CPU的運算速度在很大程度上還取決于緩存的大小,而GPU則是在任務并行化后用大量的線程來進行運算。雖然CPU已經多核心化,可以多達8個內核,但在并行計算時,顯然不是GPU上千個線程的對手。
比利時有所大學,以前用的是512個CPU組建的HPC,當他們了解到GPU的運行功能很強后,試著自己搭建了一臺配置有8個GPU的臺式機,結果性能竟與以前512個CPU的HPC不相上下。
記者:既然GPU的性能遠遠超過CPU,那么NVIDIA何時開始關注GPU的計算能力?
Keane:15年前,我們就開始針對3D游戲開發GPU了。但GPU的編程很復雜,因而應用主要是集中在圖形顯示領域。之后,我們開發了CUDA架構,你可以把CUDA想象成與x86相似的硬件架構,它允許應用開發者用他們熟悉的語言對GPU進行快速編程,從而為GPU拓寬了應用范圍。現在,NVIDIA所有的GPU都支持CUDA架構。
記者:懂得計算機的人都知道,并行編程要比串行編程復雜得多。程序員如何在CUDA平臺上對CPU和GPU統一編程?
Keane:盡管CPU與GPU之間在架構上存有很大的區別,但我們覺得CPU與GPU的結合才是最好的計算架構。于是我們在CUDA上推出了C語言編譯器,程序員在開發應用程序時,只要對序列執行的程序代碼和并行執行的程序代碼簡單地進行標注,C編譯器就可以向PC解釋哪部分該由CPU做,哪部分該由GPU做。
記者:CUDA的編程看來不難,那么搭建一個個人HPC難不難?
Keane:用Tesla組建個人HPC是件很容易的事。你只要把買到的Tesla卡插到PC主板上的PCI插槽,你的PC就變成了1臺個人HPC。
記者:Tesla貴嗎?
Keane:4個GPU的價格在9500美元~1萬美元之間,3個GPU的Tesla價格為7000多美元。但與同等價位的工作站相比,我們的性能應該有百倍的提升。
記者:我們看到現在全球性能最高的HPC“走鵑”所采用的CELL處理器實際上就是一個集成了8個流處理器和一個CPU內核的處理器,而GPU也是由數百個流處理器構成的。你是如何看待CELL的?
Keane:CELL的編程要比CUDA復雜得多。CUDA本身就是一個GPU架構,我們所有GeForce、Quadro和Tesla產品線都可以很完美地對其提供支持。它的編程模式是很簡單的,語言與C語言非常接近,編譯器與C語言也基本一致。唯一的改變是將之前的串行計算更新為并行計算。在過去的一年中,CUDA積累了大量的應用程序,而且在美國,也有很多活躍的論壇討論CUDA的編程問題。我們也在CUDA中文網站上開設了CUDA中國專區,上面有144個使用的案例。對于程序員而言,這些編碼都是開放的。
記者:在基于Tesla搭建的HPC中,GPU與CPU從指令集上看是異構的。而英特爾最新展示的具有80個內核的Larrabee卻采用的是x86指令集,從而實現了CPU和GPU在指令集上的兼容,對于程序員來說,這是否會比Tesla編程更為容易呢?
Keane:我并不這樣認為。在NVIDIA的CUDA平臺上,不管面對何種架構,編程人員都可以用很普及的C語言去對CPU和GPU進行統一編程。對于程序員來說,Tesla的編程是很簡單的。而Larrabee無法用C語言來編程,程序員要學習這種新架構和它的語言并用兩種語言分別對CPU和GPU進行編程。
記者:AMD選擇GPGPU(通用GPU)來切入高性能計算領域,對此你有何見解?
Keane:關鍵要看它的普及率了。這里有兩個數據:英特爾x86處理器市場占有85%的份額,AMD只占15%;同時,AMD的FireStream只有5%的使用率。你為客戶定制產品的確會又好又快,但如果產量不高,成本無法有效攤薄,價格就會非常高。 而我們主要針對主流市場,用更加標準的界面來制作,讓用戶很容易使用,而且有能力承受。我們能夠讓很多研究人員將原本要跑到數據中心去做的計算轉移到插有Tesla卡的工作站上,并很容易地獲得高性能計算的體驗。
應用領域
記者:TOP 500中,x86架構CPU已經占據了90%的地盤。請問Tesla進入高性能計算市場的機會有多大?
Keane:幾乎是100%。我們強調的是異構計算,GPU不可能完全取代CPU,只是能顯著地減少CPU的數量。如果我們從另外一個角度上看這個問題,其實全都采用一樣的架構未必是件好事。如同在GPU領域,因為有我們GPU、Intel的Larrabee和AMD的ATI的存在,因此大家可以互相激勵,充分開展競爭,刺激創新。但是服務器領域的架構幾乎統一,這對創新是不利的。
記者:那么在工作站方面呢?
Keane:工作站的限制主要在于工作站機箱內部空間的限制,例如工作站的電源只能提供1000W的功率,那么,我們可以在這1000W之內給你提供盡可能高的計算性能,比如說1T的性能。
記者:無疑,Tesla個人高性能計算機的性能遠好于現在的工作站,但目前工作站上的很多應用軟件都是基于UNIX系統,廠商們愿意把它們移植到Tesla平臺上嗎?
Keane:這些開發商面臨著決定應用何種并行運算解決方案的選擇。其中之一為多核CPU解決方案,即將計算工作分配到雙核、四核甚至八核上。這樣,對于開發人員來說,如果他們要想通過并行計算來得到性能的提升,就必須將應用分解為4塊甚至8塊。這其中最大的挑戰是如何將計算工作劃分為完全均衡的4塊或者8塊。另外一種解決方案類似Intel的Larrabee,開放人員可以用比多核解決方案更為簡單的方式解決并行計算的問題。但是針對并行運算,GPU架構可以非常簡單地實現非常大規模的并行計算。如果你要按照時間和效率來衡量這幾種選擇方案,GPU無疑是效率最高的。
記者:未來工作站會不會被Tesla個人超級計算機替代?
Keane:對于任何使用集群的用戶,都有應用Tesla GPU的需要。我將努力說服他們中的所有人。利用工作站進行高性能計算的用戶也是我們的目標人群,我們也希望讓他們認識到我們的好處。事實上,如果用戶很看重預算和效率,對成本和時間很敏感,那么Tesla對他們來說就很有價值。
未來發展
記者:在CPU領域,虛擬化是一個很時尚的話題,Tesla也能虛擬化嗎?
Keane:如果CPU可以做到虛擬化,那么GPU也可以做到虛擬化。因為他們都是基于處理器架構的。就好像將GPU作為CPU的一個資源,只要CPU可以實現虛擬化,那么GPU也可以作為CPU的資源實現虛擬化。
記者:Tesla現在使用C語言編程。我們知道C語言與硬件很容易結合,也易于控制。聽說NV還要在Tesla上使用Fortran,這樣會不會影響到效率?未來還會有其他語言嗎?
Keane:Fortran是非常結構化的語言,并行計算的性能非常好,在GPU上的執行效率甚至更高。同時,在未來我們還將增加C++等語言。
記者:既然在Tesla計算機中,Tesla GPU要與CPU協同工作,那么,未來GPU和CPU會不會集成在一個芯片上?
Keane:我們不認為GPU和CPU將會融合。因為目前GPU的設計比CPU還要復雜,GPU擁有更多的核心,更高的內存容量,芯片的面積也很大。我們的客戶也對計算性能和內存提出更高的要求。我們所能做的是提升制造工藝,從而降低芯片的面積。
我們當然可以把一個小型CPU集成進來,但這樣對GPU計算性能的提升并沒有益處。就高性能計算而言,高速異構計算架構是一個CPU搭配多個GPU,然后更多的CPU搭配更多的GPU,這樣,GPU就可以發揮加速器的作用。
記者:既然高性能計算市場這么大, NVIDIA會不會借助Tesla成為HPC廠商?
Keane:不會的。我們的優勢就在GPU上,我們也生產主板,但是我們的研發都是投在GPU上。這一點,我們的CEO說得很清楚,NVIDIA會一直專注在GPU上,不會在其他地方分神。
評論