AI Engine API User Guide
(AIE) 2022.2
Toggle main menu visibility
Overview
Related Pages
API Reference
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Concepts
Changelog
Table of Contents
Vitis 2022.2
Vitis 2022.1
Vitis 2021.2
Vitis 2022.2
Documentation changes
Add code samples for load_v/store_v and load_unaligned_v/store_unaligned_v
Global AIE API changes
Remove usage of srs in compare functions, to avoid compilation warnings as it is deprecated
Changes to data types
mask: add shift operators
saturation_mode: add saturate value. It was previously named truncate, which is not correct. The old name is also kept until it is deprecated
Changes to operations
add_reduce: add optimized implementation for cfloat on AIE
load_unaligned_v: leverage pointer truncation to 128b done by HW on AIE
fft: add support for radix 3/5 on AIE
mmul: add matrix x vector multiplication modes on AIE
mmul: add support for dynamic accumulator zeroing
to_fixed: provide a default return type
zeros: include fixes on AIE
Vitis 2022.1
Documentation changes
Small documentation fixes for operators
Issues of documentation on msc_square and mmul
Enhance documentation for sliding_mul operations
Change logo in documentation
Add documentation for ADF stream operators
Changes to data types
unaligned_vector_iterator: add new type and helper functions
random_circular_vector_iterator: add new type and helper functions
iterator: add linear iterator type and helper functions for scalar values
vector: add support for dynamic sign in pack/unpack
vector: fixes and optimizations for unaligned_load/store
Changes to operations
adf::buffer_port: add many wrapper iterators
adf::stream: annotate read/write functions with stream resource so they can be scheduled in parallel
adf::stream: add stream operator overloading
print: add support to print accumulators
shuffle_down_replicate: add new function
Vitis 2021.2
Documentation changes
Fix description of sliding_mul_sym_uct
Make return types explicit for better documentation
Fix documentation for sin/cos so that it says that the input must be in radians
Add support for concepts
Add documenttion for missing arguments and fix wrong argument names
Add documentation for the mmul class
Update documentation about supported accumulator sizes
Update the matrix multiplication example to use the new MxKxN scheme and size_A/size_B/size_C
Global AIE API changes
Make all entry points always_inline
Add declaration macros to aie_declaration.hpp so that they can be used in headers parsed by aiecompiler
Changes to data types
Add an argument to vector::grow, to specify where the input vector will be located in the output vector
Remove copy constructor so that the vector type becomes trivial
Remove copy constructor so that the mask type becomes trivial
Make all member functions in circular_index constexpr
Add tiled_mdspan::begin_vector_dim functions that return vector iterators
Make vector methods always_inline
Make vector::push be applied to the object it is called on and return a reference
Changes to operations
bit/or/xor: Implement scalar x vector variants of bit operations
equal/not_equal: Add fix in which not all lanes were being compared for certain vector sizes.
fft: Add alignment checks for x86sim in FFT iterators
fft: Make FFT output interface uniform for radix 2 cint16 upscale version on AIE
filter_even/filter_odd: Functional fixes
filter_even/filter_odd: Performance improvement for 4b/8b/16b implementations
filter_even/filter_odd: Do not require step argument to be a compile-time constant
interleave_zip/interleave_unzip: Improve performance when configuration is a run-time value
interleave_*: Do not require step argument to be a compile-time constant
load_floor_v/load_floor_bytes_v: New functions that floor the pointer to a requested boundary before performing the load.
max_reduce/min_reduce: Add 8b implementation
mmul: Initial support for 4b multiplication
mmul: Add support for 80b accumulation for 16b x 32b / 32b x 16b cases
mmul: Change dimension names from MxNxK to MxKxN
mmul: Add size_A/size_B/size_C data members
sin/cos/sincos: Fix to avoid int -> unsigned conversions that reduce the range
sin/cos/sincos: Use a compile-time division to compute 1/PI
sin/cos/sincos: Fix floating-point range
sin/cos/sincos: Optimized implementation for float vector
shuffle_up/shuffle_down: Elements don't wrap around anymore. Instead, new elements are undefined.
shuffle_up_rotate/shuffle_down_rotate: New variants added for the cases in which elements need to wrap-around
shuffle_up_replicate: Variant added which replicates the first element.
shuffle_up_fill: Variant added which fills new elements with elements from another vector.
shuffle_*: Optimization in shuffle primitives on AIE, especially for 8b/16b cases
sliding_mul: Fixes to handle larger Step values for cfloat variants
sliding_mul_sym: Fixes in start computation for filters with DataStepX > 1
sliding_mul_sym: Add missing int32 x int16 / int16 x int32 type combinations
sliding_mul_sym: Fix two-buffer sliding_mul_sym acc80
sliding_mul_sym: Add support for separate left/right start arguments
store_v: Support pointers annotated with storage attributes
UG1529 © 2022 Advanced Micro Devices, Inc. All rights reserved.