Rate This Document
Findability
Accuracy
Completeness
Readability

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.
  • 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:

Table 1 Tools included in the Kunpeng DevKit

Tool

Description

Supported Platform

Porting Advisor

Scans and analyzes x86 Linux software and ports it to Kunpeng Linux, offering a range of capabilities such as source code porting, system migration, and software porting assessment. The system migration function is available only for the Kunpeng platform.

Kunpeng, x86 (only architecture source code porting supported)

System Profiler

Collects and analyzes performance data in multiple scenarios, and provides tuning suggestions based on the tuning system. The tool supports comparison analysis, HPC application analysis, and hotspot function analysis.

Kunpeng

Java Profiler

Analyzes and optimizes the performance of Java programs running on Kunpeng servers, and supports real-time and sampling profiling.

Kunpeng

System Diagnosis

Quickly locates and diagnoses component exceptions, identifies memory usage problems in the source code. It offers a series of capabilities such as memory usage diagnosis, network I/O diagnosis, and storage I/O diagnosis.

Kunpeng

Orange Pi Kunpeng Pro supports only Kunpeng DevKit 24.0.RC2, 24.0.RC3, and 24.0.0. For details, see Kunpeng DevKit 24.0.RC2 User Guide (WebUI).

Related Concepts

Table 2 Concepts

Concept

Description

SO dependency library

Linux shared object files, named in filename.so.version format, for example, libname.so.1.1.1.

Dependency dictionary

A list that the Porting Advisor uses to record the SO files, software supported by the Kunpeng platform, and the installation status (installation from binary packages or installation from source code). You can download and update the dependency dictionary.

Software build project file

The common software build tools of C/C++/ASM/Fortran/Go are Make and CMake, and the corresponding build files are Makefile and CMakeLists.txt.

IPC

Instructions per cycle (IPC) is the average number of instructions executed by a CPU in each clock cycle. It reflects the smoothness of CPU execution. If a four-transmitter Kunpeng 920 processor executes four instructions in each clock cycle when its pipeline operates in full load, the IPC is 4.0. An IPC value closer to 4.0 indicates that the program uses the processor features to a greater extent.

Real-time profiling

Real-time profiling is a dynamic application analysis method, including the analysis on target JVMs and Java programs. It is used to analyze the internal distribution of resource consumption, method calling frequency, and time consumption during application running. This method is often used to assist application performance bottleneck locating and performance tuning.

Real-time profiling obtains the calling status of all methods in specific code by instrumenting the classes and methods of programs, which may greatly affect the application performance.

Sampling profiling

Sampling profiling is to collect internal activities and performance events of the JVM through data sampling, and performs offline analysis through data recording and playback. Sampling profiling does not require you to modify the application code, which has little impact on performance. It is suitable for large-scale Java programs. The precision of sampling profiling is lower than that of real-time profiling because the former only collects data periodically.