Skip to main content

## wave_reduce_add

# Function wave_reduce_add

Source

    pub fn wave_reduce_add<const STRATEGY: u32>(value: u32) -> u32

🔬This is a nightly-only experimental API. (`stdarch_amdgpu` #149988)
Available on AMD GPU only.
Expand description

Performs an arithmetic add reduction on the values provided by each lane in the wavefront.

The `STRATEGY` argument is a hint for the reduction strategy.

- 0: Target default preference
- 1: Iterative strategy
- 2: DPP

If target does not support the DPP operations (e.g. gfx6/7), reduction will be performed using default iterative strategy.

This intrinsic does not behave like a normal function call; it is a “convergent” operation and as such has non-standard control-flow effects which need special treatment by the language. Rust currently does not properly support convergent operations. This operation is hence provided on a best-effort basis. Using it may result in incorrect code under some circumstances.