Skip to content

Releases: Xilinx/Vitis_Libraries

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

2022.2 Release

24 Oct 11:57
Compare
Choose a tag to compare

2022.2 Release Notes

Vitis Database Library

Added GQE implementation support for Alveo U55C cards.

Vitis Data Analytics Library

Added the following API:

  • String LIKE: API returns true if the string matches the supplied pattern, similar to string find in C++. The NOT LIKE expression returns false if LIKE returns true.
  • String EQUAL: API returns true if the string completely matches with the base string, similar to string compare in C++. The NOT EQUAL expression returns false if EQUAL returns true.
  • JSONLine Loader: API is enhanced to support more general data type, including nested field and list.

Vitis DSP Library

The following features have been added to the DSP library:

  • FFT Window: New library element. FFT Window is a utility to apply a windowing (scaling) function such as Hamming to a frame of data samples.
  • FFT/iFFT: FFT Dynamic Point Size (run-time point size determination) is now supported with parallelized configurations.
  • FIR Filters: All FIR library elements (with the exception of FIR Resampler) now support Super Sample Rate operation for higher throughput. To minimize latency, Super Sample Rate operation is implemented using streaming interfaces. In addition, usage of Input Window Size (TP_INPUT_WINDOW_VSIZE) parameter has been consolidated across library. TP_INPUT_WINDOW_VSIZE describes the number of samples processed by the graph in a single iteration run. Reloadable coefficients within the Super Sample Rate configurations are now supported on all FIR variants that support SSR operation.

Vitis Security Library

Added support for:

  • Poseidon Hash function -ECDSA NIST-P384

Vitis Solver Library

Added support for two API on AI Engine:

  • QRF (QR decomposition)
  • Cholesky decomposition

Vitis Utility Library

Added support for 4D datamover on AI Engine. 4D Datamover takes a queue of 9x64bits descriptors as input to describe a 4D access pattern. It reads the 4D cuboid with the desired pattern and finishes descriptors one by one.

  • read4D
  • write4D

Vitis Vision Library

PL Additions and Updates:

  • New functions:
    • HDR Decompanding: Compress(compand) data in a piece-wise linear (PWL) mapping to a lower bit depth
    • Degamma: Designed to linearize the input from sensor or any pre-processing IP
    • ISPStats: collects histogram based stats of bayer and color images
    • ISP all-in-one pipeline: All the ISP related functions stitched in one pipeline with option to exclude unwanted functions during runtime and compile time.
    • Multi-stream ISP: Multiple input stream ISP pipeline
  • Updates:
    • Added new template parameter XFCVDEPTH for xf::cv::Mat class that can be used to assign custom depth to the Mat’s internal hls::stream.
    • All APIs in the library updated with newly added XFCVDEPTH parameter for xf::cv::Mat
    • Remove deprecated SDSVHLS macro from all files
    • Replaced deprecated RESOURCE pragma with BIND_STORAGE/BIND_OP pragmas
    • Rename NO, RO in all files to SPC (Single Pixel per Clock) and MPC (Multiple Pixels per Clock)
    • Add missing reference functions in L1, L2, L3 testbench files
    • Fixed Gaussian Difference incorrect implementation
    • Fixed incorrect dst Mat assignment in xf::cv::Mat member function convertBitdepth
    • Updated analyzeDiff in L1/include/common/xf_sw_utils.hpp to a static function
    • Added missing “Test Passed/Failed/Finished” check in all L1/L2/L3 functions.
    • Added 16 bit and 4 channel support, corrected B and R channel swap issue for channel extract function.
    • Fixed a bug in BGR2HLS module of cvtcolor function
    • Restructured L1 channel combine accel and testbench code
    • Fixed SVM emulation and cosim hang issue
    • Updated loop tripcounts of pyrDown, histogram, HDR extract, rgb2yuyv module in cvtColor to fix synthesis latency numbers
    • Fixed array reshape pragma in xf_sobel.hpp, xf_video_mem.hpp files
  • Lib Infra Changes:
    • Added frequency setting in L2/L3 JSON files. 300 MHz for NPPC1 and 150MHz for NPPC8 for most cases.
    • Updated JSON and Makefiles to use ps_on_x86 feature for software emulation targeting embedded platforms. Software emulation for embedded platforms no longer uses qemu—only the regular g++ compilation flow.
    • Added missing environment checks in all JSON and Makefiles.

AI Engine Additions and Updates:

  • New functions:
    • Resize / Resize + Normalize
    • Smart tiling for x86 64-bit platforms
  • Updates:
    • RTL Data movers
      • 8-bit PL / 8-bit AIE data movers
      • Multi-channel support
      • Optimized implementation
    • Optimized smart tiling / stitching for higher performance
    • Fix Random crashes in hardware emulation flow
    • Miscellaneous bug fixes

Known issues

  • Vitis GUI projects on RHEL83 and CEntOS82 may fail because of a lib conflict in the LD_LIBRARY_PATH setting. User needs 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.
  • Software emulation for Warptransform L2 testcases doesn’t work because of a known issue with platform.
  • Warptransform L1 URAM cases fail CSim because of a known HLS issue.