numrs/llo/reduction.rs
1/// Low-level reduction op representation
2
3use serde::{Serialize, Deserialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct Reduction {
7 pub axis: Option<usize>,
8}
9
10/// Kind of reduction operation
11#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
12pub enum ReductionKind {
13 Sum,
14 Max,
15 Min,
16 Mean,
17 ArgMax,
18 Variance,
19}
20
21/// Selected reduction strategy
22#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
23pub enum ReductionStrategy {
24 ScalarLoop,
25 Parallel,
26 GpuKernel,
27}