Rate This Document
Findability
Accuracy
Completeness
Readability

Introduction

The Kunpeng Accelerator Engine (KAE) is a hardware-based acceleration solution built on Kunpeng processors. It supports encryption, decryption, and decompression. This document describes its functions, installation and test procedures, and use cases.

The KAE encryption and decryption module accelerates Secure Sockets Layer (SSL) and Transport Layer Security (TLS) applications. The KAE decompression modules accelerate data compression and decompression, greatly reducing processor consumption and improving efficiency. In addition, KAE abstracts the internal processing details from the application layer. You can quickly migrate services by using the standard OpenSSL, Tongsuo, BoringSSL, zstd, LZ4, and zlib interfaces.

Software Architecture

Figure 1 shows the KAE software architecture.
Figure 1 Software architecture

Table 1 describes the functions of each module in the software architecture.

Table 1 Functions of each module

Module Name

Function

Accelerator libraries

Application development libraries that integrate encryption, decryption, or decompression algorithms. A library can serve as a bridge between upper-layer applications and hardware accelerators.

UADK

User Space Accelerator Development Kit. It provides a unified API for hardware-based acceleration of cryptographic and compression algorithms.

UACCE

User Space Accelerator. It is a kernel driver framework module that provides a unified driver API for user space.

KAE

Kunpeng Accelerator Engine. It is an acceleration solution based on Kunpeng 920 series processors.

Version Description

KAE is an accelerator developed based on Kunpeng processors. It uses two driver frameworks: Warpdriver (WD) and UADK. It has two code branches for different kernel versions: KAE 1.0 and KAE 2.0. Table 2 describes the differences.

Table 2 Differences between two KAE code branches

Code Branch

KAE 1.0

KAE 2.0

Supported Kernel Version

4.19

5.10

Corresponding KAE Version

1.x.x

2.x.x

Modules Contained in the Source Code

Kernel driver, user-space driver, OpenSSL-based KAE, and zlib library

KAE kernel driver, UADK framework, KAEOpensslEngine, KAEZstd, KAELz4, and KAEZlib