Intel Is Working On Faster Linux Encryption For AVX2 CPUs, Up To 5.8x Throughput
Intel has published a new set of patches fpr speeding up AES-CBC encryption for processors having the AVX2 instruction set extension.
Tim Chen of Intel published the five new patches for x86 AES-CBC encryption with AVX2 multi-buffer. He explained, "In this patch series, we introduce AES CBC encryption that is parallelized on x86_64 cpu with AVX2. The multi-buffer technique takes advantage of wide AVX2 register and encrypt 8 data streams in parallel with SIMD instructions. Decryption is handled as in the existing AESNI Intel CBC implementation which can already parallelize decryption even for a single data stream."
In terms of the benefits, Chen noted, "By using this technique, we saw a throughput increase of up to 5.8x under optimal conditions when we have fully loaded encryption jobs filling up all the data lanes."
More details on this initial patch series for using the AVX2 multi-buffer for AES-CBC encryption can be found via this patch series. One of the patches add multi-buffer encryption infrastructure support to the Linux kernel's crypto layer, so hopefully other encryption modes will be supported in due time.
Advanced Vector Extensions 2 (AVX2) is supported on Intel CPUs of Haswell and newer. AVX2 is also supported with AMD's Excavator cores and forthcoming Zen cores.
Tim Chen of Intel published the five new patches for x86 AES-CBC encryption with AVX2 multi-buffer. He explained, "In this patch series, we introduce AES CBC encryption that is parallelized on x86_64 cpu with AVX2. The multi-buffer technique takes advantage of wide AVX2 register and encrypt 8 data streams in parallel with SIMD instructions. Decryption is handled as in the existing AESNI Intel CBC implementation which can already parallelize decryption even for a single data stream."
In terms of the benefits, Chen noted, "By using this technique, we saw a throughput increase of up to 5.8x under optimal conditions when we have fully loaded encryption jobs filling up all the data lanes."
More details on this initial patch series for using the AVX2 multi-buffer for AES-CBC encryption can be found via this patch series. One of the patches add multi-buffer encryption infrastructure support to the Linux kernel's crypto layer, so hopefully other encryption modes will be supported in due time.
Advanced Vector Extensions 2 (AVX2) is supported on Intel CPUs of Haswell and newer. AVX2 is also supported with AMD's Excavator cores and forthcoming Zen cores.
8 Comments