天秤源码优化工具功能介绍
天秤源码优化工具是一款基于Clang/LLVM的静态代码分析工具,专注于C/C++代码的向量化优化。工具能够自动识别可向量化的循环模式,也支持通过启用x86 Intel intrinsics分析功能,识别x86向量化指令,自动生成优化后的ARM向量化代码,实现代码的自动化改写,帮助开发者快速将代码转换为高效的ARM向量化代码,充分发挥NEON/
除本文档介绍的传统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
子命令 |
功能说明 |
|---|---|
file |
分为单文件与全项目扫描模式。用户可通过对单个源码文件或全项目进行分析优化,定位源码文件或全项目中可向量化的代码,并提供改写建议。 |
flamegraph |
用户可实现对火焰图SVG和鲲鹏性能定界工具KSYS分析结果JSON中热点函数的提取及扫描分析,能够在最短时间内定位到存在潜在优化空间的函数或代码,并提供改写建议。 |
function |
用户可通过对指定函数进行分析优化,快速定位可向量化的指定函数,并提供改写建议。 |