中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

矩阵化检查

矩阵化检查功能用于对可矩阵化片段进行检查,并提供矩阵化修改建议。

命令功能

对可矩阵化片段进行检查。

命令格式

1
devkit advisor matrix-check [-h | --help] {-i INPUT_PATH | --input INPUT_PATH} [-s scan_file_path | --scan-dir scan_file_path] [(-b {make,cmake} | --build-tool {make,cmake}) & (-c COMMAND | --cmd COMMAND)] | [-j COMPILE_JSON_PATH | --compile-command-json COMPILE_JSON_PATH] [-o OUTPUT_PATH | --output OUTPUT_PATH] [-r {all,json,html,csv} | --report-type {all,json,html,csv}] [-l {0,1,2,3} | --log-level {0,1,2,3}] {-p {sme,domain} | --optimization {sme,domain}} [-m {compute,memory_access,communication} | --module {compute,memory_access,communication}] [--set-timeout TIMEOUT]

参数说明

表1 参数说明

参数

参数选项

参数说明

-h/--help

-

获取帮助信息。

-i/--input

input_path

必选参数,待扫描的源码文件夹路径。

-s/--scan-dir

scan_directory

待扫描的源码文件夹或包路径,支持多路径,多路径之间用空格分割。

-b/--build-tool

make/cmake

构建工具,默认为make。

-c/--cmd

command

源码的构建命令。若命令包含空格,需使用单引号。

-c和-j二者必填一项。

说明:

命令行工具源码构建命令不支持设置变量和export环境变量。

例如:"CFLAGS='-O0 -g';make"或"export CFLAGS='-O0 -g';make"。

-j/--compile-command-json

compile-command-json_path

指定compile_commands.json文件的所在路径,关于如何生成json文件请参见生成json文件

-c和-j二者必填一项。

-o/--output

output_path

扫描报告的存放路径,默认存放在当前执行路径下,报告名称为模块名称_时间戳。

-l/--log-level

0/1/2/3

设置日志级别,默认为1。
  • 0:日志级别为DEBUG。
  • 1:日志级别为INFO。
  • 2:日志级别为WARNING。
  • 3:日志级别为ERROR。

-r/--report-type

all/html/csv

扫描报告的格式,默认为all。

  • all:生成HTML、CSV两种格式报告。
  • html:生成HTML格式报告。
  • csv:生成CSV格式报告。

-p/--optimization

sme/domain

必选参数,指定矩阵化优化方法,

  • sme:SME矩阵化,包括Stencil、GEMV和FFT。
  • domain:领域优化,必须与-m选项同时使用。

-m/--module

compute/memory_access/communication

可选参数,指定领域优化方法:

  • compute:计算优化,包括数学恒等变换、消除冗余公共算子、单位阶跃计算优化、精度一致除转乘、查找算法领域优化、归约计算并行化、制导语句优化、sin/cos算子融合、exp计算化简、循环合并、截断半径判断消除、迭代算查拆分、粒子作用力迭代流程优化、分子间作用力迭代展开、定长循环完全展开、邻接表聚合、邻接粒子作用力计算向量化。
  • memory_access:仿存优化,即超大数据降维优化。
  • communication:通讯优化,即通信隐藏优化。

当矩阵化优化选择domain时,领域优化方式至少选择一项。

--set-timeout

time

任务超时时间,单位为分钟,若执行时间超过超时时间则退出执行。默认无超时时间,任务将持续执行直到结束。

SME矩阵化和领域优化对应的优化技术含义请参见矩阵化检查章节。

使用示例

此处以扫描“/home/test_code/data”路径下源码,且构建工具为make,构建命令为make,矩阵化优化方式为SME矩阵化和领域优化为例,请根据实际情况进行修改。

1
devkit advisor matrix-check -i /home/test_code/data -c make -b make -o /home/out/ -p domain,sme -m compute,memory_access,communication

返回信息如下,并输出报告。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
Scanned time: 2024/06/12 02:18:35
Configuration: 
    Scan source code path: /home/test_code/data
    Generate report path: /home/out
    Generate report type: all
    Task Timeout Interval: The timeout period is not set.
    Log level: info

Summary:
    Scanned 11 files, there are 50 sugguestions.

For the details information, please check:
/home/out/matrix-check_20240612021835_2d68.html
/home/out/matrix-check_20240612021835_2d68.csv
After the project analysis is complete, additional optimization files are generated in /home/out/matrix-check_20240612021835_2d68
Download the optimization files and adapt the project build files.
Adapt the project build files to the FFT-SME library, which is located in /home/out/fftm.zip

输出报告说明

表2 矩阵化检查输出报告参数说明

参数

说明

配置信息

显示软件源码文件存放路径。

需要修改的源码文件

显示存在矩阵化问题,并需要进行修改的源码文件路径等相关信息。