Vulkan Subgroup Functionality
summary
Vulkan 1.1 adds subgroups that let invocations share data without shared memory, speeding reductions and cutting atomics; subgroup size ranges 1 to 128 (common: 32 on NVIDIA, 64 on AMD). Built-ins include ballots returning a uvec4, shuffle/shuffle_xor/shuffle_up/down, inclusive/exclusive scans, clustered and partitioned subgroup ops, quad (2×2) helpers, plus execution and memory barriers. NVIDIA maps these to fast native shuffle instructions and recommends workgroup sizes that are integer multiples of the subgroup.
AI-written summary · about
chapters (21)
- 0:00Intro
- 0:51Motivation
- 2:26What are Subgroups?
- 4:46Vulkan 1.1 API: Subgroup Properties
- 10:05Subgroup Vote Operations
- 11:17Subgroup Basic and Vote Examples
- 13:10Subgroup Arithmetic Operations
- 15:23Subgroup Arithmetic Examples
- 17:03Subgroup Ballot Operations
- 22:03Subgroup Ballot Examples
- 23:56Subgroup Shuffle Operations
- 25:42Subgroup Shuffle Examples
- 26:27Subgroup Shuffle Relative Operations
- 28:03Subgroup Clustered Operations
- 30:08Subgroup Quad Operations
- 31:41Subgroup Quad Examples
- 32:20Subgroup Partitioned Operations (NV)
- 34:14Subgroup Partitioned Examples
- 36:38NVIDIA Implementation Details
- 39:45HLSL SM 6.0 Wave Ops Comparison
- 42:18References
