Rate This Document
Findability
Accuracy
Completeness
Readability

Introduction

You can use the Development Assistant to create Kunpeng application projects. It supports C and C++. During coding, it automatically queries the function library provided by the Kunpeng Library, as well as highlights and associates those replacement libraries and functions.

Table 1 Functions

Function

Description

Empty project

Creates empty Kunpeng projects in an automatic way and manages existing projects.

General-purpose computing application

Provides SDKs for Kunpeng general-purpose computing. You can create general-purpose computing application projects to facilitate development of basic applications, including acceleration library, hardware acceleration, and homogeneous acceleration framework (HAF) applications.

Secure computing application

Enables you to create GlobalPlatform-compliant secure computing projects and high-level language projects with ease, reconstruct existing Java or Python projects, deploy SDKs, and check the compilation environment.

HPC application

By creating HPC applications based on the Hyper MPI and math libraries, you can extend example projects to improve development efficiency.

DPAK application

Enables you to create a Data Processing & Acceleration Kit (DPAK) project with ease and provides the Kunpeng DPAK SDK. The Kunpeng DPAK provides service offload capabilities for SmartNIC scenarios, including network offload and virtualization offload.

Data I/O application

Constructed based on the Kunpeng Storage Acceleration Library (KSAL) and uses Kunpeng storage acceleration algorithms to improve I/O read performance.

Data compression application

Build an algorithm project using Huawei-developed lossless compression algorithms. The project identifies features of raw data and dynamically matches the optimal compression algorithm model to improve the data reduction rate. In addition, instruction-level optimization is performed for Kunpeng processors to accelerate compression.

Dictionary management

You can import local dictionary files.

Coding assistance

Provides hints and function search for functions in the Kunpeng Library; associates and highlights the tuned functions in the Kunpeng Library during coding.

The Development Assistant supports the following libraries and high-performance open source components.

Table 2 Supported libraries

Category

Name

Description

System library

Glibc-patch

Glibc-patch tunes the memory, string, and lock interfaces based on the microarchitecture of Huawei Kunpeng 920 processors.

Hyperscan

HyperScan uses Kunpeng instructions to accelerate the compilation and scanning of regular expressions based on the advantages of the Kunpeng micro-architecture.

AVX2KI

AVX2KI is an interface collection library that re-implements the intrinsic interface collection on a conventional platform using Kunpeng instructions and encapsulates the intrinsic interface collection as an independent interface module (in C language header file mode) to reduce the workload of repeated development of porting projects.

Compression

Gzip

Gzip uses data prefetch, loop unrolling, and CRC instruction replacement to improve the compression and decompression rates of gzip-1.10 on the Kunpeng platform, especially the compression and decompression of text files.

ZSTD

Zstandard (ZSTD) uses NEON instructions, inline assembly, memory prefetch, adjusted code structure, and optimized instruction pipeline layout to improve the compression and decompression rates of zstd-1.4.4 on the Kunpeng platform.

Snappy

Inline assembly, high-bit instructions, optimized CPU pipeline, and memory prefetch are used to improve the compression and decompression rates of Snappy-1.1.7 on the Kunpeng platform.

KAEZlib

KAEZlib is a compression module of KAE. It uses the Kunpeng hardware acceleration module to implement the Deflate algorithm and works with the lossless user-mode driver framework to provide an interface for high-performance compression in gzip or zlib format.

Encryption and decryption

KAE encryption and decryption

The Kunpeng hardware acceleration module implements the RSA, SM3, SM4, DH, MD5, and AES algorithms, provides high-performance symmetric and asymmetric encryption and decryption based on the lossless user-mode driver framework. It is compatible with OpenSSL 1.1.1a and later versions and supports synchronous and asynchronous mechanisms.

Media

x265

Kunpeng acceleration instructions are used to rebuild the transcoding core code of the x265 open source library. The transcoding performance can be improved on the Kunpeng platform without changing the original interfaces and algorithms. The underlying x265 transcoding operators are optimized using Kunpeng vectorization instructions to improve the transcoding performance in FFmpeg video transcoding scenarios.

HMPP

Kunpeng Hyper Media Performance Primitives (HMPP) provides functions for allocating and releasing vector buffers, vector initialization functions, vector mathematical operation functions, vector statistics operation functions, vector sampling functions, vector conversion functions, filtering functions, and transform (such as fast Fourier transform) functions. It complies with the IEEE 754 (a technical standard for floating-point arithmetic) and can be used on the Kunpeng platform.

x264

x264 is a free video encoding software authorized by GPL. It is mainly used for H.264/MPEG-4 AVC video encoding.

Math library

KML_FFT

KML_FFT is based on the Kunpeng architecture. By using vectorization and improved algorithms, it deeply optimizes FFT and improves the performance of FFT interface functions.

KML_BLAS

Based on the Kunpeng architecture, KML_BLAS performs in-depth mining on the computing efficiency of BLAS by means of vectorization, data prefetch, compilation optimization, and data rearrangement. As a result, the performance of BLAS interface functions approaches the theoretical peak value.

KML_SPBLAS

KML_SPBLAS makes full use of the instruction set and architecture characteristics of Kunpeng, improving the service performance of HPC and big data solutions.

KML_MATH

KML_MATH provides function implementations with higher performance based on Kunpeng processors by reducing periodic functions and improving algorithms.

KML_VML

KML_VML vectorizes input data by using methods such as NEON instruction optimization and inline assembly. It uses the register features in the Kunpeng architecture to improve the performance of Kunpeng processors.

KML_LAPACK

KML_LAPACK optimizes the LAPACK based on the Kunpeng architecture by means of block division, algorithm combination, multithreading, and Basic Linear Algebra Subprograms (BLAS) interface optimization, improving the performance of Kunpeng processors.

KML_SVML

KML_SVML processes input vectors in batches by using methods such as NEON instruction optimization and inline assembly. It makes full use of register features in the Kunpeng architecture to improve performance of Kunpeng servers.

KML_SOLVER

KML_SOLVER (sparse solver library) provides direct solvers and iterative solvers, and supports multiple threads on a single node and multiple MPI processes in a cluster.

Storage

Smart prefetch

Smart prefetch uses high-speed cache drives and efficient prefetch algorithms to improve system storage I/O performance and the overall performance of the solution in storage I/O-intensive scenarios.

SPDK

The Storage Performance Development Kit (SPDK) aims to improve efficiency and performance by using network, processing, and storage technologies. By running software designed for hardware, SPDK has proven capable of millions of I/O reads per second by using multiple processor cores and NVMe drivers for storage, without the need for offload hardware.

ISA-L

Intelligent Storage Acceleration Library (ISA-L) is a collection of highly optimized functions that provide RAID, erasure code (EC), cycle redundancy check, cryptographic hash, and compression.

Network

XPF

Extensible Packet Framework (XPF) is a Huawei-developed library. The XPF function module implements an intelligent offload engine module in the Open vSwitch (OVS) software. This module traces all flow tables and CT tables of data packets in the OVS software. It comprehensively orchestrates the executed CT behaviors and all flow table behavior entries into a comprehensive behavior entry, and generates an integrated flow entry with reference to the unified matching entry.

DPDK

The Data Plane Development Kit (DPDK) is a data-plane development tool set, including library functions and drivers, for efficient data packet processing in the user space.

Table 3 Supported high-performance open source components

Category

Name

Description

HPC

Hyper MPI

Hyper MPI is key to the HPC solution. It implements network communication for parallel computing and is suitable for scenarios such as manufacturing, meteorology, AI, and big data.