什么是 OpenCL 上下文中的扭曲?

What is a warp in context of OpenCL?

我相当确定扭曲仅在 CUDA 中定义。但也许我错了。什么是 OpenCL 方面的扭曲?

这和工作组不一样吧? 非常感谢任何相关反馈。谢谢!

它没有在 OpenCL 标准中定义。 warp 是由硬件执行的线程(CUDA 线程并不是真正的线程,而是通过一些巧妙的 hardware/software 映射作为单独的 SIMD 元素映射到 warp 上)。它是工作项的集合,一个工作组中可以有多个 warp。

OpenCL 子组被设计为与硬件线程兼容,因此能够表示 OpenCL 内核中的扭曲,但是否实施子组完全取决于 NVIDIA,当然还有 OpenCL subgroup 无法公开 NVIDIA 可以为 warp 公开的所有功能,因为它是一个标准,而 NVIDIA 可以在自己的设备上做任何他们喜欢的事情。