Introduction to the Kunpeng DevKit Plugin
The Kunpeng DevKit, an end-to-end tool kit designed for developers, offers a series of plug-and-play tools for software development, porting, compilation and debugging, and performance tuning on the Kunpeng platform based on Visual Studio Code (VS Code). The Kunpeng DevKit consists of the Porting Advisor, Affinity Analyzer, Development Assistant, Compiler and Debugger, System Profiler, Java Profiler, and System Diagnosis.
It supports the IDE frontend GUI and one-click backend installation, facilitates coding, automatically detects and installs Kunpeng compilers, performs compilation and debugging, visualizes cases, provides coding assistance, and analyzes and scans projects. You can use the Kunpeng DevKit plugin to directly deploy the whole Kunpeng DevKit, or install certain required subtools only.
Table 1 lists the tools provided by the Kunpeng DevKit:
Tool |
Description |
Software Package |
|---|---|---|
Porting Advisor |
Ports software from x86 servers running Linux to Kunpeng servers running Linux, with necessary software scan and analysis capabilities. |
DevKit-Porting-Advisor-x.x.x-Linux-platform.tar.gz |
Affinity Analyzer |
Checks software code on the Kunpeng 920 platform to improve code quality and memory access performance. |
DevKit-Affinity-Analyzer-x.x.x-Linux-platform.tar.gz |
Development Assistant |
Leverages Kunpeng computing capabilities and high-performance components to help you develop Kunpeng applications with ease. This tool can be used only in the integrated development environment (IDE). |
DevKit-Devtools-x.x.x-Linux-platform.tar.gz |
Compiler and Debugger |
Supports remote compilation and debugging on the Kunpeng platform and improves the compilation and debugging efficiency through a visualized UI. This tool can be used only in the integrated development environment (IDE). |
DevKit-Debugger-x.x.x-Linux-platform.tar.gz |
System Profiler |
Collects and analyzes performance data in multiple scenarios, and provides tuning suggestions based on the tuning system. |
DevKit-Sys-Perf-x.x.x-Linux-platform.tar.gz |
Java Profiler |
Analyzes and optimizes the performance of Java programs running on Kunpeng servers. |
DevKit-Java-Perf-x.x.x-Linux-platform.tar.gz |
System Diagnosis |
Quickly locates and diagnoses component exceptions, and identifies memory usage problems in the source code. |
DevKit-Sys-Diagnosis-x.x.x-Linux-platform.tar.gz |
- In a software package name, x.x.x indicates the software version and platform indicates the platform type, x86-64 (for x86-based servers) or Kunpeng (for servers powered by the Kunpeng 920 processor).
- A software package contains the Open_Source_Software_Notice.txt file.
Porting Advisor
The Porting Advisor simplifies the application porting process and supports scanning, analysis, and porting of software from x86 Linux to Kunpeng Linux. This tool can automatically analyze applications and generate guide reports, greatly improving code porting efficiency.
The following table lists functions supported by the Porting Advisor.
Function |
Description |
|---|---|
|
|
|
|
Analyzes the composition of the software package to be ported on the Kunpeng platform, rebuilds and generates a software package compatible with the Kunpeng platform, or directly provides a software package that can be used. |
|
Modifies the source code of some common solutions on the Kunpeng platform, compiles the code, and generates the software packages compatible with the Kunpeng platform. |
Affinity Analyzer
The Affinity Analyzer checks software code to improve code quality and memory access performance. It works only on the Kunpeng 920 processor platform. The following table lists functions supported by the Affinity Analyzer.
Function |
Description |
|---|---|
Identifies the applications to be ported from the 32-bit platform to the 64-bit platform and provides modification suggestions for the porting. |
|
Checks the byte alignment of the structure variables in the source code. |
|
Checks the 128-byte alignment of structure variables in the C/C++ source code to improve memory access performance. |
|
Static memory consistency check |
Checks for any memory consistency problem when the source code is ported to the Kunpeng platform and provides suggestions on inserting memory barriers. |
Vectorization check |
Checks vectorizable code fragments and provides modification suggestions. |
Matricization check |
Checks matricizable code fragments and provides modification suggestions. |
Build affinity |
Analyzes the content in the |
Calculation precision analysis |
After instrumenting application functions using the precision analysis tool, run the functions on the x86 platform and Kunpeng platform. Then the precision analysis tool compares the output results to analyze the calculation precision differences between the platforms. |
Development Assistant
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.
The following table lists functions supported by the Development Assistant.
Function |
Description |
|---|---|
Empty project |
Creates empty Kunpeng projects in an automatic way and manages existing projects. |
General-purpose computing application |
Provides Kunpeng general-purpose computing SDKs. 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 high-performance computing (HPC) applications based on the Hyper MPI and math libraries, you can extend sample 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. |
Distributed application |
Enables you to create a distributed application project with ease and provides the Kunpeng HCOM SDK. This HCOM SDK provides a set of high-level APIs that support various protocols, masks the complexity and differences of low-level APIs such as RDMA, TCP, UDS, and SHM, and maximizes hardware capabilities. |
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. |
Compiler and Debugger
The Compiler and Debugger allows you to deploy Kunpeng compilers in one click and debug GPU-based applications in a single-node system. It leverages
Function |
Description |
|---|---|
Compiler deployment |
Supports one-click deployment of the |
Common compilation |
Provides basic remote compilation capabilities and supports visualized compilation parameter configuration, one-click compilation, and real-time display of compilation information. |
Automatic FDO compilation |
Automatic feedback-directed optimization (FDO) is a technique that simplifies the |
General application debugging |
Provides remote debugging capabilities on the Kunpeng platform and a graphical user interface (GUI), improving debugging efficiency. |
HPC parallel application debugging |
Supports concurrent debugging on multiple nodes in HPC scenarios. MPI applications can only be debugged in launch mode. Parallel computing involves task parallelism and data parallelism. That is, different tasks are executed or different data is stored on different nodes. Currently, HPC parallel tasks support only CPU debugging. |
Allows you to debug Compute Unified Device Architecture (CUDA) programs on the Kunpeng platform. It leverages CUDA-GDB to debug GPU applications on a unified interface. |
|
Security application debugging |
After you create a Java or Python project in the Development Assistant, a general compilation task and a security application debugging task are generated in the Compiler and Debugger. You can compile and run the tasks based on your requirements or create a security application debugging task on your own. |
DPU debugging |
The Compiler and Debugger supports DPU debugging based on the Kunpeng platform to implement the DPU X Debugger (XDB) debugging capability. The XDB is a DPU debugging tool. It allows you to debug microcode programs on CPUs by using the GNU debugger (GDB), view registers, local variables, single-port RAM (spram), thread variables, and call stacks, and set breakpoints and monitoring. |
System Profiler
The System Profiler is a performance analysis tool for Kunpeng-powered servers. It collects performance data of processor hardware, operating system (OS), processes/threads, and functions, analyzes system performance metrics, locates system bottlenecks and hotspot functions, and provides tuning suggestions. This tool helps quickly locate and handle software performance problems. It is unavailable in x86 environments.
The Tuning Assistant is a tool for tuning Kunpeng-powered servers. It systematically organizes performance metrics and provides guidance for analyzing performance bottlenecks, thus realizing quick tuning.
Java Profiler
The Java Profiler is a performance analysis and tuning tool for Java programs running on Kunpeng-powered servers. It displays information about the heaps, threads, locks, and garbage collection (GC) of Java programs in graphics, collects information about hotspot functions, and helps locate program bottlenecks.
System Diagnosis
Task Type |
Description |
|---|---|
Memory usage diagnosis |
The tool analyzes the memory usage problems (including unreleased memory and abnormal memory releases) of the application to associate the call stack and source code. |
Memory overwriting diagnosis |
The tool analyzes memory overwriting problems of the application, provides the memory overwriting type and memory access information, and associates the call stack and source code. |
Network I/O diagnosis |
The tool performs pressure tests on the network to obtain the maximum network capability and provide basic reference data for network I/O performance tuning. It diagnoses the network, locates network problems, and resolves network I/O performance problems caused by network configurations and exceptions. The functions include network dialing test, packet loss diagnosis (not supported by |
Storage I/O diagnosis |
The tool performs pressure tests on the storage I/O to obtain the maximum capability of the storage device and provide basic reference data for storage I/O performance tuning. It supports storage I/O pressure tests to obtain the maximum storage I/O capabilities, including throughput, IOPS, and latency. |