CUDA孿生弟兄!GPU計算OpenCL標準分析
針對CUDA與OpenCL之間錯綜復(fù)雜的關(guān)系,筆者咨詢了NVIDIA相關(guān)技術(shù)人員,分享給喜歡研究技術(shù)與關(guān)注行業(yè)動態(tài)的朋友們。
- NVIDIA已經(jīng)有了自家的CUDA平臺,為什么還要支持OpenCL標準?
答:當(dāng)然要支持。Apple是一家實力強勁的合作伙伴,他們宣布以GPU作為其操作系統(tǒng)以及應(yīng)用程序戰(zhàn)略的核心,這是對并行計算運動提供強有力的支持。我們已經(jīng)在CUDA身上投入了五年多的精力,而支持CUDA的NVIDIA GPU數(shù)量也超過了8000萬顆,NVIDIA不但是Windows平臺的非常好的選擇,對與Mac OS X以及Linux等各種操作環(huán)境也極為重視。OpenCL標準的出臺有助于拓展GPU的功能及市場,NVIDIA沒有理由不支持。
- NVIDIA在OpenCL標準的制定過程中扮演著什么樣的角色?
答:作為GPU技術(shù)的行業(yè)領(lǐng)袖,我們有責(zé)任推動和發(fā)起并行計算運動。我們已經(jīng)在CUDA身上投入了五年多的精力,CUDA團隊將繼續(xù)支持我們所有的合作伙伴,幫助他們將并行GPU計算推向市場。NVIDIA在CUDA研發(fā)過程中的經(jīng)驗以及NVIDIA GPU龐大的市場占有率奠定了舉足輕重、不可或缺的角色!
- OpenCL是否基于CUDA而開發(fā)?兩者的異同?
答:CUDA包含編譯器、軟件工具以及應(yīng)用程序接口(API),是一款經(jīng)過精心調(diào)試與完善的編程環(huán)境和架構(gòu),對我們而言,OpenCL是進入CUDA并行編程架構(gòu)的另一種應(yīng)用程序接口。
針對OpenCL以及CUDA,編程人員可以使用相同的理念體系以及并行編程策略。二者在句法上非常相似,但是OpenCL更適用于OS X,而CUDA則基于標準的C語言,可適用于各種平臺。我們已經(jīng)設(shè)計出了軟件棧,因此對我們的硬件來說,OpenCL以及CUDA看上去是一樣的。它們只是通向GPU加速代碼的兩種不同途徑而已。
- CUDA與OpenCL能否互相兼容?
答:CUDA和OpenCL二者的應(yīng)用程序接口(API)有所不同,因此代碼也不會完全兼容。然而,它們在定義數(shù)據(jù)并行機制方面有類似的構(gòu)造,因此它們的代碼會非常相似,而且移植工作也會非常省力?,F(xiàn)在的情況是,CUDA已經(jīng)面世并且得到了包括OS X在內(nèi)的所有大多數(shù)操作系統(tǒng)的支持,這就意味著開發(fā)人員現(xiàn)在擁有了一個穩(wěn)定、普及的環(huán)境來開發(fā)gigaflop級浮點性能GPU應(yīng)用程序。這種開發(fā)環(huán)境在OpenCL發(fā)布時可通過OpenCL輕松地與OS X整合在一起。
- OpenCL是否會代替CUDA?NVIDIA是否支持將OpenCL指定為一種行業(yè)標準?
答:CUDA是不會被取代的,OpenCL實際上可利用CUDA驅(qū)動程序堆棧來在NVIDIA GPU上實現(xiàn)更高的性能。NVIDIA當(dāng)然支持OpenCL,我們支持所有的標準制定工作。
相關(guān)文章:專訪NV首席科學(xué)家:CUDA將是業(yè)界標準
關(guān)注我們


