The matrix multiply accelerator (MMA) provides the following key features:
- Support for fully connected layer using matrix multiply with arbitrary dimension
- Support for convolution layer using 2D convolution with matrix multiply with read panel
- Support for ReLU non-linearity layer OTF
- Support for high utilization (>85%) for typical convolutional neural network (CNN), such as AlexNet, ResNet, and others
- Ability to support any CNN network topologies limited only by memory size and bandwidth
- Coupled with C7x CPU using DSP chassis for data formatting
- MMA and C7x CPU are on a shared power domain
- MMA cannot be independently powered off or clock gated at LPSC level (although it has extensive clock gating within the IP)
- Supports 256-bit vector width
- Supports the following input operand types:
- 4-bit unsigned integer
- 8-bit unsigned integer
- 8-bit signed integer
- 16-bit unsigned integer
- 16-bit signed integer
- 32-bit unsigned integer
- 32-bit signed integer
- 32-bit single precision float
- Supports the following data types for accumulation:
-
32-bit unsigned integer for 8-bit unsigned operands
-
32-bit signed integer for 8-bit signed or mixed signed/unsigned operands
-
64-bit unsigned integer for 16-bit unsigned operands
-
64-bit signed integer for 16-bit signed or mixed signed/unsigned operands
-
128-bit unsigned integer for 32-bit unsigned operands (compiler support for this type is not expected)
-
128-bit signed integer for 32-bit signed or mixed signed/unsigned operands (compiler support for this type is not expected)
-
32-bit single precision float
- Supports the following types on output:
- 4-bit unsigned integer – compiler support for this type is not expected
- 4-bit signed integer – compiler support for this type is not expected
- 8-bit unsigned integer
- 8-bit signed integer
- 16-bit unsigned integer
- 16-bit signed integer
- 32-bit unsigned integer
- 32-bit signed integer
- 64-bit unsigned integer
- 64-bit signed integer
- 128-bit unsigned integer – compiler support for this type is not expected
- 128-bit signed integer – compiler support for this type is not expected
- 32-bit single precision float
Note: DSP1 does not support MMA