|
AI Engine-ML Intrinsics User Guide (v2024.2)
|
Loading...
Searching...
No Matches
Vector Data Types
Overview
Vector data-types pack multiple scalar data elements into a wider vector. There are vector data-types with standard sized elements (4-bit, 8-bit, 16-bit, 32-bit).
The general naming convention for these data-types is shown below.
v{NumLanes}[cu]int{SizeofElement}
v{NumLanes}bfloat16
Disambiguation :
- 'int' denotes integer fixed-point registers.
- 'bfloat16' denotes brain-float (1b sign, 8b exponent, 7b mantissa).
- 'accfloat' denotes single precision floating point values (1b sign, 8b exponent, 23b exponent). (Note : bfloat16 operations use the accfloat format as accumulator registers)
- 'u' denotes unsigned
- 'c' denotes complex
For example, v32uint4, v16int8, v8int16, v128int4, v32bfloat16
The total data-width of the vector data-types can be 64-bits, 128-bits, 256-bits, 512-bits, or 1024-bits.
- Note
- Vector data-types are stored in different sets of registers within the processor core. Large vectors (>256-bits) occupy more than one physical register. Register spills will reduce performance when more than one large register is 'live'.
| Scalar type | Supported vector lanes |
|---|---|
| int4/uint4 | 32/64/128/256 |
| int8/uint8 | 16/32/64/128 |
| int16/uint16 | 8/16/32/64 |
| int32/uint32 | 4/8/16/32 |
| cint16 | 2/4/8/16/32 |
| cint32 | 2/4/8/16 |
| bfloat16 | 8/16/32/64 |
| cbfloat16 | 2/4/8/16 |
| float | 4/8/16/32 |
| cfloat | 2/4/8/16 |