AMD 波前与工作组
AMD wavefront vs. workgroup
我对 AMD 波前和 OpenCL 工作组规模的术语有点困惑。
我发现不同的来源是不同的陈述。
我的问题是:AMD 的 GCN 技术的波前尺寸是多少,根据这个:opencl 上的工作组至少应该有多大才能不浪费占用空间。
我从amd的this document那里得到的信息是,GCN的波前大小是16。我可以运行一次在CU上有4个波前,最多有每立方米 40 个飞行波阵面。所以我的意思是,在 opencl 中工作组的大小应该至少为 16。
但常见信息(例如 this or this 中的)是波前大小为 64,根据此工作组大小应至少为 64,如果更高,则应为 64 的倍数。这也与测量结果相匹配在我的内核上,工作组大小为 64 时,我获得了最高性能,对于低于 64 的所有内容,它变得更糟。
非常感谢您的澄清。
你搞错了。再次仔细阅读this document。 SIMD 单元有 16 个工作项,波前尺寸为 64 个工作项。以下是重要引述:
第 3 页:
In GCN, each CU includes 4 separate SIMD units for vector processing. Each of these SIMD units simultaneously executes a single operation across 16 work
items, but each can be working on a separate wavefront.
第 5 页:
This is essential for wavefront control flow; for example, comparisons will generate a result for each of the 64 work-items in a wavefront.
我对 AMD 波前和 OpenCL 工作组规模的术语有点困惑。 我发现不同的来源是不同的陈述。
我的问题是:AMD 的 GCN 技术的波前尺寸是多少,根据这个:opencl 上的工作组至少应该有多大才能不浪费占用空间。
我从amd的this document那里得到的信息是,GCN的波前大小是16。我可以运行一次在CU上有4个波前,最多有每立方米 40 个飞行波阵面。所以我的意思是,在 opencl 中工作组的大小应该至少为 16。
但常见信息(例如 this or this 中的)是波前大小为 64,根据此工作组大小应至少为 64,如果更高,则应为 64 的倍数。这也与测量结果相匹配在我的内核上,工作组大小为 64 时,我获得了最高性能,对于低于 64 的所有内容,它变得更糟。
非常感谢您的澄清。
你搞错了。再次仔细阅读this document。 SIMD 单元有 16 个工作项,波前尺寸为 64 个工作项。以下是重要引述:
第 3 页:
In GCN, each CU includes 4 separate SIMD units for vector processing. Each of these SIMD units simultaneously executes a single operation across 16 work items, but each can be working on a separate wavefront.
第 5 页:
This is essential for wavefront control flow; for example, comparisons will generate a result for each of the 64 work-items in a wavefront.