AI Engine Intrinsics User Guide  (AIE) v(2024.1)
 All Data Structures Namespaces Functions Variables Typedefs Groups Pages
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 (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.

Note
There are no intrinsics which operate on:
  • uint16
  • uint32
  • [u]int64 vectors.

Modules

 Accumulator Types
 
 Floating Point Vector Types
 
 Integer Vector Types