| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修复histogram冒烟脚本路径丢失,修复ndtri描述错误 Co-authored-by: cgcaof<caochenguang1@h-partners.com> # message auto-generated for no-merge-commit merge: !6389 merge master into master 修复histogram冒烟脚本路径丢失,修复ndtri描述错误 Created-by: cgcaof Commit-by: cgcaof Merged-by: cann-robot Description: ## 描述 修复histogram冒烟脚本路径丢失,修复ndtri描述错误 ## 关联的Issue 不涉及 ## 测试 tess pass! ## 文档更新 examples/01_simd_cpp_api/04_advanced_api/10_math/ndtri/README.md examples/01_simd_cpp_api/04_advanced_api/10_math/ndtri/README_en.md ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6389 | 21 天前 | |
fix: 修复 DataSyncBarrier 并恢复已验证的 presmoke 用例 Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !6257 merge fix/data-sync-barrier-presmoke into master fix: 修复 DataSyncBarrier 并恢复已验证的 presmoke 用例 Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 修复 data_sync_barrier 样例在 910B CPU 调试模式下因 GM 地址不满足 WriteGmBypassDCache 的 128 字节区间前 32 字节约束而断言、随后另一核轮询超时的问题。分配时预留对齐空间,向 kernel 传入对齐地址,并保留原始地址用于释放。同步及计算逻辑不变。 解除该用例在 presmoke runner、生成器配置及 manifest 中的临时跳过,让后续刷新 runner 后仍正常执行。 ## 验证 - CANN 9.3.0(20260916),910B CPU 模式:clean build、run、verify 通过;连续运行 10 次均通过。 - 同版本 910B NPU 模式:物理卡 7 clean build、run、verify 通过,精度误差 0。 - 通过 presmoke run.sh 分别验证 CPU/NPU,均未跳过且通过。 - pre-commit、bash -n、git diff --check 通过。 ## 补充:恢复其他已验证样例 - 移除 cross_core_set_wait_flag 三个 scenario 和 triple_chevron_notation 的临时 presmoke 跳过;同步更新生成器配置、runner、manifest。 - 910B(CANN 9.3.0):跨核同步 scenario 0/1/2 的 CPU、NPU、sim 均通过;GE 样例 NPU 通过。 - 950(隔离容器内 CANN 9.3.0 toolkit + 950-ops):跨核同步 scenario 0/1/2 的 CPU、NPU、sim 均通过;GE 样例 NPU 通过。950 原容器仅有旧包,未修改。 - 通过实际 presmoke run.sh 的 clean/build/run/verify 复测:两种架构的 GE、三个 NPU scenario 与复杂场景的 CPU/sim 均通过;NPU run 单阶段设置 120 秒超时,build 不设超时。 - pre-commit 通过。全量 presmoke 单测仍有 5 项已有的测试/manifest 环境问题,与本次解禁无关。 See merge request: cann/asc-devkit!6257 | 25 天前 | |
add simt compile presmoke Co-authored-by: louyuxuan<louyuxuan@huawei.com> # message auto-generated for no-merge-commit merge: !5914 merge master into master add simt compile presmoke Created-by: louyuxuan Commit-by: louyuxuan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 添加 SIMT 编译前冒烟看护用例 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5914 | 29 天前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
Add presmoke runner and validation reports Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !2900 merge presmoke_opt into master Add presmoke runner and validation reports Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 本 PR 将 presmoke 看护入口收敛到 scripts/run_presmoke.sh,用于统一 910B/950 全量看护和单 case 调试,同时保留旧脚本调用方依赖的成功/失败输出约定。 主要变更: - scripts/run_presmoke.sh 作为统一入口,默认不带参数时仍按 910B NPU 模式执行。 - 成功时输出 execute samples success,失败时输出 execute samples failed 并返回非 0。 - 支持固定调度顺序,尽量降低 NPU 队列空闲时间。 - 全量运行前清理 CANN opp/vendors 下已安装自定义算子包,避免历史安装污染。 - 保留自定义算子依赖顺序:custom_op_static_lib、parallel_ops_package、custom_op 以及依赖 custom op 的 aclnn/aclop/onnx/tiling_sink 等 case 按依赖顺序执行。 - 报告统一输出到 presmoke_reports/,包含最终汇总、case timing、失败列表和 stage 日志。 - npu-smi info 仅作为元信息采集,增加短超时保护,避免收尾阶段卡住。 - CPU 模式改为显式 opt-in,可通过 MODES=cpu 或 MODE=cpu 启用。 ## 关联的Issue 无。 ## 测试 本地检查: bash bash -n scripts/run_presmoke.sh PYTHONPATH=scripts python3 -m unittest discover -s scripts/presmoke/tests -v git diff --check 910B 全量 NPU 看护验证: bash ARCH=dav-2201 MODES=npu PRIMARY_CARD=7 RETRY_CARDS="1 2 3 4 5 6" bash scripts/run_presmoke.sh 结果: - planned:170 - pass/fail/skip:168/0/2 - elapsed:667s - NPU busy/idle:665.697s / 0.893s - NPU utilization:99.9% - effective status:PASS 950 全量 NPU 看护验证: bash ARCH=dav-3510 MODES=npu PRIMARY_CARD=0 bash scripts/run_presmoke.sh 结果: - planned:249 - pass/fail/skip:244/3/2 - elapsed:1758s - NPU busy/idle:1757.458s / 0.812s - NPU utilization:接近 100% - effective status:FAIL 950 剩余 3 个失败均为 build 阶段编译失败,不是 NPU run timeout: - 03_simt_api/02_features/00_framework/00_pytorch/torch_library_roll - 03_simt_api/02_features/01_api_features/00_memory_access/insert_hash_table - 03_simt_api/03_best_practices/00_memory_optimizations/cache_hint 典型错误: - double precision operation is not allowed in aicore function - no matching function for call to 'max'/'min' ## 文档更新 更新 scripts/presmoke/README.md,补充: - 默认运行方式。 - 910B/950 看护参数示例。 - 单 case 调试方式。 - CPU 模式说明。 - 报告目录和日志说明。 - 运行全量时不要中途覆盖工作目录,避免污染 build/run 分阶段产物。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [x] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2900 | 4 个月前 | |
fix: align pybind bisheng toolchain Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !4275 merge fix_pytorch_framework_cases_20260709 into master fix: align pybind bisheng toolchain Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 变更说明 - 对 pybind、torch_library、ge_torchair 和 torch_library_report_tensor 样例的 CMake toolchain 进行统一适配,从 CMake 选定的 C++ 编译器自动推导 GCC toolchain,并传递给 bisheng 编译和链接阶段。 - CMake 探测 Torch、torch_npu 和 pybind11 路径时临时关闭 SLOG 标准输出,避免运行日志污染路径变量。 - 保留 master 现有 scripts/run_presmoke.sh,新版编排能力继续通过 scripts/run_presmoke_v2.sh 验证,支持自动识别可见 NPU、多卡分片、固定调度、单 case/过滤列表执行、仅编译模式以及完整报告输出。 - 精简 presmoke v2 多卡执行:删除临时 workspace 复制及清理逻辑,多卡共享源码目录;scenario 使用独立构建目录并可跨卡分片,同时保留必要的自定义算子依赖约束。 - 调整自定义算子包依赖调度和 tiling sink 日志校验,减少不必要的全局锁与全局日志操作。 - 补齐两个新增 950 样例的 6 个 scenario runner、manifest 和固定调度顺序。 - 增加 910B 八卡固定分片清单及完整性校验,发现新增、遗漏或重复 case 时直接报错,避免固定顺序与实际 case 集合漂移。 - 优化多卡关键路径:保持自定义算子依赖链顺序,仅对 custom_op 算子包构建启用 16 路并行编译,其他 case 继续使用自动计算的并行度。 ## 验证 - 完成相关 PyTorch 样例的 clean build 和 NPU 运行验证。 - presmoke Shell 语法检查、分支级 pre-commit 检查和 138 个 Python 单元测试通过。 - 910B NPU 8 卡全量验证:共 301 个结果,299 PASS、0 FAIL、2 SKIP;删除 workspace 复制并允许 scenario 跨卡分片后,整体耗时 262 秒,NPU 利用率 87.073%。 - 910B 八卡调度实验确认固定分片覆盖 301 个 case;提高自定义算子依赖链的编译并行度后,关键路径进一步缩短。固定分片只提交 case 映射,历史耗时及运行报告不纳入仓库。 - 950 NPU 单卡全量验证:共 497 个结果,472 PASS、23 FAIL、2 SKIP;整体耗时 3487 秒,NPU 利用率约 99.98%。其中 18 个编译失败由当前 CANN 安装缺少 950 头文件引起,另有 5 个 bank_conflict_3510 场景精度校验失败。 See merge request: cann/asc-devkit!4275 | 3 个月前 | |
fix: align pybind bisheng toolchain Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !4275 merge fix_pytorch_framework_cases_20260709 into master fix: align pybind bisheng toolchain Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 变更说明 - 对 pybind、torch_library、ge_torchair 和 torch_library_report_tensor 样例的 CMake toolchain 进行统一适配,从 CMake 选定的 C++ 编译器自动推导 GCC toolchain,并传递给 bisheng 编译和链接阶段。 - CMake 探测 Torch、torch_npu 和 pybind11 路径时临时关闭 SLOG 标准输出,避免运行日志污染路径变量。 - 保留 master 现有 scripts/run_presmoke.sh,新版编排能力继续通过 scripts/run_presmoke_v2.sh 验证,支持自动识别可见 NPU、多卡分片、固定调度、单 case/过滤列表执行、仅编译模式以及完整报告输出。 - 精简 presmoke v2 多卡执行:删除临时 workspace 复制及清理逻辑,多卡共享源码目录;scenario 使用独立构建目录并可跨卡分片,同时保留必要的自定义算子依赖约束。 - 调整自定义算子包依赖调度和 tiling sink 日志校验,减少不必要的全局锁与全局日志操作。 - 补齐两个新增 950 样例的 6 个 scenario runner、manifest 和固定调度顺序。 - 增加 910B 八卡固定分片清单及完整性校验,发现新增、遗漏或重复 case 时直接报错,避免固定顺序与实际 case 集合漂移。 - 优化多卡关键路径:保持自定义算子依赖链顺序,仅对 custom_op 算子包构建启用 16 路并行编译,其他 case 继续使用自动计算的并行度。 ## 验证 - 完成相关 PyTorch 样例的 clean build 和 NPU 运行验证。 - presmoke Shell 语法检查、分支级 pre-commit 检查和 138 个 Python 单元测试通过。 - 910B NPU 8 卡全量验证:共 301 个结果,299 PASS、0 FAIL、2 SKIP;删除 workspace 复制并允许 scenario 跨卡分片后,整体耗时 262 秒,NPU 利用率 87.073%。 - 910B 八卡调度实验确认固定分片覆盖 301 个 case;提高自定义算子依赖链的编译并行度后,关键路径进一步缩短。固定分片只提交 case 映射,历史耗时及运行报告不纳入仓库。 - 950 NPU 单卡全量验证:共 497 个结果,472 PASS、23 FAIL、2 SKIP;整体耗时 3487 秒,NPU 利用率约 99.98%。其中 18 个编译失败由当前 CANN 安装缺少 950 头文件引起,另有 5 个 bank_conflict_3510 场景精度校验失败。 See merge request: cann/asc-devkit!4275 | 3 个月前 | |
Add presmoke runner and validation reports Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !2900 merge presmoke_opt into master Add presmoke runner and validation reports Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 本 PR 将 presmoke 看护入口收敛到 scripts/run_presmoke.sh,用于统一 910B/950 全量看护和单 case 调试,同时保留旧脚本调用方依赖的成功/失败输出约定。 主要变更: - scripts/run_presmoke.sh 作为统一入口,默认不带参数时仍按 910B NPU 模式执行。 - 成功时输出 execute samples success,失败时输出 execute samples failed 并返回非 0。 - 支持固定调度顺序,尽量降低 NPU 队列空闲时间。 - 全量运行前清理 CANN opp/vendors 下已安装自定义算子包,避免历史安装污染。 - 保留自定义算子依赖顺序:custom_op_static_lib、parallel_ops_package、custom_op 以及依赖 custom op 的 aclnn/aclop/onnx/tiling_sink 等 case 按依赖顺序执行。 - 报告统一输出到 presmoke_reports/,包含最终汇总、case timing、失败列表和 stage 日志。 - npu-smi info 仅作为元信息采集,增加短超时保护,避免收尾阶段卡住。 - CPU 模式改为显式 opt-in,可通过 MODES=cpu 或 MODE=cpu 启用。 ## 关联的Issue 无。 ## 测试 本地检查: bash bash -n scripts/run_presmoke.sh PYTHONPATH=scripts python3 -m unittest discover -s scripts/presmoke/tests -v git diff --check 910B 全量 NPU 看护验证: bash ARCH=dav-2201 MODES=npu PRIMARY_CARD=7 RETRY_CARDS="1 2 3 4 5 6" bash scripts/run_presmoke.sh 结果: - planned:170 - pass/fail/skip:168/0/2 - elapsed:667s - NPU busy/idle:665.697s / 0.893s - NPU utilization:99.9% - effective status:PASS 950 全量 NPU 看护验证: bash ARCH=dav-3510 MODES=npu PRIMARY_CARD=0 bash scripts/run_presmoke.sh 结果: - planned:249 - pass/fail/skip:244/3/2 - elapsed:1758s - NPU busy/idle:1757.458s / 0.812s - NPU utilization:接近 100% - effective status:FAIL 950 剩余 3 个失败均为 build 阶段编译失败,不是 NPU run timeout: - 03_simt_api/02_features/00_framework/00_pytorch/torch_library_roll - 03_simt_api/02_features/01_api_features/00_memory_access/insert_hash_table - 03_simt_api/03_best_practices/00_memory_optimizations/cache_hint 典型错误: - double precision operation is not allowed in aicore function - no matching function for call to 'max'/'min' ## 文档更新 更新 scripts/presmoke/README.md,补充: - 默认运行方式。 - 910B/950 看护参数示例。 - 单 case 调试方式。 - CPU 模式说明。 - 报告目录和日志说明。 - 运行全量时不要中途覆盖工作目录,避免污染 build/run 分阶段产物。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [x] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2900 | 4 个月前 | |
Add presmoke runner and validation reports Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !2900 merge presmoke_opt into master Add presmoke runner and validation reports Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 本 PR 将 presmoke 看护入口收敛到 scripts/run_presmoke.sh,用于统一 910B/950 全量看护和单 case 调试,同时保留旧脚本调用方依赖的成功/失败输出约定。 主要变更: - scripts/run_presmoke.sh 作为统一入口,默认不带参数时仍按 910B NPU 模式执行。 - 成功时输出 execute samples success,失败时输出 execute samples failed 并返回非 0。 - 支持固定调度顺序,尽量降低 NPU 队列空闲时间。 - 全量运行前清理 CANN opp/vendors 下已安装自定义算子包,避免历史安装污染。 - 保留自定义算子依赖顺序:custom_op_static_lib、parallel_ops_package、custom_op 以及依赖 custom op 的 aclnn/aclop/onnx/tiling_sink 等 case 按依赖顺序执行。 - 报告统一输出到 presmoke_reports/,包含最终汇总、case timing、失败列表和 stage 日志。 - npu-smi info 仅作为元信息采集,增加短超时保护,避免收尾阶段卡住。 - CPU 模式改为显式 opt-in,可通过 MODES=cpu 或 MODE=cpu 启用。 ## 关联的Issue 无。 ## 测试 本地检查: bash bash -n scripts/run_presmoke.sh PYTHONPATH=scripts python3 -m unittest discover -s scripts/presmoke/tests -v git diff --check 910B 全量 NPU 看护验证: bash ARCH=dav-2201 MODES=npu PRIMARY_CARD=7 RETRY_CARDS="1 2 3 4 5 6" bash scripts/run_presmoke.sh 结果: - planned:170 - pass/fail/skip:168/0/2 - elapsed:667s - NPU busy/idle:665.697s / 0.893s - NPU utilization:99.9% - effective status:PASS 950 全量 NPU 看护验证: bash ARCH=dav-3510 MODES=npu PRIMARY_CARD=0 bash scripts/run_presmoke.sh 结果: - planned:249 - pass/fail/skip:244/3/2 - elapsed:1758s - NPU busy/idle:1757.458s / 0.812s - NPU utilization:接近 100% - effective status:FAIL 950 剩余 3 个失败均为 build 阶段编译失败,不是 NPU run timeout: - 03_simt_api/02_features/00_framework/00_pytorch/torch_library_roll - 03_simt_api/02_features/01_api_features/00_memory_access/insert_hash_table - 03_simt_api/03_best_practices/00_memory_optimizations/cache_hint 典型错误: - double precision operation is not allowed in aicore function - no matching function for call to 'max'/'min' ## 文档更新 更新 scripts/presmoke/README.md,补充: - 默认运行方式。 - 910B/950 看护参数示例。 - 单 case 调试方式。 - CPU 模式说明。 - 报告目录和日志说明。 - 运行全量时不要中途覆盖工作目录,避免污染 build/run 分阶段产物。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [x] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2900 | 4 个月前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
跳过cpu超时 Co-authored-by: cgcaof<caochenguang1@h-partners.com> # message auto-generated for no-merge-commit merge: !4469 merge master into master 跳过cpu超时 Created-by: cgcaof Commit-by: cgcaof Merged-by: cann-robot Description: ## 描述 三个最佳实践样例执行cpu模式过久,需要跳过cpu模式。下图是本地单独执行各个场景的所需时间,而冒烟是限制600s以内。  ## 关联的Issue 不涉及 ## 测试 tess pass! ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [x] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!4469 | 2 个月前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
Add presmoke runner and validation reports Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !2900 merge presmoke_opt into master Add presmoke runner and validation reports Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 本 PR 将 presmoke 看护入口收敛到 scripts/run_presmoke.sh,用于统一 910B/950 全量看护和单 case 调试,同时保留旧脚本调用方依赖的成功/失败输出约定。 主要变更: - scripts/run_presmoke.sh 作为统一入口,默认不带参数时仍按 910B NPU 模式执行。 - 成功时输出 execute samples success,失败时输出 execute samples failed 并返回非 0。 - 支持固定调度顺序,尽量降低 NPU 队列空闲时间。 - 全量运行前清理 CANN opp/vendors 下已安装自定义算子包,避免历史安装污染。 - 保留自定义算子依赖顺序:custom_op_static_lib、parallel_ops_package、custom_op 以及依赖 custom op 的 aclnn/aclop/onnx/tiling_sink 等 case 按依赖顺序执行。 - 报告统一输出到 presmoke_reports/,包含最终汇总、case timing、失败列表和 stage 日志。 - npu-smi info 仅作为元信息采集,增加短超时保护,避免收尾阶段卡住。 - CPU 模式改为显式 opt-in,可通过 MODES=cpu 或 MODE=cpu 启用。 ## 关联的Issue 无。 ## 测试 本地检查: bash bash -n scripts/run_presmoke.sh PYTHONPATH=scripts python3 -m unittest discover -s scripts/presmoke/tests -v git diff --check 910B 全量 NPU 看护验证: bash ARCH=dav-2201 MODES=npu PRIMARY_CARD=7 RETRY_CARDS="1 2 3 4 5 6" bash scripts/run_presmoke.sh 结果: - planned:170 - pass/fail/skip:168/0/2 - elapsed:667s - NPU busy/idle:665.697s / 0.893s - NPU utilization:99.9% - effective status:PASS 950 全量 NPU 看护验证: bash ARCH=dav-3510 MODES=npu PRIMARY_CARD=0 bash scripts/run_presmoke.sh 结果: - planned:249 - pass/fail/skip:244/3/2 - elapsed:1758s - NPU busy/idle:1757.458s / 0.812s - NPU utilization:接近 100% - effective status:FAIL 950 剩余 3 个失败均为 build 阶段编译失败,不是 NPU run timeout: - 03_simt_api/02_features/00_framework/00_pytorch/torch_library_roll - 03_simt_api/02_features/01_api_features/00_memory_access/insert_hash_table - 03_simt_api/03_best_practices/00_memory_optimizations/cache_hint 典型错误: - double precision operation is not allowed in aicore function - no matching function for call to 'max'/'min' ## 文档更新 更新 scripts/presmoke/README.md,补充: - 默认运行方式。 - 910B/950 看护参数示例。 - 单 case 调试方式。 - CPU 模式说明。 - 报告目录和日志说明。 - 运行全量时不要中途覆盖工作目录,避免污染 build/run 分阶段产物。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [x] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2900 | 4 个月前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 24 天前 | |
Add presmoke runner and validation reports Co-authored-by: xun_zhuge<zhugexun@hisilicon.com> # message auto-generated for no-merge-commit merge: !2900 merge presmoke_opt into master Add presmoke runner and validation reports Created-by: xun_zhuge Commit-by: xun_zhuge Merged-by: cann-robot Description: ## 描述 本 PR 将 presmoke 看护入口收敛到 scripts/run_presmoke.sh,用于统一 910B/950 全量看护和单 case 调试,同时保留旧脚本调用方依赖的成功/失败输出约定。 主要变更: - scripts/run_presmoke.sh 作为统一入口,默认不带参数时仍按 910B NPU 模式执行。 - 成功时输出 execute samples success,失败时输出 execute samples failed 并返回非 0。 - 支持固定调度顺序,尽量降低 NPU 队列空闲时间。 - 全量运行前清理 CANN opp/vendors 下已安装自定义算子包,避免历史安装污染。 - 保留自定义算子依赖顺序:custom_op_static_lib、parallel_ops_package、custom_op 以及依赖 custom op 的 aclnn/aclop/onnx/tiling_sink 等 case 按依赖顺序执行。 - 报告统一输出到 presmoke_reports/,包含最终汇总、case timing、失败列表和 stage 日志。 - npu-smi info 仅作为元信息采集,增加短超时保护,避免收尾阶段卡住。 - CPU 模式改为显式 opt-in,可通过 MODES=cpu 或 MODE=cpu 启用。 ## 关联的Issue 无。 ## 测试 本地检查: bash bash -n scripts/run_presmoke.sh PYTHONPATH=scripts python3 -m unittest discover -s scripts/presmoke/tests -v git diff --check 910B 全量 NPU 看护验证: bash ARCH=dav-2201 MODES=npu PRIMARY_CARD=7 RETRY_CARDS="1 2 3 4 5 6" bash scripts/run_presmoke.sh 结果: - planned:170 - pass/fail/skip:168/0/2 - elapsed:667s - NPU busy/idle:665.697s / 0.893s - NPU utilization:99.9% - effective status:PASS 950 全量 NPU 看护验证: bash ARCH=dav-3510 MODES=npu PRIMARY_CARD=0 bash scripts/run_presmoke.sh 结果: - planned:249 - pass/fail/skip:244/3/2 - elapsed:1758s - NPU busy/idle:1757.458s / 0.812s - NPU utilization:接近 100% - effective status:FAIL 950 剩余 3 个失败均为 build 阶段编译失败,不是 NPU run timeout: - 03_simt_api/02_features/00_framework/00_pytorch/torch_library_roll - 03_simt_api/02_features/01_api_features/00_memory_access/insert_hash_table - 03_simt_api/03_best_practices/00_memory_optimizations/cache_hint 典型错误: - double precision operation is not allowed in aicore function - no matching function for call to 'max'/'min' ## 文档更新 更新 scripts/presmoke/README.md,补充: - 默认运行方式。 - 910B/950 看护参数示例。 - 单 case 调试方式。 - CPU 模式说明。 - 报告目录和日志说明。 - 运行全量时不要中途覆盖工作目录,避免污染 build/run 分阶段产物。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [x] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [x] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!2900 | 4 个月前 | |
扩展ruff-pre-commit hooks (第一批目录) Co-authored-by: Water8L<15279328600@163.com> # message auto-generated for no-merge-commit merge: !4256 merge master into master 扩展ruff-pre-commit hooks (第一批目录) Created-by: Water8L Commit-by: Water8L Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 在.pre-commit-config.yaml中增加ruff-check ruff-format,并修改cmake|docs|impl|scripts|tests目录下对应不合规范的文件,除了暂时屏蔽的部分文件和错误类型 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!4256 | 3 个月前 |
Presmoke 看护入口
scripts/run_presmoke.sh 是 CI 和人工看护入口。该脚本会执行一轮完整的 910B 或 950 presmoke,生成可归档报告,并支持将超时用例切换到其他卡上重试。
如需直接调试 Python CLI,可以使用 PYTHONPATH=scripts PRESMOKE_PROJECT_ROOT=$PWD python3 -m presmoke ...。
执行全量看护前,编排脚本会清理当前 CANN opp/vendors 目录下的所有内容,保证自定义算子包安装状态可复现。带 --filter 或 --dry-run 的运行不会清理 opp/vendors。
快速开始
使用默认参数运行。该命令最短,并保持与旧 run_presmoke.sh 调用方约定兼容:
bash scripts/run_presmoke.sh
默认行为:
ARCH=dav-2201,对应 910B。MODES=npu。NPU_CARDS=auto,优先检测可见的/dev/davinci*卡并并行运行。PRIMARY_CARD=0,仅在自动检测不到 NPU 卡,或强制单轮运行时作为兜底主卡。SCHEDULE=fixed。JOBS=auto。NPU_SLOTS=1。TIMEOUT=120,只作用于 NPU run 命令。- 成功时打印
execute samples success;失败时打印execute samples failed并返回非 0。
常用命令
只查看计划运行哪些用例,不实际执行:
bash scripts/run_presmoke.sh --dry-run
只执行编译阶段,不执行 run 和 verify。该模式使用单个工作目录并保留编译产物:
bash scripts/run_presmoke.sh --stages build
只编译指定用例:
bash scripts/run_presmoke.sh --stages build \
--exact-filter 01_simd_cpp_api/01_utilities/02_dump/simple_dump
指定 910B 的某张卡运行:
NPU_CARDS=7 PRIMARY_CARD=7 bash scripts/run_presmoke.sh
运行 950:
ARCH=dav-3510 PRIMARY_CARD=0 bash scripts/run_presmoke.sh
运行单个用例:
bash scripts/run_presmoke.sh \
--filter 01_simd_cpp_api/03_basic_api/03_matrix_compute/mmad_unitflag
指定报告输出目录:
OUT_ROOT=/tmp/presmoke_910b_card7 \
PRIMARY_CARD=7 \
bash scripts/run_presmoke.sh
显式运行 CPU 模式。CPU 模式不是默认模式:
MODES=cpu bash scripts/run_presmoke.sh
CPU 模式用例较慢时,可以提高 CPU run 超时时间:
MODES=cpu CPU_RUN_TIMEOUT=1800 bash scripts/run_presmoke.sh
CI 命令
910B:
PROJECT_ROOT=/path/to/asc-devkit \
ARCH=dav-2201 \
PRIMARY_CARD=7 \
RETRY_CARDS="0 1 2 3 4 5 6" \
bash scripts/run_presmoke.sh
950:
PROJECT_ROOT=/path/to/asc-devkit \
ARCH=dav-3510 \
PRIMARY_CARD=0 \
bash scripts/run_presmoke.sh
950 dry-run:
ARCH=dav-3510 PRIMARY_CARD=0 bash scripts/run_presmoke.sh --dry-run
910B dry-run:
ARCH=dav-2201 PRIMARY_CARD=7 bash scripts/run_presmoke.sh --dry-run
参数
| 变量 | 默认值 | 含义 |
|---|---|---|
PROJECT_ROOT |
脚本所在仓库根目录 | 要运行的 asc-devkit checkout。 |
ASCEND_HOME_DIR |
/usr/local/Ascend/ascend-toolkit/latest |
CANN toolkit 根目录,目录下应包含 set_env.sh。 |
ARCH |
dav-2201 |
目标架构。910B 使用 dav-2201,950 使用 dav-3510。 |
NPU_CARDS |
auto |
NPU 模式使用的卡。auto 优先检测可见的 /dev/davinci*,再回退到 npu-smi。如需强制单卡运行,可设置 NPU_CARDS=7。 |
PRIMARY_CARD |
0 |
自动检测不到卡,或运行被强制为单轮模式时使用的兜底主卡。 |
RETRY_CARDS |
空 | 超时用例重试使用的卡号,多个卡号用空格分隔。 |
JOBS |
auto |
并行 build worker 数。NPU 模式使用保守的 CPU 数阶梯;纯 CPU 模式使用 ceil(CPU(s) / 4),最大值为 64。 |
NPU_SLOTS |
1 |
NPU 队列并发度。看护运行建议保持为 1。 |
CPU_RUN_SLOTS |
auto |
纯 CPU 模式的 run worker 数。auto 使用 lscpu 中的主机 CPU(s)。NPU 模式忽略该参数。 |
MAKE_JOBS |
auto |
单个 case 的 make -j 上限。auto 使用 CPU(s) / resolved JOBS;显式 make -j 命令会被 presmoke wrapper 限制。 |
TIMEOUT |
120 |
NPU run 命令超时时间,单位秒。Build 和 verify 命令不使用该超时。 |
CPU_RUN_TIMEOUT |
300 |
CPU run 命令超时时间,单位秒。CPU-only 验证较慢时可调大。 |
SCHEDULE |
fixed |
用例提交顺序。看护运行建议使用 fixed。 |
SCHEDULE_FILE |
内置文件 | 可选的固定顺序覆盖文件。 |
SCHEDULE_REPORT |
空 | 可选的历史报告或 ALL_CASE_TIMINGS.tsv。显式设置时,多卡分片根据该报告重新计算,不使用内置固定分片。 |
OUT_ROOT |
presmoke_reports/presmoke_<arch>_<timestamp> |
CI 归档使用的输出目录。 |
MODES |
npu |
Presmoke 运行模式。 |
MODE |
未设置 | 仅当 MODES 未设置时使用的别名,例如 MODE=cpu。 |
CPU 调试模式需要显式开启。使用 MODES=cpu 或 MODE=cpu;默认看护路径仍为 npu。CPU 模式默认不使用 NPU fixed schedule,除非显式提供 SCHEDULE_FILE。
CPU 模式的默认并行度根据主机 CPU 数计算,不针对特定机器写死。例如,192 CPU 主机会解析为 JOBS=48、MAKE_JOBS=4、CPU_RUN_SLOTS=192;88 CPU 主机会解析为 JOBS=22、MAKE_JOBS=4、CPU_RUN_SLOTS=88。
多卡分片与执行模型
NPU 全量运行采用“一次规划、多卡分片、每卡独立流水执行、最终统一汇总”的模型:
NPU_CARDS=auto优先扫描/dev/davinci*,扫描不到时回退到npu-smi,再无法检测时使用PRIMARY_CARD。- 编排器先执行一次 dry-run,得到经过架构、模式、schedule 和 skip 规则筛选后的完整 case 列表。
- 如果存在与架构、模式和卡数匹配的内置固定分片,且未显式设置
SCHEDULE_REPORT,编排器直接使用该分片。否则分片器读取历史build、run、verify耗时,模拟每张卡的流水线完成时间;缺少阶段耗时时,退化为按总耗时做最长任务优先的贪心均衡。 - 每张卡启动一个独立 runner。该 runner 使用
JOBS个 build worker、NPU_SLOTS个 NPU run worker 和JOBS个 verify worker;默认NPU_SLOTS=1,即每张卡只保留一条 NPU FIFO 执行队列。 - 所有卡结束后合并每卡报告。全量 elapsed time 由最早开始时间到最晚结束时间计算,因此分片目标是让各卡预计耗时和结束时间尽量接近,而不是让 case 数量完全相同。
以下情况强制使用单轮执行,不进行多卡分片:--dry-run、--filter、--exact-filter、--exclude 和 --stages build。
多卡运行根据主机 CPU 数计算每卡可用 CPU:ceil(CPU(s) / card_count),再为每张卡独立解析 JOBS、MAKE_JOBS 和 CPU_RUN_SLOTS。显式设置这些变量时,显式值优先。
custom_op 算子包的 make -j binary package 固定使用 16 路编译,优先缩短全量运行的自定义算子包编译关键路径;同一分片中的其他 case 继续使用按每卡 CPU 数计算的 MAKE_JOBS。
为了避免自定义算子包的安装和消费跨卡冲突,以下 case 作为一个不可拆分的分片组,始终分配到同一张卡:
custom_op_static_lib
└── custom_op
├── aclnn_invocation
├── aclop_invocation
├── onnx_plugin
├── tensorflow_builtin
├── tensorflow_custom
└── tiling_sink_programming
以上依赖任务结束
└── parallel_ops_package
custom_op_static_lib 或 custom_op 失败时,其硬依赖 case 会标记为 SKIP: prerequisite failed,不会继续执行命令。parallel_ops_package 可以提前 build,但 run 必须等待 custom_op 及其依赖 case 全部结束。其他 case(包括同一 source case 的不同 scenario)可以独立分配到不同卡。
分片计划写入 presmoke_reports/<run>/.plan/shards.tsv 和 .plan/shards/card_<id>.txt;这些临时计划会在最终报告生成后自动清理。每张卡的实际 case、阶段耗时和起止时间保存在 full_card<id>/results/report.json 中,可用于检查多卡负载和结束时间是否均衡。
910B 8 卡看护的固定分片位于 scripts/presmoke/schedules/shards/dav-2201_npu_8cards/card_<index>.txt。文件只保存逻辑 shard 和 case 的对应关系,不保存或提交历史耗时 TSV。运行时逻辑 shard 按顺序映射到实际检测到的卡号,并严格校验 planned case 是否恰好出现一次;case 新增、删除、重复或遗漏都会快速失败。显式设置 SCHEDULE_REPORT 可绕过固定分片并根据指定报告重新计算。
报告
编排脚本会生成:
status.txt:高层进度和最终输出位置。full_card<N>/meta.txt:环境、卡号、耗时和npu-smi快照。full_card<N>/stdout.log和stderr.log:wrapper 原始日志。full_card<N>/results/report.json:机器可读的 presmoke 报告。full_card<N>/results/report.md:详细 Markdown 报告。full_card<N>/results/logs/<case>__<mode>.log:每个 case 的完整命令日志。full_card<N>/results/logs/stages/<case>__<mode>__<stage>.log:build、run、verify 等阶段日志。FINAL_REPORT.md:包含失败和重试结果的简要汇总。ALL_CASE_TIMINGS.tsv:每个 case 的耗时、NPU 等待时间、步骤详情和实际执行命令。FAILURES.tsv:主运行中的失败或跳过结果,以及重试结果。
每轮执行完成后,编排器会保留汇总、JUnit、TSV、每卡元信息、机器可读报告以及 case/stage 日志。
调度 .plan、运行状态 .state、分片 .locks 和 case build 产物会自动删除,
不属于 CI 归档内容。
固定顺序
默认固定顺序文件为:
scripts/presmoke/schedules/dav-2201_npu.txtscripts/presmoke/schedules/dav-3510_npu.txt
这些顺序会保留自定义算子依赖约束:
custom_op_static_lib在custom_op之前运行。parallel_ops_package的 run 在custom_op及其依赖用例全部结束后运行。aclnn、aclop、onnx、tensorflow和tiling_sink在custom_op之后运行。
不在 schedule 文件中的新增 case 会追加到末尾,然后再次强制应用自定义算子依赖顺序。 全量看护入口默认开启 fixed schedule 覆盖检查,因此过期或缺失的顺序项会快速失败。
基于上一轮运行结果重新生成固定顺序:
PYTHONPATH=scripts PRESMOKE_PROJECT_ROOT=$PWD python3 -m presmoke \
--arch dav-2201 \
--modes npu \
--jobs auto \
--schedule npu-idle-min \
--schedule-report presmoke_reports/latest/full_card7/results/report.json \
--export-schedule scripts/presmoke/schedules/dav-2201_npu.txt \
--dry-run \
--report-format json \
--results /tmp/presmoke_schedule_export
注意事项
- 不要在同一个 checkout 中同时运行多个编排脚本。
.presmoke_locks下的锁会防止误重入。 - 全量看护入口会清理当前 CANN
opp/vendors目录,请确认 CI 用户有权限删除并重新安装自定义算子 vendor 包。 - 需要 TensorFlow 2.6.5 的 TensorFlow 用例会在 case manifest 中显式跳过。
- 超时重试只针对 timeout 用例。非 timeout 失败会直接汇总,留待进一步定位。