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 provided with Efficient GZIP SW Solution to accelerate CPU libz.so library which provide seamless Inflate and deflate API level integration to end customer software without recompiling.
- Versal Platform Supports
Vitis Database Library
In 2021.1 release, GQE receives early-access support the following features
- 64-bit join support: now the gqeJoin kernel and its companion gqePart kernel has been extended to 64-bit key and payload, so that larger scale of data can be supported.
- Initial Bloom-filter support: the gqeJoin kernel now ships with a mode in which it executes Bloom-filter probing. This improves efficiency on certain multi-node flows where minimizing data size in early stage is important.
Both features are offered now as L3 pure software APIs, please check corresponding L3 test cases.
Vitis DSP Library
The AI Engine DSP Library contains common parameterizable DSP functions used in many advanced signal processing applications. All functions currently support window interfaces with streaming interface support planned for future releases.
Namespace aliasing can be utilized to shorten instantiations:
namespace dsplib = xf::dsp::aie;
- FIR Filters
The DSPLib contains several variants of Finite Impulse Response (FIR) filters.
|Single rate, asymmetrical||dsplib::fir::sr_asym::fir_sr_asym_graph|
|Single rate, symmetrical||dsplib::fir::sr_sym::fir_sr_sym_graph|
|Interpolation, fractional, asymmetric||dsplib::fir::interpolate_fract_asym:: fir_interpolate_fract_asym_graph|
All FIR filters can be configured for various types of data and coefficients. These types can be int16, int32, or float and also real or complex. Both FIR length and cascade length can also be configured for all FIR variants.
The DSPLib contains one FFT/iFFT solution. This is a single channel, single kernel decimation in time, (DIT), implementation with configurable point size, complex data types, cascade length and FFT/iFFT function.
|Single Channel FFT/iFFT||dsplib::fft::fft_ifft_dit_1ch_graph|
- Matrix Multiply (GeMM)
The DSPLib contains one Matrix Multiply/GEMM (GEneral Matrix Multiply) solution. This supports the Matrix Multiplication of 2 Matrices A and B with configurable input data types resulting in a derived output data type.
|Matrix Mult / GeMM||dsplib::blas::matrix_mult::matrix_mult_graph|
- Widget Utilities
These widgets support converting between window and streams on the input to the DSPLib function and between streams to windows on the output of the DSPLib function where desired and additional widget for converting between real and complex data-types.
|Stream to Window / Window to Stream||dsplib::widget::api_cast::widget_api_cast_graph|
|Real to Complex / Complex to Real||dsplib:widget::real2complex::widget_real2complex_graph|
- AIE DSP in Model Composer
DSP Library functions are supported in Vitis Model Composer, enabling users to easily plug these functions into the Matlab/Simulink environment to ease AI Engine DSP Library evaluation and overall AI Engine ADF graph development.
Vitis Graph Library
The initial release provides a range of algorithms, including:
- Centrality analysis: Page Rank.
- Pathfinding: Single Source Shortest Path.
- Connectivity analysis: Weekly Connected Components and Strongly Connected Components.
- Community Detection: Label Propagation and Triangle Count.
- Search: Breadth First Search.
- Graph Format: Calculate Degree and Format Convert between CSR and CSC.
Vitis HPC Library
Vitis HPC Libraray 2021.1 release introduces HLS primitives, prebuild kernles and software APIs for HPC applications on FPGAs. These applications are:
- 2D Acoustic RTM (Reverse Time Migration) based on FDTD (Finite Difference Time Domain) algorithm, including forward kernel and backward kernel
- 3D Acoustic RTM based on FDTD algorithm, including forward kernel
- MLP (Mult-Layer Perceptron) and its components including common activation functions and fully connected network kernels
- PCG (Preconditioned Conjugate Gradient) solvers for both dense and sparse matrix
Vitis Quantitative Finance Library
This initial release provides engines and primitives for the acceleration of quantitative financial applications on FPGA. It comprises two approaches to pricing:
- A family of Trinomial-Tree based pricing engines for 4 interest rate derivatives (including swaption, swap, cap/floor and callable bond), using 6 short-term interest rate models (including Hull-White, Two-additive-factor gaussian, Vasicek, Cox-Ingersoll-Ross, Extended Cox-Ingersoll-Ross and BlackKarasinski). All of these pricing engines are based on a provided generic Trinomial-Tree Framework.
- 2 Finite-difference method based pricing engines for swaption, using Hull-White model and Two-additive-factor gaussian model. 1 Monte-Carlo based pricing engine for cap/floor, using Hull-White model, based on the Monte-Carlo simulation API we provided in release 0.5.
- 3 close form pricing engine for inflation cap/floor, CPI cap/floor, and discounting bond.
Vitis Security Library
The 2021.1 release provide support for:
- Initial support for BLS (not complete)
Vitis Sparse Library
The 2021.1 release introduces double precision SpMV (Sparse Matrix dense Vector multiplication) implementation with L2 kernels.
Vitis Utilities Library
In the 2021.1 release, Data-Mover was added to this library. Unlike other C++ based APIs, this addition is targeting users less experienced in HLS-based kernel design and primarily want to test their stream-based designs. The Data-Mover is a kernel source code generator, creating a list of common helper kernels to drive or valdiate designs, like those on AIE devices.
Vitis Vision Library
New features and functions
The below functions and pipelines are newly added to the library:
- ISP pipeline and functions
- Updated 2020.2 Non-HDR Pipeline:
- Support to change few of the ISP parameters at runtime: Gain parameters for red and blue channels, AWB enable/disable option, gamma tables for R,G,B, %pixels ignored to compute min&max for awb normalization.
- Gamma Correction and Color Space conversion (RGB2YUYV) made part of the pipeline.
- New 2021.1 HDR Pipeline : 2020.2 Pipeline + HDR support:
- HDR merge: merges the 2 exposures which supports sensors with digital overlap between short exposure frame and long exposure frame.
- Four Bayer patterns supported: RGGB,BGGR,GRBG,GBRG
- HDR merge + isp pipeline with runtime configurations, which returns RGB output.
- Extraction function: HDR extraction function is preprocessing function, which takes single digital overlapped stream as input and returns the 2 output exposure frames(SEF,LEF).
- Updated 2020.2 Non-HDR Pipeline:
- 3DLUT: Provides input-output mapping to control complex color operators, such as hue, saturation, and luminance.
- CLAHE: Contrast Limited Adaptive Histogram Equalization is a method which limits the contrast while performing adaptive histogram equalization so that it does not over amplify the contrast in the near constant regions. This it also reduces the problem of noise amplification.
- Flip: Flips the image along horizontal and vertical line.
- Custom CCA: Custom version of Connected Component Analysis Algorithm for defect detection in fruits. Apart from computing defected portion of fruits , it computes defected-pixels as well as total-fruit-pixels
- Other updates:
- Canny updates: Canny function now supports any image resolution.
- Gamma correction: Gamma function changed.
- AWB optimization: AWB modules optimized.
Library related changes
All tests have been upgraded from using OpenCV 3.4.2 to OpenCV 4.4.0
Added support for vck190 and aws-vu9p-f1 platforms.
A new benchmarking section with benchmarking collateral for selected pipeline/functions published.
Vitis GUI projects on RHEL83 and CEntOS82 may fail because of a lib conflict in the LD_LIBRARY_PATH setting.
Windows OS has path length limitations, kernel names must be smaller than 25 characters.