Introduction to the Kunpeng DevKit
The Kunpeng DevKit provides a series of tools covering code porting, development and debugging, compilation, testing, diagnosis, and tuning, enabling you to quickly build high-performance Kunpeng-compatible software. It facilitates application porting to the more efficient Kunpeng computing platform, which streamlines the development process. The Kunpeng DevKit offers:
- Development environments in multiple programming languages, such as C, C++, Java, and Python. You can use the Kunpeng DevKit in the WebUI or IDE.
- Optimized libraries, porting, debugging, and performance test tools, as well as abundant SDKs, helping you exploit the advantages of the Kunpeng architecture and build high-performance applications on the Kunpeng platform.
- Reference documents and code samples to help with Kunpeng application development.
- Online technical support and a communication platform for troubleshooting and exchanges with other developers.
The following table lists the tools provided by the Kunpeng DevKit:
Tool |
Description |
|---|---|
Porting Advisor |
Ports software from x86 servers running Linux to Kunpeng servers running Linux, with necessary software scan and analysis capabilities. |
Affinity Analyzer |
Checks software code on the Kunpeng 920 platform to improve code quality and memory access performance. |
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). |
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). |
System Profiler |
Collects and analyzes performance data in multiple scenarios, and provides tuning suggestions based on the tuning system. |
Java Profiler |
Analyzes and optimizes the performance of Java programs running on Kunpeng servers. |
System Diagnosis |
Quickly locates and diagnoses component exceptions, and identifies memory usage problems in the source code. |
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, which greatly improves 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 with ease. It scans code files for the functions or assembly instructions that can be replaced by those optimized by the Kunpeng Library, and generates a visualized report. It supports C and C++. To facilitate coding, it automatically queries the function dictionary provided by the Kunpeng Library, as well as highlights and associates those replacement functions and libraries.
The following table lists functions supported by the Development Assistant.
Function |
Description |
|---|---|
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. |
|
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
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 NVIDIA 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. |
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 leak points (including unreleased memory and abnormal memory releases) of an application to obtain the specific leak information and associate the call stack and source code. |
Memory overwriting diagnosis |
The tool analyzes abnormal memory access points of the application, provides abnormal access types 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. |