| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fallback 迁移 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !8131 merge ziliao into master fallback 迁移 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 变更摘要 此 PR 为三个量化相关算子新增了 fallback 执行实现,均以 IMPL_OP 宏注册到 fallback 命名空间中。当硬件原生不支持这些算子时,框架将通过 fallback 路径调用对应的 aclnn API 在 Host 侧完成计算,从而提供兜底能力。 ### 主要改动 * 新增 QuantBatchMatmulInplaceAdd fallback 实现: 在 quant_batch_matmul_inplace_add_fallback.cpp 中,通过 QuantBatchMatmulInplaceAddExecuteFunc 获取输入张量 x1、x2、x2Scale、可选 x1Scale 及 yRef,解析 transposeX1、transposeX2、groupSize 属性后调用 aclnnQuantBatchMatmulInplaceAdd API 执行计算。 * 新增 QuantBatchMatmulV3 fallback 实现: 在 quant_batch_matmul_v3_fallback.cpp 中,QuantBatchMatmulV3ExecuteFunc 根据输入数据类型(是否属于 v5InputDtypes 或满足 isA8W8GB 条件)分发到 aclnnQuantMatmulV5 或 aclnnQuantMatmulV4 API,支持 float8/fp4 等新数据类型及 INT8 分组量化场景。 * 新增 TransQuantParamV2 fallback 实现: 在 trans_quant_param_v2_fallback.cpp 中,TransQuantParamV2ExecuteFunc 获取 scale、可选 offset 及输出张量,解析 roundMode 属性后调用 aclnnTransQuantParamV3 API 完成量化参数的转换。 ## 关联的Issue [#4535](https://gitcode.com/cann/ops-nn/issues/4535) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8131 | 1 个月前 | |
[CANNBot]新增NPUAllocFloatStatus算子 Co-authored-by: qq_52056150<24171214023@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !8782 merge add_npu_alloc_float_status into master [CANNBot]新增NPUAllocFloatStatus算子 Created-by: wkkk0528 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 NPUAllocFloatStatus算子支持Ascend950 ### 算子功能 NPUAllocFloatStatus 用于分配并初始化浮点异常状态张量。算子接收一个可选的输入张量(仅用于形状推导),输出一个固定长度为8的float32张量,所有元素初始化为零值。该算子是 NPUFloatStatus 类算子的基础组件,通常与 NPUClearFloatStatus 配合使用,用于管理 NPU 浮点运算的异常状态。 ### 实现方式 - **架构**: Ascend950 (arch35) SIMT kernel - **Kernel 实现**: 单核 Scalar 模式,使用 SetValue 逐元素将零值写入 GM(绕过 UB,规避 DYN/BIN 首字节污染),完成后执行 DataCacheCleanAndInvalid 保证 GM 数据一致性 - **Tiling**: arch35 专用 Tiling,固定输出 8 个 float32 元素,单核无切分 - **Shape/Dtype 推导**: 输出 shape 固定为 [8],dtype 为 float32 - **REG_OP**: NPUAllocFloatStatus 原型注册,支持图模式调用 ## 关联的issue https://gitcode.com/cann/ops-math/issues/2677 ## 测试 ### TTK 测试结果 - 测试轮次: 第1轮 - 测试环境: Ascend950PR_957c (8 devices), CANN 9.2.0, TTK 3.0.0 - 第1轮结果: 编译错误(TQuePosition 标识符问题),已修复为 SetValue 直写 GM 方案 - 当前代码版本已通过本地 CI 编译验证 ### 本地 CI 预检结果 | 阶段 | 结果 | 说明 | |------|------|------| | Code Review | PASS | CR01-CR07 全部通过,2项WARN已修复(魔鬼数字提取为常量) | | Compile (single) | PASS | 单算子编译成功 | | Compile (A5) | PASS | A5 包编译成功 | | Package Verify | PASS | 2个.run包验证通过 | | CodeCheck pre-commit | PASS | clang-format/ruff/codespell/OAT 全部通过 | | UT ophost | PASS | op_host 单元测试通过 | | Example/Smoke | SKIPPED | 依赖 UT 全通过 | ### 交付件清单 - op_host: def.cpp, infershape.cpp, tiling_arch35.cpp, simplified_key.ini - op_kernel: arch35 kernel (npu_alloc_float_status.h, tiling_data.h, tiling_key.h, apt.cpp) - op_graph: proto.h, graph_infer.cpp - tests: golden.py, UT (op_api/op_host) - examples: aclnn + geir 示例 - docs: README.md ## 文档更新 - 新增 docs/zh/op_list.md 中 NPUAllocFloatStatus 条目 - 新增算子 README.md 和 aclnn API 文档 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent 生成声明 代码来源: - [ ] 纯人工手写 - [ ] AI 辅助编写 - [x] AI 完全生成 人工审查:已完成 测试验证:已通过 合规检查:已完成 See merge request: cann/ops-nn!8782 | 15 天前 | |
feat: 新增NPUClearFloatStatus算子 Co-authored-by: wuchengwen_oh<wuchengwen4@huawei.com> # message auto-generated for no-merge-commit merge: !9165 merge add_npu_clear_float_status into master feat: 新增NPUClearFloatStatus算子 Created-by: wuchengwen_oh Commit-by: wuchengwen_oh Merged-by: cann-robot Description: ## 描述 新增 NPUClearFloatStatus 算子到 ops-nn control 分类(与同族 npu_alloc_float_status 一致)。算子功能为清除 NPU 浮点溢出状态寄存器,输出固定 8 个 float32 零值。芯片支持 Ascend 950PR/950DT,使用 AscendC SIMT 语言实现。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5116 ## 测试 - UT: 2/2 PASS(tiling + infershape) - Example: PASS - TTK 黑盒 kernel: 91/91 PASS - TTK 黑盒 GEIR: 91/91 PASS - TTK 白盒 kernel: 108/108 PASS - TTK 网络 kernel: 12/12 PASS ## 文档更新 - 新增 control/npu_clear_float_status/README.md - 新增 docs/zh/op_list.md 条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9165 | 9 天前 | |
fix: 整改责任田算子日志质量(修复日志规范问题) Co-authored-by: StoneChan_<chensitong2@huawei.com> # message auto-generated for no-merge-commit merge: !9154 merge log-quality-rectify into master fix: 整改责任田算子日志质量(修复日志规范问题) Created-by: StoneChan_ Commit-by: StoneChan_ Merged-by: cann-robot Description: #### 问题描述 (必填) 依据 CANN 日志规范检查规则,对责任田算子的运行时日志进行质量整改,修复以下问题: - 级别错配:GE IR 示例(test_geir_reverse_sequence.cpp)失败信息误标 INFO(应 ERROR) - 拼写错误:Precison 等 - 语法错误:"is fail" 中式结构、"fail to get" 缺时态、"is failed" 结构、Dcache Size 大小写等 - 变量越限日志缺正确范围(ubFactor 等补充 "must be greater than 0, but got %ld") - 内部缩写 [XIR] 替换;printf/std::cout 统一走 LOG_PRINT 宏 - UT 测试中冗余 std::cout 状态输出 影响算子:glu/reverse_sequence/sleep/quant_max/concat_offset/foreach_asin #### 环境信息 (必填) 不涉及(纯日志文案整改,无运行时行为变化) #### 重现步骤 (必填) 执行算子 UT / 查看相关算子日志 #### 预期结果 (必填) 日志级别、文案符合日志规范,便于问题定位 #### 日志 / 截图 (必填) -(整改前后对比见 PR 变更) #### 备注 (选填) - 本次整改不改变算子功能逻辑 关联 PR:https://gitcode.com/cann/ops-nn/merge_requests/9154 --- 关联的Issue:#5110 See merge request: cann/ops-nn!9154 | 10 天前 | |
init | 11 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 15 天前 | ||
| 9 天前 | ||
| 10 天前 | ||
| 11 个月前 |