Skip to content

Intel QPL v1.2.0

Choose a tag to compare

@mzhukova mzhukova released this 10 Jul 23:40
faaf193

Functionality

  • Partially enabled support of IAA 2.0 for existing functionality, some failures are expected for Huffman Only mode when hardware compression with verification is used.
  • Enabled 1-pass and 2-pass Header Generations on IAA 2.0 for the Dynamic Deflate compression, that reduces latency for smaller sizes.
  • Added Cyclic Redundancy Check (CRC) operation support to the Benchmarks Framework.
  • Fixed a workaround for IAA 1.0 limitation with Big Endian 16 format in Huffman Only.

Usability and Documentation

  • Added Library Architecture Overview diagram to the Introduction page.
  • Extended returned status codes for Completion Record for more accessible issues reporting.
  • Clarified the NUMA* support in the Benchmarks Framework documentation.
  • Updated provided configuration files to always set Block on Fault and removed the Max Batch Size parameter not used on IAA.
  • Updated the GoogleTest* submodule to v.1.13 release. The current QPL test framework is not compatible with previous GoogleTest* versions.
  • Added new examples for multi-chunk compression, including fixed and static blocks.
  • Updated the Installed package structure to comply with the Linux* OS file-system hierarchy.
  • Added a link to the project with Java* bindings for QPL Low-Level C APIs.
  • Clarified in the Documentation that the minimally tested platform is x86-64 CPU with Intel® Streaming SIMD Extensions 4.2 (instead of Intel® Advanced Vector Extensions 2).

Breaking Changes

  • Updated the accel-config/libaccel-config dependency requirement to v4.0.

Bug Fixes

  • Fixed the Compression Ratio calculation in the Benchmarks Framework to eliminate the rounding error.
  • Fixed incorrect CTest* integration when QPL is used as a dependency in another project.
  • Fixed the incorrect Linux* OS identification macro that could lead to build failures on some systems.
  • Fixed build warnings and failures with GCC* 11, 12, 13.
  • Fixed the incorrect Benchmarks Framework reporting of the NUMA* nodes when several nodes are available on a socket.
  • Refactored the host part of the Hardware Path to rely on the platform identification and kernels dispatcher instead of directly calling AVX-512-optimized code.
  • Fixed compatibility with the GZIP* format. Previously, the stream produced by QPL was correct but could trigger a warning due to the incorrect trailer information.

Known Limitations

  • Intel QPL could be built from directly downloadable files (.tar, .tgz) without tests and benchmark frameworks, using the -DQPL_BUILD_TESTS=OFF build option. Since they require submodules that are not included in the archives by GitHub* during release creation.
  • Compression verification on the software path works only with indexing mode and data of size smaller than 32KB in other modes.
  • Inflate does not report the error code QPL_STS_BIG_HEADER_ERR when a header is too big to fit in the input buffer.
  • Known test failures are listed below. Some tests only fails under certain conditions, which are noted in parentheses
    • Functional tests:
      • (sw) ta_c_api_deflat.{dynamic/fixed/static}_{high/default}_verify_stateful_compression
      • (hw) ta_c_api_deflate_canned_indexing.default_level
      • (hw) (async) ta_c_api_deflate_index_extended.PerformOperation
      • (hw) tn_c_api_expand.tn_rle_input_error_handling
  • Dynamic Deflate on IAA 2.0 may show performance regression in throughput benchmarks using the asynchronous path.

Thanks to the Contributors

Release includes contributions from the project team as well as @alexandraepan, @aekoroglu, @yaqi-zhao, @miguelinux.