硬件需求
qat_hw 需求:第四代 Intel® Xeon® Scalable CPU,Intel® QuickAssist Adapter 系列,Intel Atom® C3000 CPU。
qat_sw 需求:第三代 Intel® Xeon® Scalable CPU*。
*只有Ice Lake-SP系列支持Intel QAT,Cooper Lake不支持。
系统需求
本次编译硬件平台为 Intel Xeon 6348,故使用 qat_sw 进行编译 qat_engine。
Intel® Crypto Multi-buffer library(for Asymmetric PKE) https://github.com/intel/ipp-crypto
Intel® Multi-Buffer crypto for IPsec Library https://github.com/intel/intel-ipsec-mb
OpenSSL 3.0.13(3.0.8+)
cmake >= 3.18
The Netwide Assembler(NASM)>= 2.15
Python >= 3.8.1
autoconf, automake. libtool, pkg-config
操作系统可根据自身而定,本次编译使用 Ubuntu 22.04.4
编译
安装需求件(如系统默认版本低于需求,需要自行编译安装)
sudo apt -y install cmake python3 nasm autoconf automake libtool pkg-config
Github 拉取 QAT 源码
git clone --depth 1 --branch v1.6.0 https://github.com/intel/QAT_Engine.git
Github 拉取 openssl,ipp-crypto, intel-ipsec-mb源码
cd QAT_Engine
git clone --depth 1 --branch openssl-3.0.13 https://github.com/openssl/openssl.git
git clone --depth 1 --branch ipp-crypto_2021_11_1 https://github.com/intel/ipp-crypto.git
git clone --depth 1 --branch v1.5 https://github.com/intel/intel-ipsec-mb.git
编译 openssl 和 qat 引擎(建议最低内存需求4GB并且开启swap,调整swappiness高数值)
./autogen.sh
./configure --enable-qat_sw --with-openssl_install_dir=/usr/local/ssl
make depend
make
make install
编译完成后 openssl 安装在文件夹 /usr/local/ssl,qat 引擎库文件 qatengine.so 在 /usr/local/ssl/lib64/engines-3,ipp-crypto 安装在 /usr/local,intel-ipsec-mb 安装在 /usr
查看 openssl 版本和测试 qat 引擎
/usr/local/ssl/bin/openssl version -a
/usr/local/ssl/bin/openssl engine -t -c -v qatengine
输出结果:
# /usr/local/ssl/bin/openssl version -a
OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)
built on: Tue Apr 9 11:09:35 2024 UTC
platform: linux-x86_64
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
OPENSSLDIR: "/usr/local/ssl/ssl"
ENGINESDIR: "/usr/local/ssl/lib64/engines-3"
MODULESDIR: "/usr/local/ssl/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfffa32035f8bffff:0x5f46f1bf07ab
# /usr/local/ssl/bin/openssl engine -t -c -v qatengine
(qatengine) Reference implementation of QAT crypto engine(qat_sw) v1.6.0
[RSA, id-aes128-GCM, id-aes192-GCM, id-aes256-GCM, X25519, SM2]
[ available ]
ENABLE_EXTERNAL_POLLING, POLL, ENABLE_HEURISTIC_POLLING,
GET_NUM_REQUESTS_IN_FLIGHT, INIT_ENGINE, SW_ALGO_BITMAP
附录:OpenSSL speed 工具测试 RSA 2048 加解密速度
OpenSSL speed 工具
测试QAT引擎加载与否,OpenSSL加解密速度(Intel Xeon 6348 * 2 vCPU)
更多详细内容请参考:https://github.com/intel/QAT_Engine