Introduction
Overview
The Kunpeng DevKit command-line tool is a toolset that includes the System Migration, Porting Advisor, Affinity Analyzer, Compiler and Debugger, and System Diagnosis tools. This document describes how to obtain, install, and use the Kunpeng DevKit command-line tool. The following table lists the supported functions:
Tool |
Description |
Supported Platform |
|---|---|---|
Checks and analyzes source files written in C, C++, ASM, Fortran, Go, Java, Python, or Scala, locates the code to be ported, and provides porting guidance. |
Kunpeng, x86 |
|
Collects information about installed software including software packages, middleware, and databases in an application system, and analyzes the dependency compatibility in the POM file of a Maven project. In addition, it supports image migration, and can generate Dockerfiles, build image resource files, and compatibility analysis reports. |
Kunpeng, x86, Windows Server 2008, Windows Server 2012, Windows Server 2016 |
|
Analyzes the SO library and DLL files in the software package installation path on x86, verifies their compatibility with the Kunpeng architecture, and provides replacement download links for any incompatible files. |
Kunpeng, x86 |
|
Checks software code on the Kunpeng platform to improve code quality and memory access performance. |
Kunpeng, x86 (only calculation precision analysis and link latency detection supported) |
|
Performs static analysis of C/C++ code with Clang/LLVM, focusing on vectorized optimization of C/C++ code. The tool automatically identifies vectorizable loop patterns and supports x86 Intel intrinsics analysis to detect x86 vectorized instructions. It automatically generates Arm vectorized code for automatic rewriting. These capabilities help developers quickly convert scalar code into efficient Arm vectorized code and fully leverage the performance benefits of NEON/ |
Kunpeng |
|
Parses the user-defined configuration file (.ini) and generates a header file. Users can write header file APIs into program code to record log information. In addition, the Tracer integrates the CTF deserialization function to parse and output log files. |
Kunpeng, x86 |
|
Debugs MPI and MPI+OpenMP applications in Launch mode. It must be run using the mpirun command. Debugs MPI and MPI+OpenMP applications in Attach mode. It must use the srun method of the |
Kunpeng |
|
Quickly collects static Kunpeng hardware information to help learn about the overall hardware status before tuning. NOTE:
The Kunpeng Health Inspector was formerly named "Kunpeng Health Check." |
Kunpeng |
|
Analyzes exceptions that occur in applications. |
Kunpeng |
|
Checks the relationship between memory bandwidth and latency. |
Kunpeng |
|
Collects multi-dimensional performance data with a single click, including cache misses, memory access statistics, NOTE:
|
Kunpeng, x86 |
|
Collects and analyzes performance data in multiple scenarios, and provides tuning suggestions based on the tuning system. NOTE:
Compared with the Kunpeng Performance Boundary Analyzer, the System Profiler supports multi-dimensional, in-depth performance analysis and focuses more on identifying bottlenecks in the middle and later stages of tuning. For example, the microarchitecture analysis feature can be used to examine instruction execution efficiency layer by layer at the microarchitecture layer, while the memory access statistics feature helps analyze and locate cache miss sources and memory access pattern issues. |
Kunpeng |
|
Analyzes and optimizes the performance of Java programs running on Kunpeng servers. |
Kunpeng |
|
Samples Python programs and mixed programs of Python and C/C++ and analyzes call stacks. |
Kunpeng |
|
Collects performance data during program execution and provides code optimization suggestions. It supports C, C++, Go, and Java. The tool supports function-level top-down analysis, function trace analysis, and memory profiling, helping developers understand the service execution logic, quickly identify performance bottlenecks, and receive actionable optimization suggestions. By using this tool, performance issues can be resolved faster, improving both development efficiency and operational efficiency. |
Kunpeng, x86 |
|
Analyzes single-process and multi-process memory usage, identifies hot and cold memory regions, and swaps cold memory to swap space to free physical memory. |
Kunpeng |
|
A dynamic analysis tool designed to address performance issues in complex C/C++ applications. |
Kunpeng |
|
Monitors the code cache and JIT compiler metrics of Java applications, and generates alarms when detecting any abnormal metrics that could cause performance jitter. |
Kunpeng |
|
The Kunpeng Domain Tuner is a scenario-based tuning tool for the Kunpeng platform. It enables out-of-the-box optimization through a two-step process: "one-click configuration" followed by "automatic parameter tuning." The tool supports scenarios such as big data and databases, with support for additional scenarios to be added in future iterations. By incorporating tuning expertise from real-world deployments, the tool enables one-click configuration of typical BIOS, OS, and application parameters and Kunpeng affinity features. It also uses built-in AI algorithms to optimize parameters and provide better parameter combinations and recommended values, helping maximize performance within the available configuration space. |
Kunpeng |
|
Automatically tunes application and system parameters to improve application performance metrics in different scenarios. |
Kunpeng |
Command Format Conventions
Format |
Description |
|---|---|
Boldface |
The keywords (the part that must be kept unchanged) of a command are in boldface. |
Italic |
Command arguments (replaced by specific values in an actual command) are in italics. |
[ ] |
Optional items (keywords or arguments) are grouped in square brackets ([]). |
{ x | y | ... } |
Optional items are grouped in braces ({}) and separated by vertical bars (|). One item must be selected. |
[ x | y | ... ] |
Optional items are grouped in brackets ([]) and separated by vertical bars (|). One item or no item can be selected. |
{ x | y | ... }* |
Optional items are grouped in braces ({}) and separated by vertical bars (|). At least one item must be selected, and at most all items can be selected. |
[ x | y | ... ]* |
Optional items are grouped in brackets ([]) and separated by vertical bars (|). Several items or no item can be selected. |
&<1-n> |
The parameter before the ampersand (&) can be repeated 1 to n times. |
# |
A line starting with the # sign is a comment. |
