intel / intel/QAT_Engine

QAT Engine performance issues with AES QAT1.5 and Intel Atom C2358

Open
#72 10 comments 0 reactions 1 assignee Claimed by @stevelinsell View on GitHub
Dominant language
C
Stars
443
Forks
137
PR merge metrics
No merged PRs in 30d

Description

Hi,

I have installed QAT1.5 drivers and openssl 1.1.0e using hardware Intel Atom C2358 , and compiled QAT Engine as per steps given on Github , after successful installation of QAT Engine , I tested QAT Engine with RSA2048 and ECDH , both showed a significant increase in throughput, but when I tested for AES , it didn't showed any difference between the software output and using QAT Engine's output.
Initially I thought that AES-NI caused the problem , so I have disabled AES-NI from the BIOS, so now aes-ni modules are not loaded,The Performance has decreased significantly but still there is no difference between the performance of with the engine and without the engine. This happens only in the case of AES. I am unable to figure out where I went wrong or Did I miss something in Configuration.

Kind Regards,
Sudesh

With QAT Engine
[root@localhost src]# /usr/local/ssl/bin/openssl speed -engine qat -elapsed aes-128-cbc
QAT Warnings enabled.
QAT Debug enabled.
id=qat
QAT Engine initialization:
- External polling: OFF
- Inline polling: OFF
- Internal poll interval: 10000ns
- Epoll timeout: 1000ms
- Event driven polling mode: OFF
- Instance for thread: OFF
- Max retry count: 5
DEBUG: qat instance=1
Found 1 Cy instances
Started Instance No: 0
engine "qat" set.
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128 cbc for 3s on 16 size blocks: 6062533 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 64 size blocks: 1696416 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 256 size blocks: 443924 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 1024 size blocks: 208940 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 8192 size blocks: 26340 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 16384 size blocks: 13167 aes-128 cbc's in 3.00s
OpenSSL 1.1.1-pre9-dev xx XXX xxxx
built on: Sat Jun 23 16:30:03 2018 UTC
options:bn(64,32) rc4(8x,mmx) des(long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m32 -Wa,--noexecstack -Wall -O3 -fomit-frame-pointer -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 32333.51k 36190.21k 37881.51k 71318.19k 71925.76k 71909.38k
---- Engine Finishing...

---- Destroying Engine...

QAT Engine with asyn_jobs

/usr/local/ssl/bin/openssl speed -engine qat -async_jobs 128 -elapsed aes-128-cbc
QAT Warnings enabled.
QAT Debug enabled.
id=qat
QAT Engine initialization:
- External polling: OFF
- Inline polling: OFF
- Internal poll interval: 10000ns
- Epoll timeout: 1000ms
- Event driven polling mode: OFF
- Instance for thread: OFF
- Max retry count: 5
DEBUG: qat instance=1
Found 1 Cy instances
Started Instance No: 0
engine "qat" set.
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128 cbc for 3s on 16 size blocks: 6062863 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 64 size blocks: 1696512 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 256 size blocks: 444138 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 1024 size blocks: 208947 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 8192 size blocks: 26339 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 16384 size blocks: 13168 aes-128 cbc's in 3.00s
OpenSSL 1.1.1-pre9-dev xx XXX xxxx
built on: Sat Jun 23 16:30:03 2018 UTC
options:bn(64,32) rc4(8x,mmx) des(long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m32 -Wa,--noexecstack -Wall -O3 -fomit-frame-pointer -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 32335.27k 36192.26k 37899.78k 71320.58k 71923.03k 71914.84k
---- Engine Finishing...

---- Destroying Engine...

Without QAT engine
[root@localhost src]# /usr/local/ssl/bin/openssl speed -elapsed aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128 cbc for 3s on 16 size blocks: 6062703 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 64 size blocks: 1696625 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 256 size blocks: 444132 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 1024 size blocks: 208853 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 8192 size blocks: 26340 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 16384 size blocks: 13167 aes-128 cbc's in 3.00s
OpenSSL 1.1.1-pre9-dev xx XXX xxxx
built on: Sat Jun 23 16:30:03 2018 UTC
options:bn(64,32) rc4(8x,mmx) des(long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m32 -Wa,--noexecstack -Wall -O3 -fomit-frame-pointer -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 32334.42k 36194.67k 37899.26k 71288.49k 71925.76k 71909.38k

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.