skills/arm-cpu-optimize/step5-integrate.md
目标:确认新实现和 runtime dispatch、packer、测试矩阵一致,并留下足够的性能/正确性记录。
新增或替换 kernel 时检查:
.S 文件已加入对应 build list。MNNGetGemmUnit、UNIT/SRC_UNIT/DST_XUNIT 和 packer 匹配。SME2 或其他可变 pack mode 路径尤其要确认:不要用新 packer 配旧 kernel。
按改动范围选择测试,不要盲目承诺全量但也不要只跑一个 case。
低 bit LLM kernel 推荐:
cd build
cmake --build . -j 8
./run_test.out op/lowMemory/blockConv 0 1 4
./run_test.out op/lowMemory/HybridConv 0 1 4
./run_test.out op/lowMemory/blockConv 0 1 4 # 在 SDOT 目标设备/构建配置上复跑
./run_test.out op/lowMemory/HybridConv 0 1 4 # 在 SDOT 目标设备/构建配置上复跑
./run_test.out speed/GemvBW 0 2
模型 sanity:
./llm_demo /path/to/w3/config.json prompt.txt 64 1
./llm_demo /path/to/w3/config.json prompt.txt 64 1 # 在 SDOT 目标设备/构建配置上复跑
./llm_demo /path/to/w2/config.json prompt.txt 64 1
./llm_demo /path/to/w2/config.json prompt.txt 64 1 # 在 SDOT 目标设备/构建配置上复跑
普通算子则跑对应 op/Xxx、相关邻近算子和已有 speed test。
提交或交付前确认:
.hpp 注释和 .cpp 实现的 layout/size 描述一致。schema/private/、source/internal/。不强制每次创建长报告;但非平凡性能优化必须在最终回复或报告文件里记录关键数据。
推荐格式:
## ARM CPU optimization result
Scope:
- bit/precision:
- ISA:
- shape/block:
- threads:
Correctness:
- build:
- op tests:
- model sanity:
Performance:
| test | bit | ISA | before | after | eff GB/s | note |
|------|-----|-----|--------|-------|----------|------|
Notes:
- paths not covered:
- residual risk:
如果用户要求报告文件,或数据较多,再写入 <topic>_optimization.md。