GPU的新舞臺(tái) 通用計(jì)算領(lǐng)域大展拳腳
自誕生之日起,GPU的高速發(fā)展就一直沒有停歇過(guò)。GPU的出現(xiàn)將CPU從繁重的圖形運(yùn)算中解放出來(lái),大大提高了計(jì)算機(jī)圖形處理的速度和質(zhì)量,為用戶帶來(lái)了更真實(shí)、更絢麗的畫面。到了今天,主流GPU的圖形處理能力已經(jīng)滿足并超越了大部分電腦用戶的需求,而且電腦也不可能每時(shí)每刻都在運(yùn)行三維程序和游戲。于是越來(lái)越多的人開始關(guān)注一個(gè)問(wèn)題:擁有強(qiáng)大浮點(diǎn)運(yùn)算能力的GPU還能做些什么?
通用計(jì)算,GPU大展拳腳
GPU的迅速發(fā)展帶來(lái)的并不只是頻率的提高,還產(chǎn)生了很多全新的圖形硬件技術(shù),使GPU具有流處理、高密集并行運(yùn)算、可編程流水線等特性,從而極大地拓展了GPU的處理能力和應(yīng)用范圍。正是由于GPU具有高效的并行性和靈活的可編程性等特點(diǎn),越來(lái)越多的研究人員和商業(yè)組織開始利用GPU完成一些非圖形繪制方面的計(jì)算,并開創(chuàng)了一個(gè)新的研究領(lǐng)域——GPGPU(通用計(jì)算圖形處理單元),其主要研究?jī)?nèi)容是在圖形處理之外的其他領(lǐng)域,如何利用GPU進(jìn)行更為廣泛的科學(xué)計(jì)算。
將GPU用于通用計(jì)算的主要目的是為了加速計(jì)算,加速的動(dòng)力來(lái)自于GPU在高性能計(jì)算方面所具有的優(yōu)勢(shì):1.高效的并行性(這一功能主要是通過(guò)GPU多條繪制流水線的并行計(jì)算來(lái)實(shí)現(xiàn));2.高密集的運(yùn)算(GPU具有128bit/256bit或更大的顯存位寬);3.超長(zhǎng)圖形流水線(以數(shù)據(jù)吞吐量的最大化為目標(biāo),在并行處理大規(guī)模數(shù)據(jù)流方面具有明顯優(yōu)勢(shì))。
目前,GPGPU已成功應(yīng)用于代數(shù)計(jì)算、流體模擬、數(shù)據(jù)庫(kù)應(yīng)用、頻譜分析等非圖形應(yīng)用領(lǐng)域,甚至包括智能信息處理系統(tǒng)和數(shù)據(jù)挖掘工具等商業(yè)化應(yīng)用。同時(shí),也產(chǎn)生了一些針對(duì)GPU開發(fā)的通用計(jì)算工具包,能夠基于GPU平臺(tái)排序及線性方程組求解等科學(xué)計(jì)算進(jìn)行優(yōu)化實(shí)現(xiàn)。
軟硬兼施,應(yīng)用更高效
光看GPGPU超越CPU的浮點(diǎn)運(yùn)算能力的確令人興奮,但真正的應(yīng)用卻難以實(shí)現(xiàn)。這是因?yàn)閳D形API限制太大,要通過(guò)DirectX、OpenGL等API來(lái)執(zhí)行其他應(yīng)用,不僅算法和程序會(huì)變得很復(fù)雜,還有大量的額外運(yùn)算開銷。隨著GPU進(jìn)入DX10時(shí)代,統(tǒng)一渲染架構(gòu)在可編程性上更加靈活。而要充分發(fā)揮GPU通用計(jì)算性能,必須“拋棄”傳統(tǒng)的圖形API,NVIDIA適時(shí)推出了CUDA(統(tǒng)一計(jì)算設(shè)備架構(gòu))。
從GeForce 8系列產(chǎn)品開始,NVIDIA的GPU全部支持CUDA技術(shù)。軟件開發(fā)人員可以基于CUDA平臺(tái)開發(fā)計(jì)算軟件,借助這些軟件和GPU,用戶可以用比以往少得多的時(shí)間完成很多計(jì)算任務(wù)。
目前,CUDA已經(jīng)在游戲、圖形動(dòng)畫、科學(xué)計(jì)算、地質(zhì)、生物、物理模擬等領(lǐng)域顯示出了威力。例如,以前將一系列2D X光圖像合成為3D圖像需要耗費(fèi)5個(gè)小時(shí),而通過(guò)CUDA和GPU可以將這個(gè)過(guò)程縮短為5分鐘。在模擬電腦波、視覺和嗅覺感官計(jì)算領(lǐng)域,CUDA讓CPU和GPU協(xié)同工作獲得了130倍的性能提升。在金融行業(yè),NVIDIA和財(cái)務(wù)分析軟件廠商Hanweek合作,在其股票和期權(quán)分析軟件中加入GPU加速功能,結(jié)果不到1秒鐘就完成對(duì)美國(guó)所有上市股票的期權(quán)分析。
乳癌超聲波檢測(cè)采用GPU加速及CUDA編程,處理時(shí)間由幾小時(shí)縮短至15分鐘
另外,Adobe最近發(fā)布的Photoshop CS4也支持GPU加速,Photoshop CS4里打開一個(gè)2GB大小、4.42億像素的圖片只需幾秒鐘,而對(duì)圖片進(jìn)行縮放、旋轉(zhuǎn)也不再“卡殼”。以往令人頭痛的全景圖拼合,在GPU的幫助下也能在瞬間完成。
Photoshop CS4加入了對(duì)CUDA的支持 #p#page_title#e#
并行計(jì)算時(shí)代的競(jìng)爭(zhēng)
從上面可以看出,由于GPU架構(gòu)非常適用于需要高并行量的計(jì)算任務(wù),所以它在執(zhí)行金融分析、氣象預(yù)報(bào)、數(shù)據(jù)庫(kù)分析及人工智能等計(jì)算任務(wù)時(shí)具有很強(qiáng)的優(yōu)勢(shì),圖形市場(chǎng)似乎面臨新的發(fā)展機(jī)遇。不過(guò),看準(zhǔn)這個(gè)市場(chǎng)的除了NVIDIA之外,還有Intel和AMD兩個(gè)老牌芯片廠商和軟件巨頭微軟。
Intel計(jì)劃在2009年推出一款特殊的處理器——Larrabee。具有32個(gè)內(nèi)核的Larrabee不但能完成高質(zhì)量的圖形渲染,還能同時(shí)進(jìn)行大量的計(jì)算任務(wù),其浮點(diǎn)運(yùn)算性能可媲美頂尖的GPU。除了運(yùn)算能力出眾以外,Larrabee還帶來(lái)了一套基于x86的標(biāo)準(zhǔn)指令集。而作為GPU通用計(jì)算概念的另一個(gè)支持者,AMD雖然沒有拿出相應(yīng)的開發(fā)環(huán)境,但它提供的CTM瘦硬件接口,允許開發(fā)者直接訪問(wèn)GPU的原生指令集和存儲(chǔ)器。另外,微軟也計(jì)劃在DX10.1中加入開發(fā)高并行計(jì)算程序所需的功能函數(shù),以便降低開發(fā)難度。
可以看到,由CUDA引發(fā)的市場(chǎng)和類似的技術(shù)正在啟動(dòng),隨著以這類技術(shù)為代表的可編程GPU技術(shù)的不斷成熟,未來(lái)的相關(guān)產(chǎn)品將變得無(wú)所不能,而并行計(jì)算時(shí)代的競(jìng)爭(zhēng)也將異常激烈。
新技術(shù)讓生活更愉悅。
高端訪談
隨著技術(shù)的不斷發(fā)展,GPU的性能和功能越來(lái)越強(qiáng),特別是強(qiáng)大的浮點(diǎn)運(yùn)算能力讓CPU也汗顏。不過(guò),好馬也須配好鞍,硬件再?gòu)?qiáng),也要軟件扶持。近期比較熱門的CUDA就是NVIDIA為GPU量身定做的“馬鞍”。為了揭開CUDA的神秘面紗,本報(bào)記者采訪了NVIDIA亞太區(qū)市場(chǎng)總監(jiān)莊海鷗先生(以下簡(jiǎn)稱莊):
記:GPU發(fā)展到今天,尤其是統(tǒng)一渲染架構(gòu)的實(shí)現(xiàn),其性能已經(jīng)遠(yuǎn)遠(yuǎn)超出了現(xiàn)有3D圖形計(jì)算領(lǐng)域的要求,GPU在通用計(jì)算方面的優(yōu)勢(shì)似乎沒有得到充分的發(fā)揮,對(duì)此您是怎么看的?
莊:是這樣的。回顧GPU的發(fā)展過(guò)程我們不難發(fā)現(xiàn),GPU就是為了計(jì)算而生的。不過(guò)早期的GPU的發(fā)展比較“單純”,僅僅針對(duì)3D圖形計(jì)算領(lǐng)域。隨著技術(shù)的發(fā)展,GPU的可編程性越來(lái)越強(qiáng),特別是在GPU進(jìn)入DX10時(shí)代以后,統(tǒng)一渲染架構(gòu)在編程靈活性上獲得了進(jìn)一步的提升,GPU強(qiáng)大的浮點(diǎn)計(jì)算能力和數(shù)據(jù)流吞吐量使得人們希望用GPU來(lái)實(shí)現(xiàn)加速運(yùn)算。這樣一來(lái),不但可以提升整個(gè)PC平臺(tái)的計(jì)算性能,還可以大大拓展電腦的應(yīng)用領(lǐng)域和范圍。
記:CUDA能給我們?nèi)粘I罨蚬ぷ鲙?lái)什么樣的幫助?
莊:目前CUDA在許多領(lǐng)域已經(jīng)開始發(fā)揮重要的作用。比如在消費(fèi)級(jí)領(lǐng)域,如果對(duì)一部?jī)尚r(shí)的電影進(jìn)行視頻轉(zhuǎn)碼,單純依靠CPU可能需要6個(gè)小時(shí)甚至更長(zhǎng)的時(shí)間,而借助一款針對(duì)GPU加速的Badaboom軟件,就可以在幾分鐘內(nèi)完成。此外,在醫(yī)療行業(yè),借助CUDA和GPU的加速功能,醫(yī)生對(duì)一些重大疾病的診斷速度也將大大加快。
記:您怎么看待CUDA的市場(chǎng)發(fā)展前景?它是否會(huì)成為一種行業(yè)標(biāo)準(zhǔn)?
莊:雖然目前許多浮點(diǎn)密集型應(yīng)用大多集中在高端科學(xué)領(lǐng)域,普通用戶只能從Photoshop、PowerDVD、Matlab等軟件中感受到GPU的威力,但隨著越來(lái)越多的研究人員致力于借助GPU完成視頻編碼、音頻處理等應(yīng)用,也許過(guò)不了多久,就會(huì)有越來(lái)越多的應(yīng)用程序加入到通用計(jì)算的行列。我認(rèn)為CUDA今后會(huì)成為高性能電腦的一個(gè)重要組成部分。從某種意義上說(shuō),CUDA已經(jīng)超越了一種行業(yè)標(biāo)準(zhǔn)的范疇。
記:前兩年業(yè)界曾經(jīng)提出過(guò)GPGPU的概念,現(xiàn)在NVIDIA又倡導(dǎo)CUDA平臺(tái),請(qǐng)問(wèn)這兩者之間有什么區(qū)別?
莊:傳統(tǒng)GPGPU仍然把GPU當(dāng)作一塊顯卡,使用DirectX或OpenGL之類的圖形API實(shí)現(xiàn)計(jì)算目的。而CUDA是專用于GPU計(jì)算的開發(fā)環(huán)境,它打破了圖形API的限制,普通編程人員在CUDA的幫助下,只要學(xué)習(xí)一點(diǎn)點(diǎn)GPU架構(gòu)知識(shí),就能釋放出GPU強(qiáng)大的浮點(diǎn)運(yùn)算能力。換句話說(shuō),CUDA的開發(fā)門檻大大降低了。
記:在CUDA在的推廣和發(fā)展方面,NVIDIA采取了哪些具體措施和方法?
莊:雖然現(xiàn)在很多人還不完全了解CUDA,但我們已經(jīng)采取了很多措施來(lái)加快CUDA的推廣和普及步伐。具體有以下幾個(gè)方面:一是聯(lián)合全球一些著名高校和研究機(jī)構(gòu),開設(shè)關(guān)于CUDA的教程;二是與許多科研機(jī)構(gòu)合作,幫助他們開發(fā)基于CUDA平臺(tái)的高性能軟件或程序;三是舉辦CUDA編程大賽,激發(fā)程序開發(fā)人員的熱情。目前僅從官方網(wǎng)站下載CUDA開發(fā)包的次數(shù)就達(dá)到了15萬(wàn)次之多,而基于CUDA平臺(tái)進(jìn)行程序開發(fā)的人數(shù),據(jù)我們所知也有2萬(wàn)以上?! ?/p>
記:在未來(lái),電腦形態(tài)可能會(huì)有很大的變化,或許和我們現(xiàn)在看到的電腦有很大的區(qū)別,那么其中GPU又會(huì)以一個(gè)什么樣的形式存在?NVIDIA今后還會(huì)推出哪些更有利于我們生活的技術(shù)?
莊:你說(shuō)的很對(duì)。在過(guò)去的這些年,人們使用電腦的方式發(fā)生了巨大的改變。以人機(jī)交流界面為例,早期是枯燥的字符(DOS)界面,后來(lái)隨著以Window為代表的圖形化操作系統(tǒng)的出現(xiàn),人機(jī)交流界面變成了2D圖形(Windows)。相信隨著新技術(shù)、新材料的發(fā)展和運(yùn)用,人機(jī)交流界面一定會(huì)朝著高清、3D的方向發(fā)展。至于5年或10年后GPU會(huì)以什么樣的形態(tài)存在,現(xiàn)在還不好說(shuō)。不過(guò)就NVIDIA來(lái)說(shuō),今后推出的新技術(shù)和新產(chǎn)品將從視覺體驗(yàn)上(3D界面和3D內(nèi)容)給用戶帶來(lái)更多愉悅的享受。