| Files | Last commit | Last update |
|---|---|---|
feat(aicpu): AICPU built-in整包准入manifest机制 Co-authored-by: qzzzy1<qiziyu2@huawei.com> # message auto-generated for no-merge-commit merge: !13861 merge feat/aicpu-builtin-package-manifest into master feat(aicpu): AICPU built-in整包准入manifest机制 Created-by: qzzzy1 Commit-by: qzzzy1 Merged-by: cann-robot Description: ## 描述 新增aicpu_builtin_package_manifest.cmake策略文件,控制哪些AICPU算子在整包编译(--pkg)时打包device侧.so和json配置。 ## 关联的Issue 关联Issue [#6592](https://gitcode.com/cann/ops-transformer/issues/6592) ## 测试 | TC-01 | 整包编译(manifest 为空) | ✅ | .run 生成;无 libtransformer_aicpu_kernels.so / aicpu_transformer.json / cust_aicpu_kernel.json;日志 No aicpu opdef/json files to merge, skipping. + No aicpu cust obj targets found, skipping.(证明 built-in 路径已接线且被 manifest 门控) | | ------------- | ----------------------------------------------------------- | ----------------- | ------------------------------------------------------------ | | TC-02 | 自定义包回归(--ops + --vendor_name) | ✅ | cust_aicpu_kernel.json + so 落在 packages/vendors/custom_transformer/op_impl/cpu/{config,aicpu_kernel/impl},与改动前行为一致,manifest 条目被忽略 | | TC-05 | UT 编译回归(-u --noexec) | ✅ | AddAicpuOpTestCase 正常、*_cases_obj UT 目标生成;manifest 为 FORCE_ALL=ON + 无效条目时 UT 仍不受影响(UT 模式 ENABLE_BUILT_IN=OFF → 恒准入) | | TC-10 | manifest 准入 json 型算子(flash_attn_metadata=ON) | ✅ | 仅该算子进入产物 | | TC-11 | manifest 准入 OpDef 型算子(attention_worker_scheduler=ON) | ✅ | OpDef→ini→json 链路走通,aicpu_transformer_opdef_kernel.json 中间产物生成 | | TC-10+11 联合 | 两类算子混合准入 | ✅ | aicpu_transformer.json 含 ['AttentionWorkerScheduler', 'FlashAttnMetadata'](两来源合并正确);json 元数据 kernelSo=libtransformer_aicpu_kernels.so、engine=DNN_VM_AICPU、opKernelLib=CUSTAICPUKernel 正确 | | TC-13 | FORCE_ALL=ON 全量放开 | ✅ | 范围内 aicpu 算子全部准入,产物正常 | | TC-14 | 无效条目(不存在的算子/大小写错误) | ✅ | "nonexistent_op=ON"、"Cumsum=ON" 不报错、不产出 | | TC-15 | --noaicpu | ✅ | disable aicpu kernel xxx, skip it. 两算子整体跳过,包内 0 个 aicpu 文件,FORCE_ALL=ON 也不生效 | | TC-21 | 整包安装(manifest 为空) | ✅ | --install-path --full --quiet 安装成功,安装树中无任何 aicpu 路径 | | TC-22 | 整包安装(manifest ON)+ 产物检查 | ✅ | cann/opp/built-in/op_impl/aicpu/config/aicpu_transformer.json + cann/opp/built-in/op_impl/aicpu/kernel/libtransformer_aicpu_kernels.so 存在;file 确认 ARM aarch64;readelf 确认 BIND_NOW + GNU_RELRO;strings 确认两个 kernel 源文件均在 so 内 | | TC-18/19 | 匹配大小写敏感/value 非 ON | ✅(代码路径覆盖) | TC-14 中 "Cumsum=ON"(大小写错)未准入即为证明;STREQUAL 精确匹配 | ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13861 | 23 days 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 |
| Files | Last commit | Last update |
|---|---|---|
| 23 days ago | ||
| 12 days ago |