Releases: Xilinx/Vitis_Libraries
2025.1 Release
2025.1 Vitis Libraries Release Notes
Vitis DSP Library
The following features have been added to the library in this release:
- Bitonic Sort - Added support for Super Sample Rate (SSR).
SSR offers parallel execution which improves performance and allows larger lists to be operated on.
- Convolution / Correlation - Added support for Run Time Programmable (RTP) configuration of vector G length to buffer implementation.
Buffer implementation supports vector G length to be passed during runtime.
- DDS Mixer / DDS Mixer Lut - Added support for Run Time Programmable (RTP) configuration of Phase Increment, and runtime configuration of Phase Offset and Phase Increment using Buffer port.
Both DDS Mixer and DDS Mixer LUT now support iobuffer input for Phase offset and RTP input for Phase Increment in addition to existing input options, allowing flexible configuration from PS or PL.
- Euclidean Distance - New library element.
Function | Namespace and class name |
---|---|
Euclidean Distance | xf::dsp::aie::euclidean_distance |
This element adds an implementation of the euclidean distance (ED) algorithm.
Supports AIE and AIE-ML (EA) devices.
-
FIR TDM - Added support for Run Time Programmable (RTP) configuration of FIR coefficients.
-
Matrix-Vector Multiplication - Added support for:
-
Run Time Programmable (RTP) configuration of matrix A inputs. Input Matrix A can be configured as a buffer (
inA
) or as an RTP port (matrixA
). -
Streaming Interface of vector B inputs. Input
inB
can now be configured as a buffer or a stream port.
-
-
Matrix Multiplication - Introduced a new template parameter
TT_OUT_DATA
to specify the data type of the output. -
FFT - Introduces a new VSS implementation of Super Sample Rate FFTs.
Vitis Motor Control Library
In the 2025.1 release, a new version of PWM (IP_PWM_V2) is provided, which is a new implementation of the PWM generation algorithm. Additionally, IP_VOLTAGE_MODULATION is also updated to support the new PWM generation algorithm.
Vitis Solver Library
In this release, two APIs running on AIE Engine have been added:
- Flexible QRD (QR decomposition), for complex float matrix input (using Householdere transformation method).
- Flexible cholesky decomposition, for complex float matrix input.
Vitis Ultrasound Library
The 2025.1 release added support for the VEK280 AIE-ML device with 20 new L1 APIs and 6 new L2 APIs. These APIs accommodate up to three data types (float, int32, and cint16), tailored to the characteristics of specific algorithms.
Vitis Vision Library
New Features and Functions
- PL additions/enhancements:
- Updates:
- Corrected ISP pipeline API in documentation
- Updates:
- AIE Additions/Enhancements:
- New Functions:
- Added Bicubic-resize function
- 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.2 Update 3
Update
- Added a support section in the top level README.md to point to Adaptive SoC & FPGA Community Forums in preparation for closing the "Issues" GitHub tab. This will ensure better support for users going forward.
2024.2 Update 2
Vitis Vision Library Update
- PL additions/enhancements::
- New Functions:
- Added autogain function
- Created new L3 example of ISP with autogain
- Updates:
- Added NPC2 support for Remap function
- Corrected preprocess API in documentation
- Updated output format of initUndistoredRectifyMapInverse to 32SC1 (fixed point). Updated L3 stereopipeline example accordingly.
- New Functions:
- AIE Additions/Enhancements:
- New Functions:
- Added NV12-resize function
- Updates:
- Added g-gain parameter in gain correction. Updated Hybrid-ISP in L3 accordingly.
- Added yuy2-filter2d GMIO testcase
- Fixed TopK hang issue
- Updated computeMetadata function in GMIO datamovers
- Minor bug fixes
- New Functions:
Known issues
- 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
andisppipeline_rgbir
PL functions are not supplied with input images.lkdensepyroptflow
fails to meet timing when URAM is enabled.
2024.2 Update 1
Update
- DSP Library update:
- Performance optimization for FIR TDM. Improved efficiency for handling maximum permitted values of SSR parameter for a given number of TDM channels on AIE devices.
- Ultrasound Library update:
- Update the tool and platform version in some of the READMEs, Makefiles and scripts
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