Releases: Xilinx/Vitis_Libraries
2024.2 Release
2024.2 Vitis Libraries Release Notes
Vitis Data Compression Library
The Lz4 decompression APIs have been enhanced for improving performance and for eliminating potential issues for extreme corner cases. The newly added API lz4DecompressEngine_NinMout has configurable output-port width and can provide up to 48% throughput improvement.
Vitis DSP Library
The following features have been added to the library in this release.
- AIE-MLv2 - New device support (EA) is being added to DSPLIB
Early Access (EA) support for AIE-MLv2 device is being added to the following library elements:
- Bitonic Sort
- DDS Mixer LUT
- DFT
- FFT
- FFT Window
- Filters
- TDM FIR
- Hadamard
- Kronecker
- Outer Tensor
- Matrix Mult
- Matrix Vector
- Sample Delay
- Config Helper - Console Interface script for configuring DSPLIB IPs
Config Helper works in conjunction with the DSPLIB metadata for helping users build legal configurations and generate resulting graphs for DSPLIB AIE-IPs.
- Bitonic Sort - New library element
Function | Namespace and class name |
---|---|
Bitonic Sort | xf::dsp::aie::bitonic_sort |
This element adds an implementation of the bitonic sorting algorithm.
Supports AIE, AIE-ML, and AIE-MLv2 (EA) devices.
- FFT - New features and optimizations
In this release, a new parameter has been added to the FFT: TT_OUT_DATA. This parameter allows the output data type to differ from the input data type. For example, to allow TT_DATA (input) to be cint16 with `TT_OUT_DATA to be cint32. Also, various optimizations have been implemented to reduce the memory resource used by some configurations of the FFT.
- FFT 2D - New library element
Function | Namespace and class name |
---|---|
fft_ifft_2d_graph | xf::dsp::aie::fft::two_d::fft_ifft_2d_graph |
This configurable design library element implements a 2D FFT/IFFT function, decomposing FFT algorithms into AIE Tiles and MEM Tiles.
Supports AIE-ML devices.
- FIR TDM - New features and optimizations
In this release, various optimizations have been implemented to optimize throughput and/or reduce memory footprint. In addition, new parameters have been added to the FIR TDM: TT_OUT_DATA and TP_CASC_LEN. These parameters enable the following:
-
The output data type can differ from the input data type. For example, to allow TT_DATA (input) to be cint16 with TT_OUT_DATA to be cint32.
-
The FIR workload can be split into multiple kernels connected through the cascade interface, offering increased throughput at the cost of additional resources.
-
Function Approximation - New library element
Function | Namespace and class name |
---|---|
Function Approximation | xf::dsp::aie::func_approx |
This element provides a vectorized linear approximation of a function, f(x), for a given input data, x, using a configured lookup table of slope and offset values that describe the function.
- Mixed Radix FFT - New Features
In this release the dynamic point size has been added to the IP, selected by setting the new parameter TP_DYN_PT_SIZE to 1. This IP now supports cint32 and cfloat for TT_DATA and cint32 for TT_TWIDDLE.
- VSS FFT/IFFT 1CH (AIE + PL) - New library element
In this release a VSS (Vitis Sub-System) FFT/IFFT has been added to the DSPLIB. This configurable design element implements a single-channel DIT FFT/IFFT, decomposing FFT algorithm into AIE Tiles and PL (programmable logic).
Supports AIE and AIE-ML devices.
Vitis Motor Control Library
In the 2024.2 release, 12 new fine-grained function-level APIs are provided for lower-level utilization. These APIs include:
- angle_generation
- Clarke_Direct
- Clarke_Inverse
- demuxer_pi
- ps_iir_filter
- muxer_pi
- Park_Direct
- Park_Inverse
- PI_Control
- PI_Control_stream
- SVPWM
- voltage_modulation
Additionally, the L1/test/IP_FOC functionally becomes a register container module for managing all asynchronous control parameters.
Vitis Vision Library
New Features and Functions
- AIE Additions/Enhancements:
- New Functions:
- Added 2 new AIE-ML functions (PLIO & GMIO) targeting Versal devices: * Resize Bicubic * StereoLBM
- Updates:
- Minor bug fixes
- New Functions:
Known issues
- AMD Vitis™ software platform GUI projects on RHEL83 and CEntOS82 might fail because of a lib conflict in the LD_LIBRARY_PATH setting. For the function to build successfully, you must remove ${env_var:LD_LIBRARY_PATH} from the project environment settings.
- rgbir2bayer, isppipeline_rgbir PL functions are not supplied with input images.
- When URAM is enabled, lkdensepyroptflow fails to meet timing.
2024.1 Update 2
Update
- DSP Library update:
- Update the benchmark CSV files to rename the values of AIE_VARIANT from 1 and 2 to AIE and AIE-ML respectively.
2024.1 Update1
Update
- Vision library updates:
- Added AIE-ML GMIO examples
- Fixed ISP Pipeline L1 10 bit issue
2024.1 Release
2024.1 Vitis Libraries Release Notes
Vitis Blas Library
The example design of L3/benchmarks/gemm/memKernel are deprecated and removed.
The helper function of "xfblasGetByAddress" has been removed, due to deprecate of xrt api of "xclUnmgdPread"
Vitis Data Analytics Library
- The following cases are deprecated and removed.
- L2/tests/knn_sc
- L3/tests/gunzip_csv_sc_test
- L3/tests/re_sc_test
Vitis Data Mover Library
- Known Issue
- A Jinja2 template is used to generate the source code of the data mover. When running on RHEL 9.x, it will fail. This will get fixed in the next release.
- L2/demo/4d_mover_with_handshake, L2/demo/bi_4d_mover_with_handshake, L2/tests/bi_dm_s2mm_mm2s_s2s encountered deadlock issue. This will get fixed in the next release.
Vitis DSP Library
The following features have been added to the library in this release.
- TDM FIR - New library element.
Function | Namespace and class name |
---|---|
TDM FIR | xf::dsp::aie::fir::tdm::fir_tdm_graph |
This element adds an implementation of the Time-Division Multiplexing (TDM) variant of finite impulse response (FIR) filter.
Supports AIE and AIE-ML devices.
- Convolution / Correlation - New library element.
Function | Namespace and class name |
---|---|
Convolution / Correlation | xf::dsp::aie::conv_corr::conv_corr_graph |
This element adds an implementation of the Convolution and Correlation, depending on the specified FUNCT_TYPE template parameter.
Supports AIE and AIE-ML devices.
- Hadamard Product - New library element.
Function | Namespace and class name |
---|---|
Hadamard Product | xf::dsp::aie::hadamard::hadamard_graph |
This element adds an implementation of the Hadamard Product.
Supports AIE and AIE-ML devices.
- Outer Tensor Product - New library element.
Function | Namespace and class name |
---|---|
Outer Tensor Product | xf::dsp::aie::outer_tensor::outer_tensor_graph |
This element adds an implementation of the Outer Tensor Product.
Supports AIE devices.
- Kronecker Matrix Product - New library element.
Function | Namespace and class name |
---|---|
Kronecker Matrix Product | xf::dsp::aie::kronecker::kronecker_graph |
This element adds an implementation of the Kronecker Matrix Product.
Supports AIE devices.
- Example design of FFT on AIE and PL
This element illustrates the implementation of the Fast Fourier transform that spans across the AIE and Programmable Logic.
Supports AIE and AIE-ML devices.
- Matrix-Vector Multiplication
Added support for AIE-ML devices.
Added Super Sample Rate (SSR) feature. Allows the matrix-vector multiplication to be computed using parallel paths for increased throughput.
- Matrix Multiplication
Added Super Sample Rate (SSR) feature. Allows the matrix multiplication to be computed using parallel paths for increased throughput.
- DFT
Added Super Sample Rate (SSR) feature. Allows the Discrete Fourier Transform (DFT) to be computed using parallel paths for increased throughput.
- FFT IFFT
This element now supports cint32 type twiddles for integer data types. This element also now supports a new parameter TP_TWIDDLE_MODE.
- Mixed-Radix FFT
This element now supports AIE-ML devices.
Vitis Graph Library
There are some known issues for this release.
- Louvain Modularity cases meet routing failure when build with 2024.1 tool. Last known working version is 2023.2.
Vitis Solver Library
In this release, one API running on AIE Engine is added
- QRF (QR decomposition), for complex float matrix input (using Householdere transformation method)
Vitis Ultrasound Library
- Known Issue
L3/tests/scanline_AllinAIE interrupted issue with sw_emu target. This will get fixed in the next release.
Vitis Vision Library
New Features and Functions
PL additions/enhancements
- Updates:
- Updated ISP Pipeline example in L1 to support runtime reconfiguration
- Added ISP Mono example in L1
- Updated runtime configurable support to color-correction-matrix function
- Updated bayer-pattern as runtime parameter for demosaicing, gaincontrol functions
- Added green-gain as runtime parameter for gaincontrol function
- Lib Infra Changes:
- Minor fixes to API JSON file
AIE additions/enhancements
- New Functions:
- Added 22 new AIE-ML functions targeting Versal devices:
- AccumulateWeighted
- Blacklevel
- Demosaic
- Denorm_resize
- Denormalize
- Filter2D
- Gain Control
- Hybrid ISP
- Mask Generation
- Mask Generation Tracking
- Normalize
- NMS
- PixelWise Select
- Resize
- Resize Nomalize
- RGBA2GRAY
- RGBA2YUV
- Transpose
- TopK
- Threshold
- YUV2RGBA
- YUY2-Filter2d
- Added 22 new AIE-ML functions targeting Versal devices:
- Updates:
- Minor bug fixes
- Removed AIE1 functions
Known issues
- AMD Vitis™ GUI projects on RHEL83 and CEntOS82 may fail because of a lib conflict in the LD_LIBRARY_PATH setting. You need to remove ${env_var:LD_LIBRARY_PATH} from the project environment settings for the function to build successfully.
- rgbir2bayer, isppipeline_rgbir PL functions are not supplied with input images.
- lkdensepyroptflow fails to meet timing when URAM is enabled.
2023.2 Update 1
Update:
- DSP & Solver Library Doc update
2023.2 Release
2023.2 Vitis Libraries Release Notes
Vitis Data Analytics Library
In this release, there are no major updates.
Known Issues
The following cases fail hardware run with 2023.1 Vitis and XRT. Instead, use 2022.2 Vitis and XRT.
- L2/tests/knn_sc
- L3/tests/gunzip_csv_sc_test
Vitis DSP Library
The below features have been added to the library in this release.
- DFT - new library element
Function | Namespace and class name |
---|---|
DFT | xf::dsp::aie::fft::dtf::dft_graph |
This element adds an implementation of the Discrete Fourier Transform (DFT).
Supports both AIE and AIE-ML devices.
- Mixed-Radix FFT - new library element
Function | Namespace and class name |
---|---|
Mixed Radix FFT | xf::dsp::aie::fft::mixed_radix_fft::mixed_radix_fft_graph |
This element adds an implementation of a s a single-channel, decimation-in-time, fixed point size Fast Fourier Transform (FFT) that includes radix3, radix4 and/or radix5 stages.
Supports AIE devices.
- GeMV - new library element
Function | Namespace and class name |
---|---|
GeMV | xf::dsp::aie::blas::matrix_vector_mul::matrix_mult_graph |
This element adds an implementation of the General Matrix Vector Multiplier(GeMV).
Supports AIE devices.
- Vectorized Sample Delay - new library element
Function | Namespace and class name |
---|---|
Sample Delay | xf::dsp::aie::sample_delay::sample_delay_graph |
This element adds an implementation of a delay filter for introducing delay into a time series.
Supports both AIE and AIE-ML devices.
- FIR Filters
The support for AIE-ML devices has been rolled out to all FIR variants.
- FFT IFFT
Added a performance optimization that will extract some SSR FFT features onto widget kernels and map these kernels in separate tiles, achieving better performance at a high AIE usage cost.
- All Library elements
All libraries now offer selectable saturation mode, as well as rounding modes.
Test harnesses for all library elements have been expanded to allow parameter configuration through .json
files.
Vitis Motor Control Library
The sensor-based FOC IP has been updated by adding a new control mode called MOD_MANUAL_TORQUE_FLUX_FIXED_ANGLE
.
Vitis Quantitative Finance Library
The L3 of this library are deprecated and removed.
If you are still using the L3 of this library, go to the forum for help.
Vitis Solver Library
Added two APIs running on AI Engine:
- Singular value decomposition, for complex float matrix input
- Pseudoinverse, for complex float matrix input
Vitis Ultrasound Library
L1
Contains not only the fine-grained arithmetic kernels, but also the coarse-grained algorithm kernels of scanline. The algorithm kernels have interfaces for both data units and run-time parameters, making it easier to extend functionalities.
L2
Provides two kinds of sub-graphs for sub-algorithm modules and a scanline L2 top-graph. One kind of sub-graph is directly based on L1 arithmetic kernel combination, the other kind is the wrappers of L1 algorithm kernel. The top-graph of scanline can support the end-to-end validation in the L2 level by invoking a C-model of scanline algorithm.
L3
Besides the examples for connected units for 3 beamformer of PW/SA/Scanline, L3 provides an end-to-end scanline project based on L2 scanline top-graph which can be verified on VCK190.
From this release, an algorithm-end to AIE-end implementation of scanline are provided in L2 and L3 with a set of scanline C-model functions. These C-model functions show a step-by-step process for how to start from a natural description of a complex algorithm, to obtaining an AIE-mappable implementation. You can also directly invoke the C-models in any level of AIE projects to generate input and verify output simultaneously and conveniently.
Vitis Utility Library
Data-mover APIs were migrated to the Data Mover library.
Vitis Vision Library
New Features and Functions
PL additions/enhancements
-
Updates:
- Added reference functions for
extractExposureFrames
,autoexposurecorrection_sin
,LTM
, andbgr2yuyv
- Added reference function for all-in-one L3 ISP pipeline
- Fixed border rows issue in Bad Pixel Correction function
- Fixed divide-by-zero condition in GTM
- Improved accuracy of AWB and AEC functions
- Optimized resource utilization of 3DLUT function
- Other minor bug fixes
- Added reference functions for
-
Lib Infra Changes:
- Added L1
api.json
to autofill the function APIs in Vitis HLS GUI - Updated APIs in L2
api.json
- Updated Makefiles of L1 examples and testcases to a new template
- Added L1
AIE additions/enhancements
-
Updates:
- Host code of all AIE1 cases modified to use new graph coding methodology
Known Issues
- Vitis GUI projects on RHEL83 and CEntOS82 may fail because of a lib conflict in the
LD_LIBRARY_PATH
setting. You must remove${env_var:LD_LIBRARY_PATH}
from the project environment settings for the function to build successfully. rgbir2bayer
,isppipeline_rgbir
PL functions are not supplied with input imageslkdensepyroptflow
fails to meet timing when URAM is enabled- AWB, ISPStats output will not match with reference only on VCK190, because of a known XRT issue
2023.1 Update 1
Motor Library update:
- Additional mode of fixed-angle added for FOC and enhanced timing for more FPGA platforms
2023.1 Release
2023.1 Release Notes
Vitis Data Mover Library
In this release, we migrate all data mover design from utils library. Also we add 4D datamover with internal URAM buffer support and tile based descriptor.
Known issues
- We use Jinja2 template to generate source code of data mover. When running on RHEL 9.x, it will fail. We’ll get this fixed in next release.
Vitis Data Analytics Library
Known issues
- Following kernels in L2/tests fail hardware run with 2023.1 Vitis and XRT. Please use 2022.2 Vitis and XRT for it.
- clustering/kmeans
- classification/xGradientBoost
- classification/decisiontree
- regression/linearRegressionSGDTrain
- regression/ridgeRegressionSGDTrain
Vitis DSP Library
The below features have been added to the library in this release.
- DDS Mixer LUT - new library element
- DDS Mixer
- FFT Window
- FFT/iFFT
- FIR Filters
Function | Namespace and class name |
DDS Mixer LUT | xf::dsp::aie::mixer::dds_mixer::dds_mixer_lut_graph |
This element adds a second implementation of a DDS/Mixer that provides higher SFDR figures than the existing DDS/Mixer solution.
Supports both AIE and AIE-ML devices (EA).
To be consistent with other library elements, the usage of Input Window Size parameter (TP_INPUT_WINDOW_VSIZE) has been changed in the DDS and DDS Mixer LUT elements. TP_INPUT_WINDOW_VSIZE describes the number of samples processed by the graph in a single iteration run.
In addition to AIE devices, FFT Window now supports AIE-ML devices (EA).
In addition to AIE devices, FFT/iFFT now supports AIE-ML devices (EA)..
Single Rate FIRs now support AIE-ML devices (EA) with 16-bit data types and 16-bit coeff types, which are listed below:
Data Type | |||
Int16 | Cint16 | ||
Coefficient type | Int16 | Supported | Supported |
Cint16 | note 1 | Supported | |
1. Complex coefficients are not supported for real-only data types. |
All FIR library elements now support AIE devices with 16-bit data types and 32-bit coefficients, which are listed below:
Data Type | |||
Int16 | Cint16 | ||
Coefficient type | Int32 | Supported | Supported |
Cint32 | note 1 | Supported | |
1. Complex coefficients are not supported for real-only data types. |
FIR Resampler now supports Super Sample Rate operation for higher throughput, through polyphase decomposition.
Vitis Quantitative Finacne Library
Known issues
There are some known issues for this release. Please use 2022.2 Vitis for them.
- L2/tests/M76Engine - hw build failure on u250 platform
- L2/tests/PortfolioOptimisation - hw build failure
- L2/tests/MCEuropeanHestonGreeksEngine - hw build failure on u50 and u200 platform
- L2/tests/MCAmericanEngineMultiKernel - hw build failure on u50 platform
- L2/tests/Quadrature - hw build failure on u200 platform
- L2/tests/MCAmericanEngine - hw build failure on u50 platform
The L3 of this library will be soon deprecated and removed. It has the following known issue.
- All L3 APIs will fail when running on Ubuntu Operating System
If you are still using the L3 of this library please reach us through forum for help.
Vitis Motor Control Library
The 2023.1 release covers a range of key algorithms, including the following:
- FOC: TAPI for sensor based field-orientated control (FOC). The eight control modes it supports cover basic speed and torque control modes, as well as field-weakening control.
- SVPWM_DUTY: This API is the front-end for Space Vector Pulse Width Modulation (SVPWM) to calculate ratios.
- PWM_GEN: This API is the back-end for Space Vector Pulse Width Modulation (SVPWM) to generate output signals based on ratios.
- QEI: API for quadrature encoder interface (QEI).
Vitis Solver Library
In this release, we add two API running on AI Engine.
- QRF (QR decomposition), for float / complex float matrix input
- Cholesky decomposition, for complex float matrix input
Vitis Ultrasound Library
- L1, imgrate window port to buffer port for aligning latest aie compiler feature
- L2, refine graph for dimension definition, now it could be inferred from template configuration
- L3, refine L3 graph for including L2 graphs as sub-graph and set the L3 beamformer as top graph
Vitis Utility Library
IThe data-mover APIs are promoted as a new top-level library. They will be removed from this library in future release.
Vitis Vision Library
New features and functions
PL additions/enhancements:
- New functions:
- Added 24 bits-per-channel L3 ISP pipeline
- dded all-in-one L3 ISP pipeline
- classification/decisiontree
- Pin-cushion, Barrel distortion support added in L1, L2 Remap testbench
- Updates:
- Added new functions in ISP-Multistream pipeline
- Added NPPC 2,4,8 support for RGBIR function
- Added URAM support for AWB, AEC, 3DLUT, Otsu-Threshold, HDRMerge, Histogram, Equalization
- Improved performance and utilization for ISP Stats
- Fixed the missing template parameters issue in
axiStrm2xfMat
andxfMat2axiStrm
functions
- Lib Infra Changes:
- Renamed all existing testcases and added new cases in tests directory of L1, L2
- Replaced
xf__config.h
withxf__accel_config.h
,xf__tb_config.h
files which are included inaccel.cpp
andtb.cpp
, respectively - All configurable parameters moved to
xf_config_params.h
- In the function directories, under the
examples
directory, renamedbuild
folder toconfig
- Standardized several variable names across
2022.2 Update 2
Update
- Vision library updates:
- Modified XFCVDEPTH values in all functions
- Stride support added in the preprocess kernel of L3 Defect Detection pipeline
- Order of kernels changed in all-in-one pipeline and renamed as all-in-one-adas
- Array partitions in accel file moved to kernel file in isp multistream pipeline
2022.2 Update 1
Vitis Ultrasound Library Updates:
Vitis Ultrasound library, which targets on the platform Versal AI Core Series VCK190 evaluation board, provides implementation of different L1/L2/L3 APIs as a toolbox for ultrasound image processing. Current version provides:
- L1, the lowest level of abstraction and is composed of simple BLAS operation.
- L2, the functional units of the Beamformer, which can be obtained by composing L1 libraries.
- L3, complete Beamformer which uses all of the three points above and contain run tests for beamforming design of PW/SA/Scanline