Khronos小組于本周一(7月22日)發布了OpenCL 2.0版本,該版本可為顯示芯片提供更好的獨立性,以便能為通用軟件計算出更大的力。OpenCL是讓顯示芯片也能為通用軟件提供計算能力的標準,標準制定者就是 Khronos Group。Khronos此次發布的是OpenCL 2.0臨時規范,預計正式版本的發布要等到6個月以后,在此期間,開發者可以進行嘗試并反饋問題。更多詳細內容參見:OpenCL 2.0
“OpenCL工作小組已經將開發者反饋意見和新興的硬件功能結合在一起,用以創建先進的并行程序開發平臺——OpenCL 2.0,”OpenCL主席兼顯示芯片制造商Nvidia的移動副總裁以及Khronos Group的主席Neil Trevett說。“OpenCL將繼續集中精力在臺式機和移動設備上。另外,還可以為App開發人員提供基本的、便攜式的加速引擎、中間設備庫和高級編程語言,為此需要利用異構計算資源包括CPUs,GPUs,DSPs和FPGAs。”
OpenCL 2.0的更新項目和附件包括:
1. 共享虛擬內存
主機和設備內核能夠直接分享像樹狀結構和鏈結串列一樣復雜的指針,包括數據結構,并且能夠實現更靈活的程序設計技巧,消除主機和設備之間昂貴的傳輸成本。
2. 動態平行
設備內核可以在沒有主機交互作用的情況下,將內核有序排列到相同的設備里,支持靈活的工作調度模式,而且避免了在設備和主機之間傳輸執行控制和數據的必要,這就相當于解決了主處理器的瓶頸。
3. 通用地址空間
在沒有為參數指定地址空間的情況下也可以編寫函數,特別適合那些指針類型的參數,消除為每一個指定地址空間編寫多重函數的需求。
4. 圖像
改進的圖像支持包括sRGB圖像和3D圖像,內核處理器不但能夠讀出這些圖像,還能編寫這種類型的圖像。同時,用一個霧化貼圖或多采樣OpenGL紋理創建的OpenCL圖像可以改善OpenGL交互操作。
5. C11 Atomics
C11 Atomics的一個子集和同步操作能夠讓同在一個工作組里的工作項與工作項之間的任務是相互可見的,通過交叉在不同工作組里的方式運行在設備上,或者是在OpenCL設備和主機之間進行數據共享。
6. 管線
管線是內存對象,用于存儲數據并有序的組織成為一個FIFO(先進先出),OpenCL 2.0為內核提供了內置函數來讀取數據或寫入管線,OpenCL設備能夠高效優化管線數據架構的簡單編程。
7. 可在Android上安裝的客戶端驅動程序擴展
可以讓OpenCL編譯器在Android系統上能夠被發現并加載成為一個共享對象。
原文:Khronos