Skip to content

Intel QPL v1.1.0

Compare
Choose a tag to compare
@mzhukova mzhukova released this 22 Feb 17:02
· 371 commits to develop since this release
9f17564

Usability and Documentation

  • Improved examples by setting the execution path based on a command-line argument instead of hardcoding to use the Software Path.
  • If threads sanitizing is enabled (with -DSANITIZE_THREADS=ON) when building Intel QPL, changed CMake version requirement to v3.23 or higher to avoid undefined pthread references.
  • Changed the job structure allocation model so that it depends on the provided execution path. The user may see significant reduction in job structure size when using Hardware Path.
  • Fixed CMakeLists.txt so that starting from this release the QPL project could be easily integrated into other CMake-based projects using find_package.
  • Introduced the -DQPL_BUILD_{TESTS, EXAMPLES} option (set to ON by default). -DQPL_BUILD_TESTS=OFF enables the user to build the library (without testing) from directly downloadable files (.tar, .tgz).
  • Fixed build warnings with -DLOG_HW_INIT=ON.
  • Removed -DBLOCK_ON_FAULT=[OFF|ON] from the documentation since the Block on Fault feature cannot be enabled/disabled through this build option. Users must use accel-config to enable/disable Block on Fault for each work queue.
     

Breaking Changes

  • Changed the loading of the accel-config library from static loading to dynamic loading by default. Added a build option -DDYNAMIC_LOADING_LIBACCEL_CONFIG=[OFF|ON] to switch between dynamic loading and static loading. This build option is set to ON by default for dynamic loading. To compile a QPL application, users must add -ldl with default dynamic loading (or use -laccel-config if Intel QPL is built with -DDYNAMIC_LOADING_LIBACCEL_CONFIG=OFF).

Bug Fixes

  • Fixed gcc 11 build failures caused by missing headers.
  • Fixed a race condition that might occur during hardware initialization. Users with heavy-threaded workloads might have experienced seg. fault or hang starting with QPL v0.3.0; the issue is addressed in this release.

Known issues/limitations

  • Intel QPL could be built from directly downloadable files (.tar, .tgz) only without tests and benchmark frameworks, using the -DQPL_BUILD_TESTS=OFF build option, since they require submodules that are not included to 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 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) (async) ta_c_api_inflate_huffman_only.generated_data
      • (hw) ta_c_api_deflate_canned_indexing.default_level
      • (hw) (async) ta_c_api_deflate_index_extended.PerformOperation
      • (hw) (async) ta_c_api_huffman_only{_verify}.{dynamic/static}_be
      • (hw) tn_c_api_expand.tn_rle_input_error_handling
    • Cross tests:

      • ll_huffman.compress_hw_decompress_sw
      • ll_huffman.compress_sw_decompress_hw_{high/default}_level