Warp Vote Warp/Wavefront-Level

Ask whether a predicate holds for all, or for any, active lanes.

Vendor-Neutral Definition

A reduction of a per-lane boolean to a single value visible to the whole warp or wavefront, used to take a uniform branch when every lane agrees.
⚠️ Cross-vendor mappings describe semantic relationships and are not guaranteed one-to-one compiler translations.
equivalent sequence PTX has a dedicated vote instruction. AMDGPU builds the same answer from a lane mask and a scalar comparison, which is more instructions but exposes the mask itself.
Property NVIDIA PTX AMDGPU
Instruction vote v_cmp_eq_u32, s_cmp_eq_u32
ISA Layer Virtual Native
Data Types - u32
Version / Target Introduced PTX ISA 6.0 gfx1100, gfx1100

Important Differences

  • AMDGPU has no vote opcode. A v_cmp writes a 64-bit per-lane mask into an SGPR pair, and the vote is then a scalar test of that mask: all is mask == EXEC, any is mask != 0.
  • That intermediate mask is a value the program can keep and reuse, which PTX's vote.all and vote.any discard. vote.ballot is the PTX instruction that exposes it.
  • Since Volta and independent thread scheduling, PTX requires the .sync forms with an explicit member mask; the non-sync forms are deprecated and unsafe under divergence.

Source Evidence

Verification method: documentation