我试图了解Metal中的SIMD组,并且我挂了什么“通道ID”,因为似乎有一些冲突的文档。
在此处以Apple为例:https://developer.apple.com/documentation/metal/creating_threads_and_threadgroups
它说:
[[simdgroup_index_in_threadgroup]]
SIMD组在其线程组中的唯一标量索引,也称为 作为车道ID。
[[thread_index_in_simdgroup]]
线程在其SIMD组中的唯一标量索引。
在Apple的金属着色语言规范文档中:https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf
在第6.8页的第133页中,他们举了simd_shuffle_down
的示例,其中车道ID对应于[[thread_index_in_simdgroup]]
,这对我来说似乎是正确的。
我认为应该将通道ID列在[[thread_index_in_simdgroup]]
下,因为通道ID应该是相应SIMD-group / Warp / Wavefront中线程的索引。
这正确吗?