Rate This Document
Findability
Accuracy
Completeness
Readability

Introduction

The Affinity Analyzer is an application source code analysis tool designed for developers, users, and independent software vendors (ISVs) of the Kunpeng platform. It is one of the extended tools of the Kunpeng DevKit. It checks software code to improve code quality and memory access performance. It works only on the Kunpeng 920 platform.

Table 1 Task description

Function

Description

64-bit running mode check

Identifies the applications to be ported from the 32-bit platform to the 64-bit platform and provides modification suggestions for the porting.

Byte alignment check

Checks the byte alignment of the structure variables in the source code.

Cache line alignment check

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 makefile and CMakeLists.txt that can be replaced with content in the Kunpeng library, and provides replacement suggestions and function repair.

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.

Use Restrictions

Table 2 Use restrictions

Task Type

Description

Byte alignment check

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