pub enum ReductionIntrinsic {
BlockReduceSum,
BlockReduceMin,
BlockReduceMax,
BlockReduceAnd,
BlockReduceOr,
GridReduceSum,
GridReduceMin,
GridReduceMax,
AtomicAccumulate,
AtomicAccumulateFetch,
BroadcastRead,
ReduceAndBroadcast,
}Expand description
Reduction intrinsic types for the DSL.
Variants§
BlockReduceSum
Block-level sum reduction: block_reduce_sum(value, shared_mem)
BlockReduceMin
Block-level min reduction: block_reduce_min(value, shared_mem)
BlockReduceMax
Block-level max reduction: block_reduce_max(value, shared_mem)
BlockReduceAnd
Block-level AND reduction: block_reduce_and(value, shared_mem)
BlockReduceOr
Block-level OR reduction: block_reduce_or(value, shared_mem)
GridReduceSum
Grid-level sum with atomic accumulation: grid_reduce_sum(value, shared, accumulator)
GridReduceMin
Grid-level min with atomic accumulation: grid_reduce_min(value, shared, accumulator)
GridReduceMax
Grid-level max with atomic accumulation: grid_reduce_max(value, shared, accumulator)
AtomicAccumulate
Atomic accumulate to buffer: atomic_accumulate(accumulator, value)
AtomicAccumulateFetch
Atomic accumulate with fetch: atomic_accumulate_fetch(accumulator, value)
BroadcastRead
Read from reduction buffer (broadcast): broadcast_read(buffer)
ReduceAndBroadcast
Full reduce-and-broadcast: reduce_and_broadcast(value, shared, accumulator)
Returns the global result to all threads.
Implementations§
Trait Implementations§
Source§impl Clone for ReductionIntrinsic
impl Clone for ReductionIntrinsic
Source§fn clone(&self) -> ReductionIntrinsic
fn clone(&self) -> ReductionIntrinsic
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more