| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !2940 merge dev0525 into master [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1656 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2940 | 3 个月前 | |
[CANNBOT]: Eltwise 算子共性问题修改 Co-authored-by: ZJYzjy-shine<1275333808@qq.com> # message auto-generated for no-merge-commit merge: !4776 merge master into master [CANNBOT]: Eltwise 算子共性问题修改 Created-by: ZJYzjy-shine Commit-by: ZJYzjy-shine Merged-by: cann-robot Description: ## 描述 Eltwise 算子共性问题修改 ### 修改文件清单 | 文件 | 缺陷 | 改动内容 | |------|------|---------| | op_host/eltwise_def.cpp | 缺陷1 | 添加 this->Attr("N").AttrType(REQUIRED).Int(),使 autogen proto.h 包含 REQUIRED_ATTR(N, Int) | | op_graph/eltwise_graph_infer.cpp | 缺陷2 | 新增 InferDataType 实现(输出 dtype = 第一个输入 dtype) | | op_host/arch35/eltwise_tiling_arch35.cpp | 缺陷3+7 | GetModeAttr/FillCoeff 改用 GetAttrNum() 判断 attr 布局(3 attrs=[N,mode,coeff] / 2 attrs=[mode,coeff]),替代不可靠的 try-both-index;bytesPerElem = 4 * typeSize(不升精度);移除 ComputeUbFactor 的 unused parameter | | op_kernel/arch35/eltwise.h | 缺陷4 | 去掉 Cast 升精度分支,BF16 用 ReinterpretCast<uint16_t> + Duplicate(uint16_t) 处理零值和 coeff | | op_kernel/arch35/eltwise_tiling_key.h | 缺陷5 | 去掉 ASCENDC_TPL_DATATYPE_DECL,只保留 ASCENDC_TPL_UINT_DECL(MODE) | | op_kernel/eltwise.cpp | 缺陷6 | 模板从 <typename D_T, int MODE> 改为 <int MODE> + DTYPE_X 宏 | ### 各缺陷详情 **缺陷 1:def.cpp 缺 N 属性 → autogen proto.h 丢失 REQUIRED_ATTR(N, Int)** def.cpp 未声明 N 属性,编译系统生成 proto.h 时丢弃 N,导致 set_attr_N() 编译报错,每次安装需手动 sed patch。 **缺陷 2:缺少 InferDataType 实现** op_graph/ 下无 eltwise_graph_infer.cpp,InferDataType 未注册,GE 图输出 dtype 推导缺失。 **缺陷 3:tiling 属性 index 偏移(try-both-index 误判)** proto.h 中 N 在 attr index 0,tiling 用固定 index 0 读 mode 实际读到 N(输入个数),表现为 invalid mode 3。初版修复用 try-both-index + inputNum 消歧,但 GetAttrPointer<int64_t> 对 listFloat 类型的 coeff 属性返回不确定值,导致 mode=0(PRODUCT) 和 mode=2(MAX) 的多输入用例被误判为 mode=1(SUM)。 **缺陷 7:try-both-index 误判(缺陷 3 的回归修复)** 用 GetAttrNum() 判断 attr 列表是否包含 N 属性:3 个属性 → [N, mode, coeff],2 个属性 → [mode, coeff]。根据属性数量确定 mode 和 coeff 的正确 index,彻底消除类型不安全读取。 **缺陷 4:kernel 升精度导致精度不一致** FP16/BF16 输入 Cast 到 FP32 计算再 Cast 回,与 golden 原 dtype 链式计算策略不一致,5 条用例 FAIL。 **缺陷 5:tiling_key 冗余编码 dtype** DATATYPE_DECL 与 def 的 DataType 声明重复编码 dtype。 **缺陷 6:kernel 模板冗余 dtype 参数** <typename D_T, int MODE> 与 def 驱动 dtype 模式不一致,改为 <int MODE> + DTYPE_X 宏。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2627 ## 测试 1. **两方测试(211 条 GEIR 用例)**:使用 TTK GEIR 模式 const + dynamic 双路全量验证,正向用例 203 × 2 = 406 结果全部 PASS,负向异常用例 8 × 2 = 16 结果预期 FAIL/SKIP 2. **三方测试(100 条 GEIR 用例)**:使用三方 golden plugin 全量验证,98 PASS / 0 FAIL / 2 SKIP(超大 shape 10000001 编译失败,属旧 TBE 实现的环境问题,非算子侧缺陷) 3. 确定性验证:10 条用例双跑(同 seed=42)bit-exact 比对通过 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4776 | 24 天前 | |
[CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !2940 merge dev0525 into master [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> [CANNBot] add_mat_mat_elements、asin_grad、asinh_grad、eltwise和atan_grad算子适配Ascend950 AscendC实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1656 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2940 | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 个月前 | ||
| 24 天前 | ||
| 3 个月前 |