Introduction and Components
HPCKit integrates components such as Kunpeng Math Library (KML), Hyper MPI (HMPI), Kunpeng Unified Parallel Library (KUPL), Hyper IO (HIO), and domain-specific acceleration libraries to boost the performance of high-performance computing software. This reduces the time required to integrate and install performance components, thereby enhancing installation efficiency.
Domain-specific acceleration libraries are libraries deeply optimized for the Kunpeng platform, targeting specific high-performance computing scenarios such as computational lithography, quantum chromodynamics (QCD), oil exploration, and AI. By leveraging the architectural features of Kunpeng processors, they significantly enhance application efficiency through instruction-level optimizations, algorithmic restructuring, and parallel acceleration.
Table 1 lists the components integrated in HPCKit.
Component |
Description |
Installed by Default |
|---|---|---|
KUPL |
KUPL provides foundational parallel acceleration functions optimized for the Kunpeng platform, with all APIs implemented in C/C++ and assembly. |
Yes |
KML |
KML provides high-performance mathematical functions optimized for the Kunpeng platform. All APIs are implemented in C/C++ and assembly, with support for Fortran calls and Java wrappers for specific APIs. HPCKit features complete adaptation layers for libraries including LAPACK, ScaLAPACK, and FFTW. |
Yes |
HMPI |
HMPI implements network communication for parallel computing, supporting application scenarios such as manufacturing, meteorology, and molecular dynamics. HPCKit features a complete MPI communication library. |
Yes |
Hyper IO |
Hyper IO connects system software with applications by providing scientific data format definitions and file operations. It is widely used across high-performance computing applications and various post-processing, visualization, and analysis frameworks. |
Yes |
KuLitho |
KuLitho is a computational lithography acceleration library deeply optimized for the Kunpeng platform. Implemented in C/C++ and assembly, it features instruction-level optimizations for core functions such as image processing, graphics operations, and mathematical routines. KuLitho significantly boosts end-to-end simulation performance for scenarios like optical proximity correction (OPC), providing high-performance domain-specific acceleration for the EDA industry. |
No |
KuQCD |
KuQCD is a lattice QCD (LQCD) acceleration library based on the Kunpeng platform. Implemented in C/C++, it is optimized for core functions such as solvers and provides corresponding APIs for integration into applications. Currently, KuQCD can be used only on the Kunpeng 920 new model. It depends on KUPL and supports BiSheng Compiler and GCC. |
Yes |
KuRTM |
KuRTM is an exploration acceleration library based on the Kunpeng platform, implemented in C. It leverages the matrix and vectorization capabilities of the Kunpeng 920 new model to optimize 1D, 2D, and 3D stencil operators. Currently, KuRTM can be used only on the Kunpeng 920 new model. It supports BiSheng Compiler and GCC. |
No |
KuDNN |
KuDNN is a deep neural network operator library based on the Kunpeng platform. It optimizes AI operator performance by combining Kunpeng CPU microarchitecture features with software-based optimization techniques. It is integrated into AI frameworks, such as PyTorch, as a plugin. |
Yes |
KuTACC |
KuTACC is a fused operator library for Transformer models based on the Kunpeng platform. Implemented in C/C++, it optimizes the core operators across various AI layers and provides dedicated APIs for direct application calls, delivering high-performance computing support for AI applications. Currently, KuTACC is built using BiSheng Compiler and the libstdc++ standard library. It does not support GCC. |
Yes |
BiSheng Compiler |
BiSheng Compiler is a high-performance, trusted, and scalable compiler toolchain. Designed by the Huawei Compiler Laboratory for general-purpose Kunpeng processor architectures, it introduces and enhances multiple compilation optimization technologies. |
Yes |
GCC for openEuler |
GCC for openEuler is a compiler toolchain (including the compiler, assembler, and linker) developed based on the open-source GCC. It is released in the openEuler community. |
Yes |