Vector Data Types - Vector 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)
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, 7b exponent, 8b 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 8-bits, 16-bits, 32-bits, 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'.
Supported vector types and sizes
Scalar typeSupported vector lanes
int4/uint432/64/128/256
int8/uint816/32/64/128
int16/uint168/16/32/64
int32/uint324/8/16/32
cint162/4/8/16/32
cint322/4/8/16
bfloat168/16/32/64
float4/8/16/32
cfloat2/4/8/16

Modules

 Complex Vector Types
 
 Compressed Complex Vector Types
 
 Compressed Floating-Point Vector Types
 
 Compressed Integer Vector Types
 
 Compressed Sparse Vector Types
 
 Floating-Point Vector Types
 
 Integer Vector Types
 
 Sparse Vector Types