Skip to content

Intel QPL v1.8.0

Latest

Choose a tag to compare

@kiselik kiselik released this 25 Jun 10:40
· 23 commits to develop since this release
7cf5239

Functionality

  • Added timeout for synchronous wait in case of hardware disconnect. QPL build will also try to autodetect and use target wait-package if available and auto dispatch its use.
  • Added the --sync_api option to the Benchmarks Framework, allowing the use of the qpl_execute_job API for performance measurements. This is helpful for measuring latency. Without this option, the framework uses a combination of qpl_submit_job and qpl_wait_job APIs.
  • Experimental logging of IAA execution time is now available in the Benchmarks Framework. To use this feature, build QPL with -DQPL_EXPERIMENTAL_LOG_IAA=ON. This registers timestamps before accelerator submission and after IAA execution, excluding pre- and post-processing overhead. Note: This feature works only in synchronous mode for operations with a single descriptor submission (e.g., Dynamic compression is not supported). To view the percentage of time spent on the accelerator, run the Benchmarks Framework with the --sync_api and --accel_time options.
  • Added get_max_transfer_size function to hw_dispatcher to handle 2MB limitation on idxd driver size.

Usability and Documentation

  • Updated requirements.txt to the latest compatible tools required for building Intel(R) QPL documentation locally.
  • Updated the GoogleTest* submodule to v1.17.0 release. The current QPL test framework is not compatible with previous GoogleTest* versions.
  • Removed Universally Unique ID library 'uuid' from QPL dependency list.
  • Published the Code Of Conduct.
  • Extended clang-tidy configuration file by QPL headers and refactored it correspondently.
  • Extended fuzzy testing by acceleration path functionality.
  • Expanded bad argument and unit testing for the qpl_get_safe_deflate_compression_buffer_size and for the qpl_{deflate, huffman_only}_table_create functions.

Deprecated Functionality

  • Deprecated the sanitizer build options -DSANITIZE_MEMORY and -DSANITTIZE_THREAD. Instead, use -DQPL_USE_CLANG_SANITIZER=[ADDRESS|LEAK|UNDEFINED|THREAD|ALL_COMPATIBLE] to enable sanitizers. This change aligns with Clang sanitizer build options. See the Build Options for more details.

Bug Fixes

  • Fixed an integer overflow issue in the qpl_get_safe_deflate_compression_buffer_size function. Previously, for sizes close to UINT32_MAX, users could receive a negative value.
  • The behavior of QPL dispatcher was changed under Windows - instead of automatic changing qpl_path_hardware to qpl_path_software in qpl_init_job function(accelerator offload is not supported under Windows), accelerator support error is now returning.

Known Limitations

  • Intel(R) QPL could be built from directly downloadable files (.tar, .tgz) without tests and benchmark frameworks, using the -DQPL_BUILD_TESTS=OFF build option. This is because it requires submodules that are not included in the archives by GitHub* during release creation.
  • Known test failures are listed below. Some tests fail only under certain conditions, which are noted in parentheses.
    • Functional tests:
      • (software_path, auto_path only on platforms without IAA) ta_c_api_deflate_stateful.{dynamic/fixed/static}_default_verify
      • (software_path, auto_path) ta_c_api_deflate_stateful.{dynamic/fixed/static}_high_verify
  • Compression verification on the qpl_path_software 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.
  • The implementation of QPL_FLAG_CRC32C is in progress.
  • When using qpl_path_hardware, the compression and decompression with indexing mode on IAA 2.0 are limited to data sizes smaller than 4KB.
  • The Force Array Output Modification feature is enabled only for qpl_path_hardware and Intel IAA 2.0 (and later). In the case of qpl_path_auto, an error code QPL_STS_NOT_SUPPORTED is returned as no fallback is available currently.

Thanks to the Contributors

The release includes contributions from the project team.