开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

天秤源码优化工具功能介绍

天秤源码优化工具是一款基于Clang/LLVM的静态代码分析工具,专注于C/C++代码的向量化优化。工具能够自动识别可向量化的循环模式,也支持通过启用x86 Intel intrinsics分析功能,识别x86向量化指令,自动生成优化后的ARM向量化代码,实现代码的自动化改写,帮助开发者快速将代码转换为高效的ARM向量化代码,充分发挥NEON/SVE指令集的性能优势。

除本文档介绍的传统CLI方式外,天秤还提供了AI调用方式,可通过自然语言调用天秤源码优化工作流,详情请参见《Kunpeng DevKit AI 用户指南》。

工具支持三种运行模式:

  • 火焰图扫描模式(推荐):推荐优先使用火焰图扫描模式,用户可实现对火焰图SVG文件或鲲鹏性能定界工具KSYS分析结果JSON文件中热点函数的提取及扫描分析,能够在最短时间内定位到存在潜在优化空间的函数或代码。
  • 函数扫描模式:用户可通过对指定函数进行分析优化,快速定位可向量化的指定函数。
  • 文件扫描模式:分为单文件与全项目扫描模式。用户可通过对单个源码文件或全项目进行分析优化,定位源码文件中可向量化的代码。

以上三种运行模式默认扫描的是标量代码,启用x86 Intel intrinsics分析功能后,可支持扫描x86向量化指令。

前提条件

  • 已安装天秤源码优化工具。
  • 工具为单独压缩包承载(tiancheng-x.x.x-Linux-Kunpeng.tar.gz),请解压后切换至工具目录使用。

命令功能

工具能够自动识别可向量化的循环模式,也支持通过启用x86 Intel intrinsics分析功能,识别x86向量化指令,自动生成优化后的ARM向量化代码,实现代码的自动化改写。

命令格式

./tiancheng <subcommand> [options]

使用示例

执行以下命令,查看天秤源码优化工具支持的功能信息:
./tiancheng -h

返回信息如下:

OVERVIEW: Tiancheng C/C++ Vectorization Analyzer

USAGE: tiancheng <subcommand> [options]

SUBCOMMANDS:

  file              Analyze one input file or all C/C++ files under a project directory
  flamegraph        Use an imported flamegraph/hotspot result as the analysis scope
  function          Analyze explicitly specified functions

  Type "tiancheng <subcommand> --help" to get more help on a specific subcommand.

OPTIONS:
  -h/--help                                   Display available commands
  --version                                   Display the version of this program
表1 子命令功能说明

子命令

功能说明

file

分为单文件与全项目扫描模式。用户可通过对单个源码文件或全项目进行分析优化,定位源码文件或全项目中可向量化的代码,并提供改写建议。

flamegraph

用户可实现对火焰图SVG和鲲鹏性能定界工具KSYS分析结果JSON中热点函数的提取及扫描分析,能够在最短时间内定位到存在潜在优化空间的函数或代码,并提供改写建议。

function

用户可通过对指定函数进行分析优化,快速定位可向量化的指定函数,并提供改写建议。