opencl編程
『壹』 OpenCL是什麼,查了半天沒看懂,能簡單明了的告訴我是干什麼的有什麼功能嗎
OpenCL是GPU通用運算API。是顯卡作通用浮點運算的API。比如視頻轉碼,原來這個工作都是CPU來做的。現在顯卡運算能力比較強,這個工作完全可以交給顯卡來做。
要調用顯卡,這個工作不需要再由程序員考慮了,因為已經有一個現成的介面了,程序員只要管好轉碼的演算法,然後直接調用OpenCL中現成的指令,這個工作就自動由CPU轉交到GPU了。
OpenCL是一個為異構平台編寫程序的框架,此異構平台可由CPU,GPU或其他類型的處理器形成。OpenCL由一門用於編寫kernels (在OpenCL設備上運行的函數)的語言(基於C99)和一組用於定義並控制平台的API組成。OpenCL提供了基於任務分割和數據分割的並行計算機制。
OpenCL類似於另外兩個開放的工業標准OpenGL和OpenAL,這兩個標准分別用於三維圖形和計算機音頻方面。OpenCL擴展了GPU用於圖形生成之外的能力。OpenCL由非盈利性技術組織Khronos Group掌管。

(1)opencl編程擴展閱讀
API之主要目的是提供應用程序與開發人員以訪問一組常式的能力,而又無需訪問源碼,或理解內部工作機制的細節。提供API所定義的功能的軟體稱作此API的實現。API是一種介面,故而是一種抽象。
應用程序介面(英語:Application ProgrammingInterface,簡稱:API),又稱為應用編程介面,就是軟體系統不同組成部分銜接的約定。由於近年來軟體的規模日益龐大,常常需要把復雜的系統劃分成小的組成部分,編程介面的設計十分重要。程序設計的實踐中,編程介面的設計首先要使軟體系統的職責得到合理劃分。良好的介面設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。[1]
