CUDA孿生弟兄!GPU計(jì)算OpenCL標(biāo)準(zhǔn)分析
CUDA和OpenCL原理是一樣的,都是基于C語言編程,但CUDA只能用于NVIDIA GPU(半封閉式),而OpenCL是完全開放的,可以支持任何GPU(DX9以上級別)。舉個(gè)最簡單的例子,基于CUDA技術(shù)的PhysX與Badaboom只能用于NVIDIA GeForce 8以上級別的顯卡,而基于OpenCL/GL技術(shù)的PhotoShop CS4就能支持目前所有主流顯卡。
簡單說明下OpenCL和CUDA的不同:
- OpenCL提供統(tǒng)一的標(biāo)準(zhǔn),讓不同廠家的設(shè)備來支持,使得我們可以統(tǒng)一看待計(jì)算資源。這個(gè)計(jì)算資源不但包括GPU,也包括CPU。
- OpenCL更關(guān)注于多個(gè)計(jì)算資源的管理,不但在計(jì)算單元內(nèi)部可以實(shí)現(xiàn)并行,而且對于一臺(tái)宿主機(jī)上的所有計(jì)算設(shè)備的并行化進(jìn)行管理。
雖然CUDA和OpenCL是兩種標(biāo)準(zhǔn)兩種概念,但其實(shí)兩者并不是對立的存在,不但不會(huì)產(chǎn)生利益沖突,反倒是一種互補(bǔ)互利的關(guān)系。因?yàn)镹VIDIA不但是OpenCL標(biāo)準(zhǔn)的制定者之一,而且是蘋果的親密合作伙伴。比如蘋果新一代MacBook將會(huì)采用NVIDIA的GeForce 9400M GPU,這款整合顯卡擁有16個(gè)流處理器,既能運(yùn)行基于CUDA的應(yīng)用程序以及對其進(jìn)行編程,將來也能完美支持基于OpenCL API的并行計(jì)算程序。

AMD在內(nèi)部文檔中暗指NVIDIA的CUDA為“封閉技術(shù)”
此前AMD攻擊NVIDIA,稱CUDA為封閉的標(biāo)準(zhǔn),而AMD則大力支持完全開放的OpenCL。但目前來看NVIDIA兩手抓兩手都要硬的策略還是更加靠普,在OpenCL成型之前的真空期,CUDA已經(jīng)大展宏圖取得了驕人的戰(zhàn)績,待到OpenCL完善后NVIDIA也會(huì)無條件提供支持,將兼容性和效能發(fā)揮到最大。而對于AMD來說,GPU通用計(jì)算則要完全依賴OpenCL,因此目前AMD并行計(jì)算尚未正式進(jìn)入實(shí)際應(yīng)用階段,只有等待OpenCL API成熟之后,才能在其基礎(chǔ)上進(jìn)行二次開發(fā),無論運(yùn)算效率還是軟件支持度都將會(huì)大打折扣!
關(guān)注我們


