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、Qualcomm、Arm、英特尔、坦佩雷大学、NVIDIA 和 Google 的工程师开发,以克服 cl_khr_command_buffer 的限制,即命令缓冲区中记录的命令在队列之间是不可变的。
cl_khr_command_buffer 扩展通过提供一种记录一组命令的机制将命令构造与入队分开,然后这些命令可以重复入队。但是,记录到命令缓冲区的命令在队列之间是不可变的。
cl_khr_command_buffer_mutable_dispatch 消除了这个限制,特别是,这个扩展允许修改命令缓冲区中的内核执行命令的配置,称为 mutable-dispatch。这允许内核的输入和输出,以及工作项的大小和偏移量,而无需在新的命令缓冲区中重新记录整个命令序列。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun191017.html