---
title: 矩阵化检查
description: "矩阵化检查功能用于对可矩阵化片段进行检查，并提供矩阵化修改建议。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24_t50/cliuserguide/KunpengDevKitCli_0058.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24_t50/cliuserguide/KunpengDevKitCli_0058.html
indexId: 92daac09664a5216a79ad5524fbe5ed7eeb3da5401b4db2249b967a19c1148bb85
---
# 矩阵化检查

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

#### 命令功能

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


#### 命令格式

```
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-timeoutTIMEOUT]
```


#### 参数说明


**表1 参数说明**

| 参数 | 参数选项 | 参数说明 |
| --- | --- | --- |
| \-h/\-\-help | \- | 获取帮助信息。 |
| \-i/\-\-input | INPUT\_PATH | 必选参数，待扫描的源码文件夹绝对路径。 |
| \-s/\-\-scan\-dir | SCAN\_DIR | 源码文件夹下要扫描的文件或文件夹的相对路径，支持多路径，多路径之间用空格分隔。 |
| \-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\_JSON\_PATH | 指定compile\_commands.json文件的所在路径，关于如何生成json文件请参见生成json文件(https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit\_24\_t50/usermanual/DevKit\_Affinity\_0020.html)。 \-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 | \- | 任务超时时间，单位为分钟，若执行时间超过超时时间则退出执行。默认无超时时间，任务将持续执行直到结束。 |


SME矩阵化和领域优化对应的优化技术含义请参见矩阵化检查(https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24_t50/usermanual/DevKit_Affinity_0019.html)章节。


#### 使用示例

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

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

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

```
Executing matricization check task, please wait...
Current progress: ################################# [100%]
Scanned time: 2025/04/07 02:13:03
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 suggestions.
For the details information, please check:
/home/out/matrix-check_20250407021303_ee84.html
/home/out/matrix-check_20250407021303_ee84.csv
After the project analysis is complete, additional optimization files are generated in /home/out/matrix-check_20250407021303_ee84
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 矩阵化检查输出报告参数说明**

| 参数 | 说明 |
| --- | --- |
| 配置信息 | 显示软件源码文件存放路径。 |
| 需要修改的源码文件 | 显示存在矩阵化问题，并需要进行修改的源码文件路径等相关信息。 |
