GPU挑戰CPU地位!詳解CUDA+OpenCL威力
分享
理清CUDA架構及OpenCL API之間的關系之后,再來研究下CUDA C語言與OpenCL之間的優劣,兩者有很多相似之處,存在著競爭與互補的雙重關系,但對于GPU硬件架構(如CUDA)來說是無差別的。
NVIDIA認為CUDA的基本理念因OpenCL的出現得到了增強。兩者的根本原理都是一樣的,但OpenCL是一種更底層的架構,需要開發人員自行編寫內存管理等等功能的代碼,而CUDA則可以讓那些非專業編程人員如科研工作者更簡單的編制GPGPU程序代碼。
簡言之,CUDA C語言與OpenCL的定位不同,或者說是用人群不同。CUDA C是一種高級語言,那些對硬件了解不多的非專業人士也能輕松上手;而OpenCL則是針對硬件的應用程序開發接口,它能給程序員更多對硬件的控制權,相應的上手及開發會比較難一些。
另外程序員的使用習慣也是非常重要的一方面,那些在X86 CPU平臺使用C語言的人員,會很容易接受基于CUDA GPU平臺的C語言;而習慣于使用OpenGL圖形開發的人員,看到OpenCL會更加親切一些,在其基礎上開發與圖形、視頻有關的計算程序會非常容易。
所以說,CUDA C語言與OpenCL是各有所長,是互補而非競爭關系,不會發生一方取代另一方的情況。就拿成熟的X86 CPU架構來講,各種開發語言不勝枚舉,C、C++、Basic、Fortran、Java……,每種語言都有自己的特色、都能找到適合自己的領域。現在針對GPU架構的語言及API還不夠多,目前僅有的CUDA C語言和OpenCL都還處在起步階段,相信未來會有更多的語言/API移植到GPU上來,CUDA架構為此已經做好了充分的準備。
2人已贊
關注我們



