DX11性價比之王!GTX460雙雄權威評測
第三章/第五節 特色功能之戰:CUDA遙遙領先于Stream
提起GPU通用計算,自然會讓人想到NVIDIA的CUDA、ATI的Stream以及開放式的OpenCL標準,再加上微軟推出的DirectCompute,四種技術標準令人眼花繚亂,他們之間的競爭與從屬關系也比較模糊。
首先我們來明確一下概念:
1. OpenCL類似于OpenGL,是由整個業界共同制定的開放式標準,能夠對硬件底層直接進行操作,相對來說比較靈活,也很強大,但開發難度較高;
2. DirectCompute類似于DirectX,是由微軟主導的通用計算API,與Windows集成并偏向于消費領域,在易用性和兼容性方面做得更出色一些;
3. CUDA和Stream更像是圖形架構或并行計算架構,NVIDIA和ATI對自己的GPU架構自然最了解,因此會提供相應的驅動、開發包甚至是現成的應用程序,通過半開放的形式授權給程序員使用。
其中ATI最先提出GPGPU的概念,Folding@Home和AVIVO是當年的代表作,但在被AMD收購后GPGPU理念擱淺;此后NVIDIA后來者居上,首次將CUDA平臺推向市場,在這方面投入了很大的精力,四處尋求合作伙伴的支持,并希望CUDA能夠成為通用計算的標準開發平臺。
NVIDIA CUDA架構示意圖
在NVIDIA大力推廣CUDA之初,由于OpenCL和DirectCompute標準尚未定型,NVIDIA不得不自己開發一套SDK來為程序員服務,這套基于C語言的開發平臺為半開放式標準(類似與Java的授權形式),只能用于NVIDIA自家GPU。AMD始終認為CUDA是封閉式標準,不會有多少前途,AMD自家的Stream平臺雖然是完全開放的,但由于資源有限,對程序員幫助不大,因此未能得到大量使用。
ATI Stream示意圖
DX11時代我們迎來了微軟的DirectCompute 11和OpenCL這兩大GPU計算API,其定位就相當于3D圖形領域的DirectX和OpenGL。就如同GPU能同時支持DirectX與OpenGL那樣,NVIDIA和AMD對DirectCompute和OpenCL都提供了無差別支持。
我們希望新API的出現能夠打破目前GPU計算領域混亂的格局,并帶來更多實用的應用和軟件,但從目前的發展方向來看,進展還是相當緩慢。當前主流的一些GPU計算類軟件,主要還是集中在視頻轉碼和編輯方面,都是以NVIDIA和AMD的CUDA/Stream技術為主。
就拿視頻轉碼來說,ATI驅動集成的AVIVO轉碼器功能太過簡單,轉換后視頻的畫質很差,而且主要依靠CPU轉碼,跟GPU的關系不大。而NVIDIA的Badaboom完全依靠GPU轉碼,GTX480的性能都能完全釋放出來,MediaCoder更是能夠充分發揮出CPU和GPU的效能,成為目前轉碼速度最快的軟件;MediaShow能同時支持A卡和N卡,主要依靠CPU轉碼,對GPU的要求很低,雙方性能差距并不明顯。
而在視頻編輯和應用方面,目前視頻倍線軟件和2D轉3D的軟件能夠同時支持CUDA和Stream技術,但一般都是等支持CUDA大半年之后,才加入對Stream的支持。此外還有一些加密解密、視頻修復軟件只支持CUDA不支持Stream,很顯然AMD對于GPU計算方面投入的精力還不夠多,支持Stream的軟件無論數量還是質量都跟CUDA相差一大截。
關注我們



