09-12年顯卡功能拓展:CUDA和Stream分析
★ 09-12年顯卡功能拓展:CUDA、Stream、DirectCompute、OpenCL
提起GPU通用計(jì)算,自然會(huì)讓人想到NVIDIA的CUDA、ATI的Stream以及開放式的OpenCL標(biāo)準(zhǔn),再加上微軟推出的DirectCompute,四種技術(shù)標(biāo)準(zhǔn)令人眼花繚亂,他們之間的競爭與從屬關(guān)系也比較模糊。
首先我們來明確一下概念:
1. OpenCL類似于OpenGL,是由整個(gè)業(yè)界共同制定的開放式標(biāo)準(zhǔn),能夠?qū)τ布讓又苯舆M(jìn)行操作,相對(duì)來說比較靈活,也很強(qiáng)大,但開發(fā)難度較高;
2. DirectCompute類似于DirectX,是由微軟主導(dǎo)的通用計(jì)算API,與Windows集成并偏向于消費(fèi)領(lǐng)域,在易用性和兼容性方面做得更出色一些;
3. CUDA和Stream更像是圖形架構(gòu)或并行計(jì)算架構(gòu),NVIDIA和ATI對(duì)自己的GPU架構(gòu)自然最了解,因此會(huì)提供相應(yīng)的驅(qū)動(dòng)、開發(fā)包甚至是現(xiàn)成的應(yīng)用程序,通過半開放的形式授權(quán)給程序員使用。
其中ATI最先提出GPGPU的概念,F(xiàn)olding@Home和AVIVO是當(dāng)年的代表作,但在被AMD收購后GPGPU理念擱淺;此后NVIDIA后來者居上,首次將CUDA平臺(tái)推向市場,在這方面投入了很大的精力,四處尋求合作伙伴的支持,并希望CUDA能夠成為通用計(jì)算的標(biāo)準(zhǔn)開發(fā)平臺(tái)。
在NVIDIA大力推廣CUDA之初,由于OpenCL和DirectCompute標(biāo)準(zhǔn)尚未定型,NVIDIA不得不自己開發(fā)一套SDK來為程序員服務(wù),這套基于C語言的開發(fā)平臺(tái)為半開放式標(biāo)準(zhǔn),只能用于NVIDIA自家GPU,因此并未得到業(yè)界的認(rèn)可,AMD認(rèn)為CUDA是封閉式標(biāo)準(zhǔn),不會(huì)有多少前途,AMD自家的Stream雖然是完全開放的,但由于資源有限,對(duì)程序員幫助不大,因此未能得到大量使用。
就如同GPU能同時(shí)支持DirectX與OpenGL那樣,NVIDIA和AMD對(duì)DirectCompute和OpenCL都提供了無差別支持,真正的GPU通用計(jì)算之戰(zhàn),不在CUDA與Stream之間,而是OpenCL與DirectCompute之爭,DX11時(shí)代才剛剛開始……
● CUDA通用計(jì)算遍地開花
雖然GPU通用計(jì)算的概念最早由ATI提出并率先應(yīng)用,但NVIDIA早已后來者居上。通過我們此前的諸多報(bào)道來看,CUDA軟件無論數(shù)量還是質(zhì)量都遠(yuǎn)超Stream,即便是同時(shí)支持CUDA和Stream的軟件,對(duì)于Stream的支持也都要晚上幾個(gè)月,N卡用戶有更多的選擇,而A卡用戶有得用就不錯(cuò)了,HD7000在架構(gòu)上已經(jīng)接近CUDA核心了,但軟件方面依然是軟肋。
最近兩年,GPU通用計(jì)算在民用領(lǐng)域的應(yīng)用出現(xiàn)了爆炸性成長的局面,CoreAVC CUDA解碼器、GPU倍線視頻、MediaShow、MediaCoder、暴風(fēng)轉(zhuǎn)碼等一批更好用、更實(shí)用的軟件,讓普通用戶真正感受到了通用計(jì)算技術(shù)所帶來的好處。
參考文章:游戲外的精彩!GPU通用計(jì)算軟件大放送