天天看點

《OpenCL實戰》一1.5 OpenCL标準和擴充

本節書摘來異步社群《opencl實戰》一書中的第1章,第1.5節,作者: 【美】matthew scarpino 譯者: 陳睿 責編: 陳冀康,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

當你在通過網站www.khronos.org/opencl了解opencl時,你會看到一個名為opencl-1.1.pdf的重要檔案。這其中包含了opencl1.1的标準,它所包含的是大量關于程式設計語言的内容。它不僅僅定義了opencl的函數和資料結構,還對廠商所提供的開發工具提出了功能上的要求。除此之外,它還設定了一系列的标準來判定裝置的相容性。

但是相容軟體和硬體所能提供的功能已經超出了标準所設定的内容。這些額外的特性需要通過擴充(extensions)的方式供opencl應用程式使用。有兩種主要類型的擴充:一種和廠商的軟體包(叫做平台)相關,一種和裝置相關。第2章将讨論如何編寫代碼來确認這些軟體平台擴充和裝置擴充。

每個opencl擴充都有特定的名字,而這也反映了它的相容度。如果一個擴充為opencl工作組所認可,它的名字就會像cl_khr_一樣,如果它隻是釋出在開發商的sdk中,還沒有得到工作組的認可,它的名字則形如cl__。

例如,在我的linux中,amd平台所支援的擴充便是cl_khr_icd。這個擴充就是軟體平台擴充。而這也讓開發工具能夠找到安裝在系統裡,針對特定廠商的opencl庫檔案。icd表示的是installable client driver(可安裝的使用者驅動),附錄a會更深入地讨論這個問題。

繼續閱讀