|
AI Engine-ML Intrinsics User Guide (v2024.2)
|
Loading...
Searching...
No Matches
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'.
| Scalar type | Supported accumulator lanes | Number of accumulator lanes for ADF cascade stream API |
|---|---|---|
| acc32 | 8/16/32 | 16/32 |
| acc64 | 4/8/16 | 8/16 |
| cacc64 | 2/4/8 | 4/8 |
| caccfloat | 4/8/16 | 8 |
| accfloat | 8/16/32 | 16 |
Modules | |
| Complex Accumulator Types | |
| Floating-Point Accumulator Types | |
| Integer Accumulator Types | |