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 toON
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 useaccel-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 toON
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
-