Intel QPL v1.1.0
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 toONby default).-DQPL_BUILD_TESTS=OFFenables 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 useaccel-configto 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 toONby default for dynamic loading. To compile a QPL application, users must add-ldlwith default dynamic loading (or use-laccel-configif 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=OFFbuild 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_ERRwhen 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
-