GPU計算逐漸大規(guī)模商用
曾幾何時,CPU就是計算領(lǐng)域的絕對主宰。不過,當(dāng)GPU不僅僅被應(yīng)用在圖形方面,它就開始占據(jù)計算的一席之地。而未來,它更可能成為計算的新的中堅力量。隨著開發(fā)工具的日趨成熟,GPU的應(yīng)用領(lǐng)域得到了不斷的拓展。
近日,中國科學(xué)院和清華大學(xué)分別被授予CUDA卓越中心,同時,NVIDIA在中國舉辦的CUDA編程競賽――CUDA未來之星評選也告一段落。這次評選中,很多優(yōu)秀的CUDA應(yīng)用涌現(xiàn)出來,將GPU計算向前推進(jìn)了一大步。這次競賽展示了中國科學(xué)院和清華大學(xué)在GPU計算方面的豐碩教學(xué)成果,顯示了中國在GPU計算方面的實力。
低成本高效率
今天,超級計算系統(tǒng)已經(jīng)被廣泛應(yīng)用在科學(xué)計算、石油石化、冶金、氣象等眾多領(lǐng)域。然而,很多模型模擬過程非常復(fù)雜,即使使用大規(guī)模的計算系統(tǒng),計算同樣需要很長的時間。同時,峰值性能和持續(xù)性能的不一致也帶來了計算的瓶頸。
在CUDA卓越中心授牌儀式上,來自中科院和清華的專家學(xué)者們展示了其研究成果。
中科院基因組研究所將在當(dāng)今生物信息學(xué)領(lǐng)域得到廣泛應(yīng)用的BLAST算法向GPU進(jìn)行了移植。這是一套針對DNA、蛋白序列數(shù)據(jù)庫的序列查詢算法和軟件包。盡管BLAST處理少量序列的速度不慢,但隨著DNA側(cè)序技術(shù)的飛速發(fā)展,研究人員可以在短短幾天內(nèi)得到海量序列數(shù)據(jù),這樣,對這些數(shù)據(jù)的分析就成了瓶頸。
通過從串行到并行的轉(zhuǎn)變,BLAST算法成功在GPU上得以實現(xiàn),大大提升了效率。根據(jù)中科院的實踐結(jié)果,基于NVIDIA Tesla平臺的BLAST軟件中的一個關(guān)鍵模塊運(yùn)行速度比單個CPU快35倍。
基于GPU,中科院過程所建立了一臺自己的超級計算系統(tǒng)。與通用系統(tǒng)比較,運(yùn)營系統(tǒng)成本從約2億元降到不到2000萬元,峰值能耗從約1.5兆瓦降至不到0.3兆瓦,占地面積也明顯減少,然而其效率卻很高。在對中石化清潔汽油工藝的放大和優(yōu)化模擬程序中,進(jìn)行內(nèi)部結(jié)構(gòu)優(yōu)化時,單CPU的處理效率為每天計算可以模擬4~5秒現(xiàn)實時間,而單GPU在一個小時內(nèi)就可模擬3~5秒現(xiàn)實時間。
清華大學(xué)計算機(jī)系副系主任陳文光教授對GPU編程進(jìn)行了理論探討。他也展示了在EDA模擬方面GPU的高運(yùn)行效率。他指出,在某些邏輯模擬方面,GPU的效率可以提升10~100倍;在DSP-FIR filtering的模擬上,GPU的效率提升可達(dá)280倍之多。
API推動應(yīng)用前進(jìn)
毋庸置疑,NVIDIA在2006年成功推出的CUDA架構(gòu)是最早大規(guī)模應(yīng)用的GPU計算架構(gòu)。它具備一個更適合于并行計算的架構(gòu),提供了硬件的直接訪問接口,并率先提供了針對GPU編程的C語言開發(fā)環(huán)境。
不過,當(dāng)GPU計算日漸火熱,新的異構(gòu)計算運(yùn)算應(yīng)用程序接口也逐漸出臺。OpenCL和DirectX Compute就是兩個代表性產(chǎn)品。
OpenCL是由曾推出OpenGL的開發(fā)組織Khronos推出。而DirectX Compute則將被包含在微軟的DirectX 11中。
比較起來,CUDA的優(yōu)勢在于,它不僅僅是一套程序接口,更是一套包含基礎(chǔ)的GPU架構(gòu)及其上的軟件環(huán)境的整體解決方案,它同樣支持OpenCL或DirectX等API。
實際上,無論是OpenCL還是DirectX Compute,都是NVIDIA非常歡迎的。NVIDIA總裁黃仁勛向記者表示,NVIDIA的目標(biāo)是推動整個GPU計算的前進(jìn),在GPU計算方面的每一個API都是GPU計算前進(jìn)的動力。同時,黃仁勛也表示,CUDA的優(yōu)勢在于,它是一整套軟硬件架構(gòu),因而可以廣泛應(yīng)用在Windows、Linux等不同的應(yīng)用環(huán)境中。
另一方面,由于OpenCL和DirectX在消費(fèi)類軟件中的影響力,“異構(gòu)計算”有望在個人用戶中得到更廣泛的應(yīng)用,真正實現(xiàn)系統(tǒng)整體計算能力的最大化。