Skip to content

intel/qatgo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Go Bindings for Intel® Quick Assist Technology Library

Overview

QATgo provides Go bindings for Intel® QAT user mode libraries

Intel® QuickAssist Technology (Intel® QAT) provides hardware acceleration for offloading security, authentication and compression services from the CPU, thus significantly increasing the performance and efficiency of standard platform solutions.

Features

The following services are available in QATgo v1.1.0:

  • Compression (qatgo/qatzip)
    • DEFLATE gzip and raw (QAT 1.x, 2.0)
    • lz4 (QAT 2.0)
    • zstd (QAT 2.0)
    • Compress and Verify (CnV)
    • Compress and Verify and Recover (CnVnR)
    • End-to-end (E2E) integrity check

Supported Devices

  • C62x (QAT C62x series chipset) QAT 1.x
  • 4xxx (QAT gen 4 devices) QAT 2.0

Supported Environment Variables

These environment variables allow you to modify default configuration options

  • QATGO_ALGORITHM: supports values gzip, lz4, and zstd
  • QATGO_COMPRESSION_LEVEL: Sets the compression level
  • QATGO_ZSTD_LIB_PATH: Loads zstd shared library from the path provided
  • QATGO_QZSTD_LIB_PATH: Loads zstd QAT plugin shared library from the path provided
  • QATGO_DEBUG_LEVEL: adjusts debug output level

Software Requirements

Changelog

  • v1.1.0
    • Fixed Issue #1: Decompressing large file triggers OOM
      • Added MaxBufferLengthOption() to cap maximum buffer size
  • v1.0.1
    • Fixed GTO-158: Close() Error Status not cleared on Reset
    • Implemented GTO-147: Adds environment variable support for modifying defaults
      • Adds the ability to declare the algorithm type and compression level
      • Adds environment variables to provide custom paths to dynamic libraries
    • Implemented GTO-154: Add addition stats for qgzip
      • Added additional statistical output job #, loop #, algorithm, compression level
      • Refactored worker threads to better serialize statistical output
  • v1.0.0
    • First release of QATgo

Release Notes

  • QAT v1.x only supports compression levels 1-8
  • QAT v2.0 supports compression level 1-12
  • QAT produces multisession files
  • Output buffer growth is currently unbounded
  • QAT zstd plugin only supports compression, decompression is done in software (libzstd)
  • QAT zstd compression level > 12 is software only (libzstd)