ReduceOperation

Applicable Products

Hardware Model

Supported

Atlas 350 accelerator cards

√

Atlas A3 inference products/Atlas A3 training products

√

Atlas A2 training products/Atlas A2 inference products

√

Atlas training products

x

Atlas inference products

x

Atlas 200I/500 A2 inference products

x

Description

Calculates the sum, maximum or minimum value in a specified dimension and eliminates the dimension.

Formula

  • REDUCE_MAX:

    Equivalent in PyTorch

    intensor.amax(axis)
    • Example 1

      x shape: [2,3], axis: [0]

      x:
      tensor([[ 1, 18, 17],
              [16, 10,  1]])
      output:
      tensor([16, 18, 17])
    • Example 2

      x shape: [2,3,2], axis: [0,1]

      x:
      tensor([[[17,  3],
               [19,  6],
               [ 1, 18]],
      
              [[ 4,  5],
               [ 8,  1],
               [14, 18]]])
      output:
      tensor([19, 18])
  • REDUCE_MIN:

    Equivalent in PyTorch

    intensor.amin(axis)
    • Example 1

      x shape: [2,3], axis: [0]

      x:
      tensor([[16,  2,  7],
              [18, 16, 17]])
      output:
      tensor([16,  2,  7])
    • Example 2

      x shape: [2,3,2], axis: [0,1]

      x:
      tensor([[[ 9,  4],
               [11,  0],
               [ 2,  6]],
      
              [[ 2,  7],
               [ 8, 16],
               [ 5,  3]]])
      output:
      tensor([2, 0])
  • REDUCE_SUM:

    Equivalent in PyTorch

    torch.sum(intensor, axis)
    • Example 1

      x shape: [2,3], axis: [0]

      x:
      tensor([[-0.9701, -0.8059,  0.2919],
              [-0.1444, -2.3023,  1.2257]])
      output:
      tensor([-1.1145, -3.1082,  1.5176])
    • Example 2

      x shape: [2,3,2], axis: [0,1]

      x:
      tensor([[[ 1.4630, -0.3619],
               [-0.4526, -1.0142],
               [-0.2883,  0.9334]],
      
              [[ 0.7801, -0.1580],
               [ 0.4843,  1.8145],
               [ 0.9706, -1.8114]]])
      output:
      tensor([ 2.9571, -0.5976])

Definition

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
struct ReduceParam {
    enum ReduceType {
        REDUCE_UNDEFINED = 0,
        REDUCE_MAX,
        REDUCE_MIN,
        REDUCE_SUM,
    };
    ReduceType reduceType = REDUCE_UNDEFINED;
    SVector<int64_t> axis;
    uint8_t rsv[8] = {0};
};

Parameters

Member

Type

Default Value

Description

reduceType

ReduceType

REDUCE_UNDEFINED

Calculation type. The following options are supported:

  • REDUCE_UNDEFINED: undefined
  • REDUCE_MAX: returns the maximum value.
  • REDUCE_MIN: returns the minimum value.
  • REDUCE_SUM: returns the sum.

This default type is unavailable. You must set this parameter.

axis

SVector<int64_t>

{}

Axis (dimension).

  • axis cannot be empty and its length must be less than or equal to the dimension of input x.
  • Multiple axes are supported. The dimension of each element must be less than x and greater than or equal to 0.

rsv[8]

uint8_t

{0}

Reserved

Input

Parameter

Dimension

Data Type

Format

Description

x

[dim_0, dim_1, ..., dim_n]

  • REDUCE_MAX/REDUCE_MIN: int32/bf16
  • REDUCE_SUM: float16/bf16

ND

Input tensor.

Output

Parameter

Dimension

Data Type

Format

Description

output

Eliminates the dimension required by axis based on the dimension of input x.

  • REDUCE_MAX/REDUCE_MIN: int32/bf16
  • REDUCE_SUM: float16/bf16

ND

Output tensor.

Constraints

  • The dimension of each element in axis must be less than x and greater than or equal to 0.
  • reduceType must be REDUCE_MAX, REDUCE_MIN, or REDUCE_SUM.