矩阵化检查
命令功能
对可矩阵化片段进行检查。
命令格式
devkit advisor matrix-check [-h | --help] {-i INPUT_PATH | --input INPUT_PATH} [-s SCAN_DIR | --scan-dir SCAN_DIR] [-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,html,csv} | --report-type {all,html,csv}] {-p {sme,domain} | --optimization {sme,domain}} [-m {compute,memory_access,communication} | --module {compute,memory_access,communication}][-l {0,1,2,3} | --log-level {0,1,2,3}][--set-timeout TIMEOUT]
参数说明
参数 |
参数选项 |
参数说明 |
---|---|---|
-h/--help |
- |
可选参数,获取帮助信息。 |
-i/--input |
INPUT_PATH |
必选参数,待扫描的源码文件夹绝对路径。 |
-s/--scan-dir |
SCAN_DIR |
可选参数,源码文件夹下要扫描的文件或文件夹的相对路径,支持多路径,多路径之间用空格分隔。 |
-b/--build-tool |
make/cmake |
可选参数,构建工具,默认为make,-b和-j二者必填一项且不能同时指定。 |
-c/--cmd |
COMMAND |
可选参数,源码构建命令,默认为make。在服务器中正常执行的构建命令,若存在多个构建命令需使用英文分号分隔并用英文单/双引号包住;命令中如有空格,也需要用英文单/双引号包住。-c和-j二者必填一项且不能同时指定。 例如:"mkdir build;cd build;cmake ..;make"。 说明:
命令行工具源码构建命令不支持设置变量和export环境变量。 例如:"CFLAGS='-O0 -g';make"或"export CFLAGS='-O0 -g';make"。 |
-j/--compile-command-json |
COMPILE_JSON_PATH |
可选参数,指定compile_commands.json文件的所在路径,关于如何生成json文件请参见生成JSON文件。 -b/-c和-j二者必填一项且不能同时指定。 |
-o/--output |
OUTPUT_PATH |
可选参数,扫描报告的存放路径,默认存放在当前执行路径下,报告名称为模块名称_时间戳。 |
-r/--report-type |
all/html/csv |
可选参数,扫描报告的格式,默认为all。
|
-p/--optimization |
sme/domain |
必选参数,指定矩阵化优化方法。
|
-m/--module |
compute/memory_access/communication |
可选参数,指定领域优化方法。
当矩阵化优化选择domain时,领域优化方式至少选择一项。 |
-l/--log-level |
0/1/2/3 |
可选参数,设置日志级别,默认为1。
|
--set-timeout |
- |
可选参数,任务超时时间,单位为分钟,若执行时间超过超时时间则退出执行。默认无超时时间,任务将持续执行直到结束。 |
使用示例
此处以扫描“/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 |
输出报告说明
参数 |
说明 |
---|---|
配置信息 |
显示软件源码文件存放路径。 |
需要修改的源码文件 |
显示存在矩阵化问题,并需要进行修改的源码文件路径等相关信息。 |