Khronos Group 擁有發布了 OpenCL 3.0.12 作為該 API 的最新版本,用於跨異構平台的計算,但主要以 GPU 計算而聞名。
OpenCL 3.0.12 中記錄的更改如下:
* 添加了有效對象的定義和測試有效對象的要求。
* 添加了內核支持的參數數量的最大限制。
* 明確了對象句柄的可比性和唯一性要求。
* 澄清了無效設備端排隊“clk_event_t”句柄的行為。
* 澄清了 `cl_khr_command_buffer` 與其他擴展的交互。
* 指定命令緩衝區多次完成時的錯誤行為。
最值得注意的是引入了一個新的擴展,用於使用命令緩衝區進行可變調度。 cl_khr_command_buffer_mutable_dispatch 是 OpenCL 3.0.12 中的新功能,並以臨時形式引入。 cl_khr_command_buffer_mutable_dispatch 擴展允許在命令緩衝區隊列之間修改內核執行命令的配置。
cl_khr_command_buffer_mutable_dispatch 擴展由 Codeplay、高通、Arm、英特爾、坦佩雷大學、NVIDIA 和 Google 的工程師開發,以克服 cl_khr_command_buffer 的限制,即命令緩衝區中記錄的命令在隊列之間是不可變的。
cl_khr_command_buffer 擴展通過提供一種機制來記錄一組可以重複入隊的命令,從而將命令構造與入隊分開。但是,記錄到命令緩衝區的命令在隊列之間是不可變的。
cl_khr_command_buffer_mutable_dispatch 消除了這個限制,特別是,這個擴展允許修改命令緩衝區中的內核執行命令的配置,稱為 mutable-dispatch。這允許內核的輸入和輸出以及工作項的大小和偏移量進行更改,而無需在新的命令緩衝區中重新記錄整個命令序列。
官方 OpenCL 3.0.12 文檔可以從 GitHub 下載。