Introduction to the Kunpeng DevKit
The Kunpeng DevKit provides a series of tools covering application porting, 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, and performance test tools, 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 Kunpeng DevKit includes the following tools:
Tool |
Description |
|---|---|
System Migration |
Offers wizard-driven, automatic migration across OSs, databases, middleware, and applications. |
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. |
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. |
System Migration
The System Migration tool supports only the Kunpeng platform. In a full package installation scenario, System Migration is integrated in the Porting Advisor tool.
Function |
Description |
|---|---|
System migration |
Offers wizard-driven, automatic migration across OSs, databases, middleware, and applications. |
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. |
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. |