Skip to content

Releases: Xilinx/Vitis_Libraries

2024.2 Release

19 Nov 16:51
Compare
Choose a tag to compare

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

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

18 Oct 15:14
Compare
Choose a tag to compare

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

06 Aug 13:46
Compare
Choose a tag to compare

Update

  • Vision library updates:
    • Added AIE-ML GMIO examples
    • Fixed ISP Pipeline L1 10 bit issue

2024.1 Release

31 May 15:26
Compare
Choose a tag to compare

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
  • 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

03 Jan 13:26
Compare
Choose a tag to compare

Update:

  • DSP & Solver Library Doc update

2023.2 Release

20 Oct 15:11
Compare
Choose a tag to compare

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, and bgr2yuyv
    • 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
  • 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

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 images
  • lkdensepyroptflow 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

11 Sep 12:40
Compare
Choose a tag to compare

Motor Library update:

  • Additional mode of fixed-angle added for FOC and enhanced timing for more FPGA platforms

2023.1 Release

18 May 05:33
Compare
Choose a tag to compare

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
  • 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).

  • DDS Mixer
  • 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.

  • FFT Window
  • In addition to AIE devices, FFT Window now supports AIE-ML devices (EA).

  • FFT/iFFT
  • In addition to AIE devices, FFT/iFFT now supports AIE-ML devices (EA)..

  • FIR Filters
  • 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 and xfMat2axiStrm functions
  • Lib Infra Changes:
    • Renamed all existing testcases and added new cases in tests directory of L1, L2
    • Replaced xf__config.h with xf__accel_config.h, xf__tb_config.h files which are included in accel.cpp and tb.cpp, respectively
    • All configurable parameters moved to xf_config_params.h
    • In the function directories, under the examples directory, renamed build folder to config
    • Standardized several variable names across
Read more

2022.2 Update 2

31 Jan 05:13
Compare
Choose a tag to compare

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

16 Dec 03:09
Compare
Choose a tag to compare

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