我要评分
获取效率
正确性
完整性
易理解

Application Scenarios

The Kunpeng DevKit consists of the Porting Advisor, Affinity Analyzer, Development Assistant, Compiler and Debugger, System Profiler, Java Profiler, and System Diagnosis. The application scenarios are as follows.

Porting Advisor

  • System migration: The tool enables wizard-driven, automatic migration across OSs, databases, middleware, and applications.
  • Software porting assessment: The tool analyzes the software packages (non-source packages) and installed software to be ported, and assesses the porting feasibility.
  • Source code porting: You can use this tool to analyze the source code to be ported to a server powered by the Kunpeng 920 processor and obtain porting suggestions.
  • Software package rebuild: You can use this tool to rebuild software packages applicable to the Kunpeng platform.
  • Dedicated software porting: You can modify the software porting warehouse provided by Huawei, compile, and generate an installation package of the specified software version for the Kunpeng platform.
Table 1 Constraints in special scenarios

Special Scenario

Constraints

Build file

  • The Find function in CMake parsing depends on the GCC compilation result. If the tool runs in a Kunpeng environment, CMake cannot successfully parse or detect x86-specific compilation options such as -m64.
  • Makefile supports the shell commands in $(shell shell_command) format, but does not support the build configuration files using shell scripts.

C/C++ code analysis

If the custom macro header files, third-party header files, or some system header files are missing, some macros to be modified may not be identified and accurate modification suggestions cannot be provided.

Intrinsic functions

The tool cannot provide accurate replacement suggestions for more than 130 intrinsic functions related to the Intel coprocessors.

Assembly code

  • The tool cannot provide absolutely accurate modification suggestions in any of the following scenarios:
    • When a function contains parameters, a message will be displayed indicating that the function conversion may fail due to a special structure.
    • When parameters are transferred to a stack, the parameter type is integer by default.
  • Manual conversion is prompted in any of the following scenarios:
    • The goto, call, and ret statements are used.
    • A segment register or a physical register without a value is used.
    • Global symbols are accessed.
    • The bit width of the input and output variables is greater than 128 bits.
    • The number of input and output global variables is greater than 21.
    • The bit width of instructions is different from that of variables.
    • The hybrid Intel and AT&T assembly format is used.
    • A syntax error exists in the assembly.
      NOTE:

Affinity Analyzer

The tool checks 64-bit running mode, byte alignment, and cache line alignment on x86 and Kunpeng platforms (GCC 4.8.5 to GCC 10.3.0) before porting 32-bit applications to 64-bit platforms. It can also check memory consistency on the Kunpeng platform.

Table 2 Constraints in special scenarios

Special Scenario

Constraints

Byte alignment

If dependency files are unavailable when header files are used in recursion, the analysis accuracy decreases.

System Profiler

Table 3 Task limitations

Task Type

Description

Comparison analysis

Overall analysis, hotspot function analysis, and roofline analysis are supported.

HPC cluster check

Password-free login must be enabled for each node in the MPI cluster. For configuration items that do not comply with the best practice of the Kunpeng platform, the tool provides optimization suggestions.

HPC application analysis

During OpenMP data collection, the kernel parameters /proc/sys/kernel/kptr_restrict and /proc/sys/kernel/perf_event_paranoid are enabled to collect call graph data and PMU events. After the collection is complete, the two kernel parameters are restored to their original values.

Microarchitecture analysis

You must have the root permission to perform the following operations.

  1. If the configuration of Paranoid is incorrect, set the Paranoid variable to -1. For example, in CentOS and openEuler, run the following command:
    1
    echo -1 > /proc/sys/kernel/perf_event_paranoid
    
  2. If a message is displayed indicating that data collection fails and the OS performance monitor is not enabled, run the following command to enable it:
    1
    echo 0 > /proc/sys/kernel/nmi_watchdog
    

Memory access analysis

This function is available on openEuler and CentOS 7.6 with the Statistical Profiling Extension (SPE) feature. The supported openEuler kernel versions are 4.19 and later and the supported CentOS 7.6 kernel versions are 4.14.0-115.el7a.0.1, 4.14.0-115.2.2.el7a, 4.14.0-115.5.1.el7a, 4.14.0-115.6.1.el7a, 4.14.0-115.7.1.el7a, 4.14.0-115.8.2.el7a, and 4.14.0-115.10.1.el7a.

  • Miss event analysis

    This function is not available in VM and container environments.

  • NUMA refined analysis

    This function is not available in VM environments.

I/O analysis

The system kernel must support ftrace collection.

Process/Thread performance analysis

If the sysstat version is earlier than 11.0.0, the process/thread performance analysis result may contain abnormal data.

Resource scheduling analysis

You are advised to use an OS whose kernel version is 4.19 or later to run resource scheduling analysis tasks.

Roofline analysis

Set /proc/sys/kernel/perf_event_paranoid to 0 or a smaller value.

Lock and wait analysis

The environment must support the extended Berkeley Packet Filter (eBPF) configuration.

Java Profiler

Table 4 Task limitations

Task Type

Description

Real-time profiling

  • The JDK version must be JDK 8 or later.
  • If the server does not support hotspot analysis, the Create Hotspot Analysis button is unavailable.
  • Currently, Concurrent Mark Sweep (CMS) and Garbage-First (G1) garbage collector logs can be parsed. Java 8 supports CMS and G1, whereas Java 9 and later versions support only G1.
  • Each user can perform real-time profiling on a maximum of 10 processes at the same time.

Sampling profiling

The JDK must be BiSheng JDK 8.302 or later or OpenJDK 9 or later.

System Diagnosis

Table 5 Task limitations

Task Type

Description

Memory usage diagnosis

  • This function is not available in container environments.
  • The environment must support the eBPF configuration.

Memory overwriting diagnosis

The application must be compiled using GCC 4.9 or later.

Network I/O diagnosis

The OS must have a kernel version ranging from 4.15.0 to 5.4.0, and UOS 20 is not supported.

Storage I/O diagnosis

Do not use logical disks or existing files for pressure tests.