当队列包含等待完成事件的未执行内核时,clReleaseCommandQueue 挂起

clReleaseCommandQueue hangs when queue contains unexecuted kernels that are waiting on completion events

在我看来,释放命令队列应该删除所有未执行的内核,即使它们正在等待完成事件。

我用的是AMD卡,好像要手动设置completion events为COMPLETE才能成功释放command queue

这是 AMD 实现中的错误吗?

如有疑问,请始终参考规范:

clReleaseCommandQueue performs an implicit flush to issue any previously queued OpenCL commands in command_queue.

所以,这实际上是预期的行为。