Accumulator Data Types - Accumulator Data Types - 2023.2 English - UG1583

AI Engine-ML Intrinsics User Guide (UG1583)

Document_ID
UG1583
Release_Date
2023-11-16
Version
2023.2 English
AI Engine-ML Intrinsics User Guide  (v2023.2)
Accumulator Data Types

Overview

Accumulator data-types pack multiple scalar data elements into a wider vector. There are vector data-types with standard sized elements (32-bit, 64-bit).

The general naming convention for these data-types is shown below.

    v{NumLanes}[c]acc{SizeofElement}
    v{NumLanes}accfloat

Disambiguation :

  • 'acc' denotes accumulator registers (higher precision than 'int').
  • 'accfloat' denotes single precision floating point values (1b sign, 8b exponent, 23b exponent). (Note : bfloat16 operations use the accfloat format as accumulator registers)
  • 'c' denotes complex

For example, v16acc32, v8acc32, v32accfloat

The total data-width of the accumulator data-types can be 256-bits, 512-bits or 1024-bits.

Note
Accumulator data-types are stored in different sets of registers within the processor core. Large accumulators (>256-bits) occupy more than one physical register. Register spills will reduce performance when more than one large register is 'live'.
Supported accumulator types and sizes
Scalar typeSupported accumulator lanes
acc328/16/32
acc644/8/16
cacc642/4/8
accfloat8/16/32

Modules

 Complex Accumulator Types
 
 Floating-Point Accumulator Types
 
 Integer Accumulator Types