| Files | Last commit | Last update |
|---|---|---|
ci(gen_ops_soc): 恢复 ascend960dt 编译obj分组配置 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !15136 merge fix_2 into master ci(gen_ops_soc): 恢复 ascend960dt 编译obj分组配置 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 描述 恢复 !14790 中 **ascend960dt** 档的 obj 编译拆分组配置。!15083 曾回退该档分组,本次验证后恢复启用。 ## 改动内容 仅 scripts/ci/gen_ops_soc.py 的 group_op_dict(单文件 +6/-1): - **ascend960dt**:flash_attention_score=5、flash_attention_score_grad=10、mega_moe=40、matmul_all_reduce=40、allto_all_matmul=20、matmul_reduce_scatter_v2=20 - **ascend950 档维持不变**(mega_moe=40、matmul_all_reduce=40 等保留 !14790 合入后配置) - 其他 SoC(910b / 910_93 / 350 / 960pr)不受影响 ## 影响面 仅 CI 编译任务的 obj 分组配置,不涉及算子 kernel / host 代码;!15083 的 squash 提交 ac7aeffcc 之后无其他提交改动该文件,恢复干净应用。 ## 验证 - 本地实跑 python3 scripts/ci/gen_ops_soc.py:正常生成、退出码 0 - pre-commit 全钩子 Passed - 960dt 编译任务的分组调度与耗时已随本 PR 验证 ## 关联 - 原始分组配置: https://gitcode.com/cann/ops-transformer/pull/14790 - 960dt 档回退: https://gitcode.com/cann/ops-transformer/pull/15083 See merge request: cann/ops-transformer!15136 | 12 days ago | |
Pre-Commit 规范整改 — 公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5305 merge refactor into master Pre-Commit 规范整改 — 公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: pre-commit是一个Git Hooks框架,用于在 git commit时自动运行代码检查和格式化工具。: | Hook | 功能 | 说明 | |------|------|------| | **clang-format** | C/C++ 代码格式化 | 自动格式化代码,保持风格一致 | | **OAT Check** | 开源合规检查 | 检测许可证头、禁止二进制文件提交 | 本PR对于公共文件进行了pre-commit检查 See merge request: cann/ops-transformer!5305 | 4 months ago | |
fix(opgen): reject invalid generated C++ type names Co-authored-by: Ethan_Zou<tianjun.zou@foxmail.com> # message auto-generated for no-merge-commit merge: !13772 merge fix/rated-20261013-opgen-invalid-type-name into master fix(opgen): reject invalid generated C++ type names Created-by: Ethan_Zou Commit-by: Ethan_Zou Merged-by: cann-robot Description: ## 描述 opgen只验证原始名称的字符范围,允许3d_add、_9_value以及仅下划线名称。生成C++类型名时按下划线分词并capitalize:上述名称分别变成数字开头的3dAdd/9Value或空类型名。完整模板替换后出现class 3dAdd及OP_ADD(3dAdd)等无效声明;CLI仍exit0并报告成功,留下不可编译工程。 在复制模板前验证实际派生C++类型名必须非空且满足标识符规则。非法名称exit1,不创建工程;保留正常名称、数字后缀和有效前导下划线的既有映射。 ## 关联的Issue 由统一入口关联本次opgen非法派生类型名Issue。 ## 测试 master基线 27f9054a7f155cc56cbdd48828ae4d98e6124fce;DevEnvC_mmdv8、Ubuntu20.04/aarch64 Host、Python3.11.4、GCC9.4.0、实际完整CANN9.0.0 SDK /home/developer/Ascend/cann-9.0.0/aarch64-linux 与该安装的tools/opbuild/op_build;原生GCC编译完整生成的*_def.cpp为共享库,_GLIBCXX_USE_CXX11_ABI=0,链接真实libregister;实际op_build以OPS_PROTO_SEPARATE=1、OPS_ACLNN_GEN=1、OPS_PROJECT_NAME=aclnn生成产物。未裁剪SDK头或模板、未模拟编译器/producer。未构建完整算子包、编译设备kernel或运行NPU;驱动和芯片不参与,不声明未实测SDK/NPU版本兼容。 CANN_OPGEN_NATIVE_SDK=/home/developer/Ascend/cann-9.0.0/aarch64-linux CANN_OPGEN_NATIVE_OPBUILD=/home/developer/Ascend/cann-9.0.0/tools/opbuild/op_build python3 -m unittest discover -s tests/ut/scripts -p test_opgen_invalid_type_name.py -v 2方法/8场景:原版3d_add、_9_value、_、___均CLI exit0而完整生成OpDef在SDK/GCC下编译失败,4个回归失败;native_add、add_3d、_custom_add、add9四个合法控制完整生成、GCC编译、实际op_build均通过,并核对实际REG_OP类型名、aclnn头/源及两个SoC配置。修复后非法输入在复制前exit1且无工程残留,四个合法控制仍完整原生通过,总8通过。相同最终格式化测试在最新原版和修复执行。当前变更完整pre-commit、两处变更OAT十类0、Git/LFS fsck、diff --check、作者/提交者及唯一源提交核实。 ## 文档更新 回归写明真实SDK/Host OpDef编译及op_build产物验证范围。 ## 类型标签 - [x] Bug修复 - [x] 测试 Closes https://gitcode.com/cann/ops-transformer/issues/6089 See merge request: cann/ops-transformer!13772 | 12 days ago | |
fix(package): uninstall built-in AICPU kernel and config directories Co-authored-by: qzzzy1<qiziyu2@huawei.com> # message auto-generated for no-merge-commit merge: !15204 merge feat/aicpu-builtin-package-manifest into master fix(package): uninstall built-in AICPU kernel and config directories Created-by: qzzzy1 Commit-by: qzzzy1 Merged-by: cann-robot Description: ## 描述 修复 built-in AICPU 产物卸载残留问题。 在 AICPU built-in 整包机制中,安装后会在以下路径生成 AICPU 产物: text opp/built-in/op_impl/aicpu/config/aicpu_transformer.json opp/built-in/op_impl/aicpu/kernel/libtransformer_aicpu_kernels.so 此前打包 XML 中 config / kernel 是普通 copy 条目,生成的 filelist.csv 记录为普通 copy。卸载逻辑中,普通 copy 条目如果目标是一个目录,会直接跳过;只有 copy_entity 条目才会递归删除目录内容。因此卸载时会跳过 AICPU 的 config / kernel 目录,导致 aicpu_transformer.json 和 libtransformer_aicpu_kernels.so 残留未被删除。 本 PR 将这两个目录标记为实体目录: xml <file value="config" entity="true" install_mod="755"/> <file value="kernel" entity="true" install_mod="755"/> 使 filelist.csv 生成 copy_entity 记录,卸载器会递归删除这两个目录,AICPU json 和 device so 不再残留。 ## 关联的Issue 7062 ## 测试 ### 环境与构建命令 bash source /home/anaconda3/etc/profile.d/conda.sh conda activate pec_py310 source /home/qzy/cann/set_env.sh bash build.sh --pkg --soc=ascend910_93 -n mixed_quant_sparse_flash_mla_metadata,block_sparse_attention -j16 其中 block_sparse_attention 用于补齐范围编译时的 tiling 链接依赖。 ### TC-01 打包成功 预期包含: text add_aicpu_cust_kernel_modules for mixed_quant_sparse_flash_mla_metadata_cust_obj Merging aicpu json inputs into .../aicpu_transformer.json Built target mixed_quant_sparse_flash_mla_metadata_cust_obj Linking cust_aicpu_kernels.so using ARM toolchain Build pkg success 结果:通过。 ### TC-02 安装成功 命令: bash bash build_out/cann-A3-ops-transformer_9.2.0_linux-aarch64.run --quiet --full --install-path=/tmp/uninstall_fix_install 结果:通过,install_exit=0。 安装后存在: text cann/opp/built-in/op_impl/aicpu/config/aicpu_transformer.json cann/opp/built-in/op_impl/aicpu/kernel/libtransformer_aicpu_kernels.so aicpu_transformer.json 中包含 MixedQuantSparseFlashMlaMetadata。 ### TC-03 filelist 记录正确 安装目录中的 filelist.csv 包含: text NA,copy_entity,opp/built-in/op_impl/aicpu/config,... NA,copy_entity,opp/built-in/op_impl/aicpu/kernel,... 结果:通过,不再生成普通 copy。 ### TC-04 卸载成功 命令: bash bash build_out/cann-A3-ops-transformer_9.2.0_linux-aarch64.run --quiet --uninstall --install-path=/tmp/uninstall_fix_install 结果:通过,uninstall_exit=0。 ### TC-05 AICPU 产物清理检查 命令: bash find /tmp/uninstall_fix_install -type f -path '*built-in/op_impl/aicpu/*' 结果:无输出。 即以下文件均被删除: text aicpu_transformer.json libtransformer_aicpu_kernels.so ### 验证结果汇总 | TC | 内容 | 结果 | |---|---|---| | TC-01 | AICPU 产物打包 | ✅ | | TC-02 | 安装成功,json/so 存在 | ✅ | | TC-03 | filelist 使用 copy_entity | ✅ | | TC-04 | 卸载命令成功 | ✅ | | TC-05 | json/so 被清理 | ✅ | 说明:卸载后外层 opp/built-in/op_impl/aicpu 可能作为空目录保留,目录内文件已全部清理,不影响功能。 ## 文档更新 无 ## 类型标签 - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!15204 | 12 days ago | |
fix(5162a): 区分 5162 的 soc 版本与短名/series 命名 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !15086 merge br_5162_series_rename into master fix(5162a): 区分 5162 的 soc 版本与短名/series 命名 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 对于 Ascend5162 芯片,区分 soc 版本与短名/series 命名(对齐 MC62/Ascend950 惯例): - soc 版本:保留 Ascend5162A/ascend5162a - 短名/series:ascend5162a 更名为 ascend5162 涉及:CMakeLists.txt(ASCEND_ALL_COMPUTE_UNIT/SOC_VERSION_LIST)、build.sh(SUPPORT_COMPUTE_UNIT_SHORT)、cmake/func.cmake(mc2 跳过)、const_var.py / opdesc_parser.py / parse_compile_scope.py(compute unit → soc 版本映射键更名,值保留 Ascend5162A) 与 opbase PR #1110、canndev PR #82674、ops-math PR #6969、ops-nn PR #13255、ops-cv PR #2364 配套。 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/7054 ## 测试 - pre-commit 全量 hook 通过 - 构造三套环境实测三个分支打印路径输出正确 ## 文档更新 无 See merge request: cann/ops-transformer!15086 | 12 days ago | |
整改仓内+安装重名头文件 Co-authored-by: chenyifan<chenyifan66@h-partners.com> # message auto-generated for no-merge-commit merge: !11266 merge clear_h into master 整改仓内+安装重名头文件 Created-by: mutex_lock Commit-by: chenyifan Merged-by: cann-robot Description: ## 描述 整改仓内及安装场景下的重名头文件冲突,避免同名头文件在编译包含路径或安装打包时互相覆盖。 **改动原因** - 仓内 attention/、gmm/、示例工程等存在 basename 相同的头文件,易在统一 include 搜索路径下发生错误包含。 - 与 third_party(如 catlass)及主仓多算子之间存在安装侧重名,可能覆盖安装产物。 **采取的方法** 1. **仓内重名**(637b7145f):对易冲突头文件按模块加前缀消歧,并同步更新引用,例如: - BSA / GBSA:block_epilogue_* / block_mmad_* → bsa_* / gbsa_* - recurrent_kda:recurrent_kda.h → recurrent_kda_arch22.h / recurrent_kda_arch35.h - grouped_matmul:grouped_matmul_kernel.h → grouped_matmul_kernel_arch35.h / fkl_grouped_matmul_kernel.h 等 - metadata:generic_block_sparse_attention_metadata.h → generic_block_sparse_attention_metadata_tiling.h 2. **安装重名**(975ffde47):对 GBSA/BSA/GMM 基础设施头文件统一加模块前缀(gbsa_ / bsa_ / gmm_,epilogue/gemm/tla 再细分),git mv 后批量更新 #include;**不改** experimental/ 与 third_party/。 3. 同步调整 scripts/check_duplicate_headers.sh 等相关引用。 **范围说明**:本次仅为头文件重命名与 include 路径同步,无业务逻辑变更(约 151 个文件,增删对等)。 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5037 ## 测试 ## 文档更新 ## 类型标签 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11266 | 2 months ago | |
fix: 修复离线场景三方件下载与在线构建URL不一致问题 Co-authored-by: Leeshoujem<michael.lixiaojie@huawei.com> # message auto-generated for no-merge-commit merge: !14028 merge fix/offline-3rd-party-download into master fix: 修复离线场景三方件下载与在线构建URL不一致问题 Created-by: Leeshoujem Commit-by: Leeshoujem Merged-by: cann-robot Description: ## 描述 fix: 修复离线场景三方件下载与在线构建URL不一致问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14028 | 25 days ago | |
feat(pre-commit): 拦截类钩子报告统一落盘 pre-commit_reports + 健壮性与策略对齐 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !12834 merge fix_2 into master feat(pre-commit): 拦截类钩子报告统一落盘 pre-commit_reports + 健壮性与策略对齐 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5016 ## 描述 #### 🐛 Bug 修复 / ✨ 特性增强 围绕既有 pre-commit 体系的三处完善(8 文件 +38/-12,1 笔提交):**拦截类钩子报告落盘**、**脚本健壮性修复**、**策略与文档对齐**。全部经 --all-files 全量实测校准。 ### 一、拦截类钩子报告统一落盘 pre-commit_reports/(不入 git) | 改动 | 内容 | |---|---| | scripts/run_codespell.sh(新增) | codespell 输出 tee 到 pre-commit_reports/codespell.log(entry 覆写仍跑托管 venv,PIPESTATUS 保退出码) | | .pre-commit-config.yaml | codespell entry 指向包装脚本 | | scripts/oat_check.sh | 报告落点 oat_reports/result.txt → pre-commit_reports/oat_result.txt(单文件与批量两条写路径同步) | | .gitignore | oat_reports/ → pre-commit_reports/ | | docs/zh/develop/pre-commit_guide.md | 失败排查节补报告位置说明 | 自动修类钩子(clang-format/ruff)直接改好文件无需报告;拼写/合规须人工处理,报告落盘便于复查与喂给 agent 修复。 ### 二、健壮性修复(姊妹仓全量实测暴露的同款隐患) | 改动 | 内容 | |---|---| | scripts/oat_check.sh | eval 拼接改数组传参 + -f 加引——文件名含 ()/&/[]/空格时 eval 会打断 shell 致扫描假死/假过(本仓当前 0 此类文件名,防御性修复) | | scripts/format_cpp.sh | 目录不存在时原仅打印提示仍继续执行,改为报错退出(exit 1) | ### 三、策略与文档对齐 | 改动 | 内容 | |---|---| | OAT.xml | 豁免 requirements*.txt(依赖清单,双过滤器)、*.info(cmake help,双过滤器)——全量扫描 250→240,残留均为真实缺头债(增量消化) | | trailing-whitespace | 补 --markdown-linebreak-ext=md(防静默剥掉 md 双空格硬换行语法,实测:双空格保留、三空格收敛、单空格照删) | | .clang-format | PointerAlignment 改 **Left**(int* p 指针随类型,领导确认口径;引用 & 同规则);年份 2025→2026 | ## 测试 - 全量 OAT 16 批真实扫描(无双误退出码);缺头 py 拦截有效、豁免类型放行 - md 双空格保留实测通过;codespell 命中落盘、OAT 报告落盘且目录不被 git 跟踪 - 本提交自身过全部钩子(含 OAT);yaml/xml/bash 语法全过 ## 留作仓主决策(本 PR 不动) - ruff --ignore 现行清单含 F841,F821,F401 等 F 系列——skills-dev 口径为「F 系列全启用抓真 bug」,两仓策略不同,建议仓主确认后另行统一 - third_party/catlass、third_party/opbase 下同名 oat_check.sh 为上游副本,未动 ## 类型标签 - [x] 🐛 Bug 修复 - [x] ✨ 特性增强 See merge request: cann/ops-transformer!12834 | 1 month ago | |
ci(pre-commit): OAT 检查切换为远程 compliance hook Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13627 merge moonep_8 into master ci(pre-commit): OAT 检查切换为远程 compliance hook Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/6573 ## 描述 #### 🔧 配置变更 按社区统一接入方式(issue #6573,chenyx_2012)切换:OAT 合规检查由「仓内自维护 oat_check.sh + repo: local」切换为「HiAgent/compliance 远程 Python hook」,业务仓不再维护 OAT 脚本,OAT 版本由 rev 标签(v1.0.6)统一管控。 ## 改动(3 文件) - .pre-commit-config.yaml:repo: local 的 oat-check 块替换为 repo: https://gitcode.com/HiAgent/compliance, rev: v1.0.6(id: oat-check,pass_filenames/stages/verbose 与原配置一致) - 删除 scripts/oat_check.sh(本地脚本退役) - .gitignore 补 oat_reports/(远程 hook 报告目录) ## 行为等价性评估(已读 compliance v1.0.6 源码) 本地脚本的全部修复点均由远程 hook 覆盖,且架构更优: | 本地脚本修复点 | 远程 hook 实现 | |---|---| | 120KB 分批(E2BIG 防护) | **in-process 调用**(import oat 直接跑 pipeline),无 subprocess argv 限制,问题不存在 | | RC=1 无报告阻断 | report_file.is_file() 守卫:无报告且 RC!=0 → return 1 阻断 ✅ | | 跨批次旧报告复用 | state_file 按 HEAD SHA 聚合 + lock,_cleanup_stale_run_state 清理同 HEAD 残留 ✅ | | done-marker 去重 | "one terminal report per HEAD" 终局报告模型 + CI 分批调度取代 ✅ | | OAT.xml 支持 | _resolve_oat_xml 读仓根 OAT.xml ✅ | ## 测试 - YAML 解析通过;pre-commit run oat-check 实测通过(hook 环境自动克隆 compliance 仓并安装 OAT) - 报告目录变化:pre_commit_reports/oat_result.txt → oat_reports/result.txt(已 gitignore) ## 类型标签 - [x] 🔧 配置变更 See merge request: cann/ops-transformer!13627 | 20 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 12 days ago | ||
| 4 months ago | ||
| 12 days ago | ||
| 12 days ago | ||
| 12 days ago | ||
| 2 months ago | ||
| 25 days ago | ||
| 1 month ago | ||
| 20 days ago |