![]() |
AI Engine Intrinsics User Guide (AIE) v(2025.1)
|
Vector data-types pack multiple scalar data elements into a wider vector. There are vector data-types with standard sized elements (8-bit, 16-bit, 32-bit, 64-bit), as well as accumulator types with wider element data-width (48-bit, 80-bit) for maintaining higher precision during arithmetic operations. A 48-bit accumulator element can be used to store the result of 16x16 (or 16x8) multiply-accumulate operations, while an 80-bit accumulator element can be used to store the result of 32x32 multiply-accumulate operations, without loss of precision. Furthermore, results from mixed precision computations higher than 16x8, namely, 16x32 and 32x16 can be stored either in a 48-bit or an 80-bit accumulator.
The general naming convention for these data-types is shown below.
v{NumLanes}[c]{[u]int|float|acc}{SizeofElement}
Optional specifications :
For example, v16int8
, v4cint16
, v2int128
, v4cacc48
, v8acc80
, v4float
The total data-width of the vector data-types can be 128-bits, 256-bits, 512-bits, or 1024-bits. The total data-width of the accumulator data-types can be 320/384-bits or 640/768-bits.
Scalar type | Supported vector lanes |
---|---|
int8/uint8 | 16/32/64/128 |
int16/uint16/cint8 | 8/16/32/64 |
int32/uint32/cint16 | 4/8/16/32 |
int64/uint64/cint32 | 2/4/8/16 |
int128/uint128/cint64 | 1/2/4/8 |
cint128 | 1/2/4 |
float | 4/8/16/32 |
cfloat | 2/4/8/16 |
Modules | |
Accumulator Types | |
Floating Point Vector Types | |
Integer Vector Types | |