Skip to content

Releases: Xilinx/Vitis_Libraries

2022.1 Release

27 Apr 07:11

Choose a tag to compare

2022.1 Release Notes

Vitis Codec Library

Codec Library is an open-sourced library written in C/C++ for accelerating image coding, decoding and related processing algorithms. It now covers a level of acceleration: the module level(L1) and the pre-defined kernel level(L2).

The 2022.1 release provides a range of algorithms, including:

  • JPEG decoding: one L2 API is provided for accelerating entire JPEG decoding process, which supports the ‘Sequential DCT-based mode’ of ISO/IEC 10918-1 standard. It can process 1 Huffman token and create up to 8 DCT coefficients within one cycle. It is also an easy-to-use decoder as it can directly parse the JPEG file header without help of software functions. In addition, L1 API is provided for Huffman decoding.

Vitis Database Library

  • Merge partition / bloomfilter / join into single kernel make three operators shares resource on FPGA. Although such kernel could only performance one of the three operators at the same time, it will take much less resource than 3 stand alone kernels. With such design, it will help eliminate the time cost to switch xclbins for different operators. Also such design will enable pipelined execution of kernels and reduce DMA workload. This design targets for U50. U50 costs less and still retains HBM.
  • Key-Value store offloading introduce a new kernel for accelerate K-V compaction operation in log-structure merge tree database.

Vitis Data Analytics Library

  • csv scanner: Used to accelerate the extract, transform and load process. It integrates GZIP decompression, CSV parser, filter module together to make them work in parallel. ETL accelerator could work together with database to run queries on large size of semi-structured and unstructured data.
  • Geospatial APIs: Two major APIs in this family have been included: the Spatial Join and KNN. The former API inserts the columns from one feature table to another based on location or proximity, while the latter is often used to find the K nearest neighbors around the center point. They are both vital for spatial analysis and spatial data mining.

There are some known issues for this release.

  • Log Analyer in L2 demo fails hardware build with 2022.1 Vitis. Please use 2021.2 Vitis for it.

Vitis Data Compression Library

  • ZLIB Compression Improvement:
    • Reduced TreeGen Initial Interval < 1K to reduce overall resource utilization for 8KB octa core compression.>
    • Customized Octa-Core compression for 8KB solution ( Reduced Booster Window 8KB).
    • Static IP customized.
    • Improved Compression IP Timing for Versal and achieved > 250MHz.
    • Provided Memory Mapped GZIP File Decompression.
  • ZLIB Decompression Improvement:
    • Added ADL32 and provided uncompressed size in TUSER.
    • Provided Quad-Core Decompress solution for 32KB and 8KB file size to achieve 4x throughput (upto 2GB/s).

Vitis DSP Library

  • DDS / Mixer: The DDS/ Mixer library element now has extended type support. It now supports cfloat and cint32 for TT_DATA when configured as a mixer. When configured as a DDS, cfloat is now supported for TT_DATA. Additionally, the DDS/Mixer now supports Super Sample Rate operation for higher throughput.
  • FFT/iFFT: FFT point size support has been extended to 65536. Performance has been improved approximately 10% for cases using PARALLEL_POWER>1 which were previously supported.
  • FIR Filters: All FIR library elements now support streaming interfaces as well as window interfaces. The single rate asymmetric FIR variant now support Super Sample Rate operation for higher throughput. The FIR resampler library element has been added which performs fractional decimation. This supersedes the existing FIR interpolate fractional library unit. All FIR variants now support a larger maximum value for FIR_LEN, up to 8k depending on variant, data/coefficient type and API choice.

Vitis Genomics Library

Three new Genomics accelerators have been added:

  • Smithwaterman Algorithm Created Smithwaterman Algorithm to provide high throughput than existing benchmark solution.
  • PairHMM Algorithm Created PairHMM Algorithm to achieve architectural maximum performance.
  • SMEM Algorithm Created SMEM Algorithm to achieve the required DRAM bandwidth overcoming the latency.

Vitis Graph Library

  • Added the new algorithm Maximal Independent Set.
  • Enhanced Louvain Modularity. L2 Louvain Modularity is able to support large-scale graphs.
  • Added a L3 API to divide huge graphs into multiple parts and add other data structures to support the Louvain Modularity on these parts.

Vitis Solver Library

In this relese, the following legacy API from Vivado_HLS were migrated to solver library. They are all hls::stream based API that support std::complex type.

  • Cholesky
  • Cholesky Inverse
  • QR Inverse
  • QRF (QR decomposition)
  • SVD

Vitis Vision Library

New features and functions

The below functions and pipelines are newly added into the library.

PL additions/enhancements:

  • New functions:
    Rotate
    TV-L1 optical flow
    Multi-stream ISP (basic) support
  • Updates
    Added Demosaicing kernel (xf_demosaicing_rt.hpp) having the input Bayer pattern as run time parameter.
  • Lib Infra Changes
    Added API JSON for L2 which helps in usage of a given function’s API in the Vitis GUI
  • AIE additions/enhancements:

    • Updates:
      Introduced RTL Data-movers with improved latency over HLS data-movers
      All tests updated with RTL data-movers

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.
  • SVM L2 PL function fails hardware emulation with 2022.1 Vitis. Use 2021.1 Vitis for this function.
  • 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.
  • Hardware emulation in AIE testcases may throw segmentation fault at the end, although completing the functional test successfully.

2021.2 Update 2

17 Apr 01:06

Choose a tag to compare

Library Updates

  1. Release Vitis Genomics Library(genomics)

2021.2 Update 1

23 Dec 17:27

Choose a tag to compare

Library Updates

  • Codec
    • add OrderTokenize L1 API
  • Compression
    • gzip update
  • Data Analytics
    • add JSON parser L1 API
  • DSP
    • change 4 PL L1 APIs' interface from memory buffer to stream, and doc update
  • Graph
    • add Louvain API, including L2 and 2 L3 functions
  • Solver
    • add QRF L1 API

v2021.2 Release

03 Nov 17:00

Choose a tag to compare

v2021.2 Release Notes


Vitis Data Analytics Library

The 2021.2 release provides CSV Parser:

  • CSV Parser parses comma-seperated value files and generates object stream, which are easily connected with DataFrame APIs. CSV is a common used storage format in Date Lake. CSV parser can accelerate the data extraction process.

Vitis Data Compression Library

  • ZSTD Quad-Core Compression
    Created ZSTD Multi-Core architecture to provide high throughput for single file compression. Using Zstd Quad core solution, user can get throughput > 1 GB/s.
  • Zstd Decompress Improvement
    ZSTD Decompress optimized in this release. Overall resource is reduced to 19.6K and achieve 20% higher throughput compare to previous release.
  • GZIP Decompress Improvement
    Re-architected GZIP Decompress cores to reduce resource to 6.9K and better throughput compare to previous release. With this new latency overall IP latency is also reduced to ~1.5K cycle. Provided ZLIB decompression containing ADLR32 Checksum to catch any error in input file. Added functionality to provide uncompressed size in output stream port TUSER (incase end application needs to know uncompressed size).
  • GZIP Compression Improvement
    • Created various ZLIB/GZIP Octa-Core Compression Kernels for different block sizes (8KB, 16KB, 32KB) and achieved > 2GB/s throughput for all variants. Updated IP core to provided compressed size in output axis stream TUSER port (incase any application needs compressed size).
    • Huffman TreeGen latency is reduced significantly < 1K, as a result, for multi-core architectures (Octa-core), a single Treegen is required. This reduce the resource requirement signficantly down for 8KB and 16KB blocksize compression core compare to previous release solution.
    • Compression ratio is improved from 2.67 to 2.7 for Silesia Fileset for 32KB bloksize.
  • Snappy/LZ4 Decompress Improvement
    Optimized Snappy and LZ4 Decompress throughput.

Vitis Database Library

In 2021.2 release, GQE starts to support asynchronous input / output feature, along with multi-card support.

  • Asynchronous input / output: use std::future<size_t> to notify GQE L3 readiness of each input sections, and its value is the effective row number of the input section. It will use std::promise<size_t> to notify the caller of GQE L3 the readiness of each section of the final result, and its value is the effective row number of output section. Asynchronous support will allow the FPGA start to process as soon as part of the input data is ready. In such way, FPGA won’t wait until all input data is ready and shrink the overhead to prepare data for FPGA.
  • Multi-Cards support: allows to identify multiple Alveo cards that suitable for working. It will load the same xclbins for these cards and called them when there’s more task than 1 cards could handle at the same time. The data structure will also keep pinned host buffer and device buffer alive before they’re explicitly released. This will help save the time to load xclbins / create pinned buffer / create device buffer.

Vitis DSP Library

The below features have been added to the library in this release.

  • DDS / Mixer - new library element
Function Namespace and class name
DDS / Mixer xf::dsp::aie::mixer::dds_mixer

This component may be configured to one of three modes. The first mode is a DDS only. The second mode is a single channel mixer. The third mode is a symmetrical mixer, taking two input channels and mixing each with the DDS output and the conjugate of DDS output respectively, combining the result to one output channel. DDS/Mixer supports window input/output interface, as well as streaming interface.

  • FIR Filters

Single rate FIRs now support streaming interfaces as well as to window interfaces.

  • FFT/iFFT

FFT now supports streaming interfaces as well as to window interfaces. In addition, FFT now offers improved performance and greater point size support with parallelization.

Vitis Graph Library

The algorithms implemented by Vitis Graph Library include:

  • Similarity analysis: Cosine Similarity, Jaccard Similarity, k-nearest neighbor. From 2021.2, the ‘weight’ feature is supported for Cosin Similarity.
  • Centrality analysis: PageRank.
  • Pathfinding: Single Source Shortest Path (SSSP), Multi-Sources Shortest Path (MSSP).
  • Connectivity analysis: Weekly Connected Components and Strongly Connected Components.
  • Community Detection: Louvain Modularity, Label Propagation and Triangle Count.
  • Search: Breadth First Search, 2-Hop Search
  • Graph Format: Renumber(2021.2), Calculate Degree and Format Convert between CSR and CSC.

Vitis Security Library

The 2021.2 release provides support for:

  • KECCAK-256
  • CRC32C

Vitis Utilities Library

Adds two Data-Mover implementations for debugging hw issues:

  • LoadDdrToStreamWithCounter: For loading data from PL’s DDR to AIE through AXI stream and recording the data count sending to AIE.
  • StoreStreamToMasterWithCounter: For receiving data from AIE through AXI stream and saving them to PL’s DDR, as well as recording the data count sending to DDR.

Vitis Vision Library

New features and functions

The below functions and pipelines are newly added to the library:

Versal AI Engine additions :

  • blobFromImage
    Function used in many ML pre-processing tasks to do normalization and other tasks.
  • Back to back filter2D with batch size three support
    Application showcasing increasing throughput of single filter2D kernel, by doing 3, back-2-back filter2D achieving 555 FPS with PL datamovers.

New Programmable Logic (PL) functions and features:

  • ISP pipeline and functions:
    • End to End Mono Image Processing (ISP) pipeline with CLAHE TMO
      Useful for ISP pipelines with monochrome sensors
    • RGB-IR along-with RGB-IR Image Processing (ISP) pipeline
      Useful for ISP pipelines with IR sensors
    • Global Tone Mapping (GTM) along with an ISP pipeline using GTM
      Adding to growing TMO (tone-mapping-operators) in the library for different quality and area tradeoff purposes: CLAHE, Local Tone Mapping, Quantization and Dithering

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.

2021.1 Release

13 Aug 20:18

Choose a tag to compare

v2021.1 Release Notes


Vitis BLAS Library

The 2021.1 release introduces L2 kernels for GEMM and GEMV. It also introduces L3 APIs based on the XRT (Xilinx Runtime library) Native APIs.

Vitis Codec Library

This initial release provides a range of algorithms including:

  • JPEG Decoder: “JPEG” stands for Joint Photographic Experts Group, the name of the committee that created the JPEG standard and also other still picture coding standards.
  • JPEG-XL: JPEG XL is a raster-graphics file format that supports both lossy and lossless compression. It is designed to outperform existing raster formats and thus to become their universal replacement.

Vitis Data Analytics Library

The 2021.1 release provide Two-Gram text analytics:

  • Two Gram Predicate (TGP) is a search of the inverted index with a term of 2 characters. For a dataset that established an inverted index, it can find the matching id in each record in the inverted index.

Vitis Data Compression Library

  • GZIP Multi Core Compression
    New GZIP Multi-Core Compress Streaming Accelerator which is purely stream only solution (free running kernel), it comes with many variant of different block size support of 4KB, 8KB, 16KB and 32KB.
  • Facebook ZSTD Compression Core
    New Facebook ZSTD Single Core Compression accelerator with block size 32KB. Multi-cores ZSTD compression is in progress (for higher throughput).
  • GZIP Low Latency Decompression
    A new version of GZIP decompress with improved latency for each block, lesser resources (35% lower LUT, 83% lower BRAM) and improved FMax.
  • ZLIB Whole Application Acceleration using U50
    L3 GZIP solution for U50 Platform, containing 6 Compression core to saturate full PCIe bandwidth. It is pr...
Read more

2020.2 Update 1

10 Mar 22:38

Choose a tag to compare

Vitis Vision Updates

  1. Axiconv L1 function cosim fix
  2. Xcl2.cpp update to fix a runtime error being seen in Ubuntu OS
  3. Documentation update to include the subminor version of OpenCV (3.4 -> 3.4.2)
  4. Readme update

2020.2 Release

14 Dec 18:56

Choose a tag to compare

2020.1 Update 1

18 Sep 00:18

Choose a tag to compare

Merge pull request #140 from RepoOps/xf_compression-20200915-223349

Vitis Compression Library Update,

2020.1 Release

18 Jun 23:18
208ada1

Choose a tag to compare

2019.2 RC1 release

18 Jun 23:05

Choose a tag to compare