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.
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. |
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. |
|
By creating HPC applications based on the Hyper MPI and math libraries, you can extend example projects to improve development efficiency. |
|
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.
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 |
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. |
Category |
Name |
Description |
|---|---|---|
HPC |
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. |