文件最后提交记录最后更新时间
[BugFix][MhcPreBackward]: MhcPreBackward kernel代码中uint64_t变量存在被截断风险和使用未初始化MaskReg会造成偶现的精度问题 Co-authored-by: ZhangW<zhangwei1176@huawei.com> Co-authored-by: TLE_xtx<xiaotianxiang@h-partners.com> # message auto-generated for no-merge-commit merge: !4484 merge master into master [BugFix][MhcPreBackward]: MhcPreBackward kernel代码中uint64_t变量存在被截断风险和使用未初始化MaskReg会造成偶现的精度问题 Created-by: ZhangWei1176 Commit-by: ZhangW;TLE_xtx Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> MhcPreBackward kernel代码中, (1)uint64_t数据类型的变量存在被截断风险,从而导致精度出错,因为某些AscendC API的参数只支持为uint32_t数据类型; (2)使用未初始化MaskReg会造成偶现的精度问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [Bug-Report|缺陷反馈 MhcPreBackward kernel代码中uint64_t变量存在被截断风险和使用未初始化MaskReg会造成偶现的精度问题](https://gitcode.com/cann/ops-transformer/issues/2000) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 使用新精度2.1标准进行测试,通过边界测试和泛化测试。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了mhc/mhc_pre_backward/docs/aclnnMhcPreBackward.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!44841 个月前
[PLZ]新增MhcPreBackward算子 Co-authored-by: AmadeusAlex<jackson1@huawei.com> Co-authored-by: pppipipipi<renguiping@huawei.com> Co-authored-by: liweijian16<liweijian16@huawei.com> Co-authored-by: hyhhh14<huangyuehua6@huawei.com> Co-authored-by: steppecat<liangyu62@huawei.com> Co-authored-by: ZhangW<zhangwei1176@huawei.com> Co-authored-by: TLE_xtx<xiaotianxiang@h-partners.com> # message auto-generated for no-merge-commit merge: !3916 merge mhc_pre_backward into master [PLZ]新增MhcPreBackward算子 Created-by: liweijian16 Commit-by: liweijian16;ZhangWei1176;steppecat;hyhhh14;LiWeiJian16;AmadeusAlex;TLE_xtx;pppipipipi;ZhangW Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增支持MhcPreBackward算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> (https://gitcode.com/cann/ops-transformer/issues/1917) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 使用新精度2.1标准进行测试,通过网络用例、L2级用例、STC用例 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了docs/zh/op_list.md、docs/zh/op_list.md文件,新增mhc/mhc_pre_backward/README.md、mhc/mhc_pre_backward/docs/aclnnMhcPreBackward.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!39161 个月前
common目录整改 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !4870 merge feature/common_dir_fix_v2 into master common目录整改 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 本次修改对 common/ 目录进行整理,分为两个阶段: - **Phase 1**: 将 common/include/kernel/ 重命名为 common/include/op_kernel/ - **Phase 2**: 将 common/include/tiling_base/common/src/tiling_base/ 合并到 common/include/op_host/common/src/op_host/ 相应的 CMake 配置和所有 #include 路径引用已同步更新。 影响范围: - 351 个文件修改(include 路径更新) - 8 个文件重命名(tiling_base → op_host) - 2 个 CMakeLists.txt 修改 + 多个 tests 目录 CMakeLists.txt 更新 ## 关联的Issue Closes #2246 ## 测试 - 编译验证通过:bash build.sh --pkg --soc=ascend910b --ops=all_gather_matmul_v2 -j16 - 编译产物成功生成 .run 包 ## 文档更新 无 ## 类型标签 - [x] ♻️ 重构 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!487022 天前
[BugFix][MhcPreBackward]: MhcPreBackward kernel代码中uint64_t变量存在被截断风险和使用未初始化MaskReg会造成偶现的精度问题 Co-authored-by: ZhangW<zhangwei1176@huawei.com> Co-authored-by: TLE_xtx<xiaotianxiang@h-partners.com> # message auto-generated for no-merge-commit merge: !4484 merge master into master [BugFix][MhcPreBackward]: MhcPreBackward kernel代码中uint64_t变量存在被截断风险和使用未初始化MaskReg会造成偶现的精度问题 Created-by: ZhangWei1176 Commit-by: ZhangW;TLE_xtx Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> MhcPreBackward kernel代码中, (1)uint64_t数据类型的变量存在被截断风险,从而导致精度出错,因为某些AscendC API的参数只支持为uint32_t数据类型; (2)使用未初始化MaskReg会造成偶现的精度问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [Bug-Report|缺陷反馈 MhcPreBackward kernel代码中uint64_t变量存在被截断风险和使用未初始化MaskReg会造成偶现的精度问题](https://gitcode.com/cann/ops-transformer/issues/2000) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 使用新精度2.1标准进行测试,通过边界测试和泛化测试。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了mhc/mhc_pre_backward/docs/aclnnMhcPreBackward.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!44841 个月前
[PLZ]新增MhcPreBackward算子 Co-authored-by: AmadeusAlex<jackson1@huawei.com> Co-authored-by: pppipipipi<renguiping@huawei.com> Co-authored-by: liweijian16<liweijian16@huawei.com> Co-authored-by: hyhhh14<huangyuehua6@huawei.com> Co-authored-by: steppecat<liangyu62@huawei.com> Co-authored-by: ZhangW<zhangwei1176@huawei.com> Co-authored-by: TLE_xtx<xiaotianxiang@h-partners.com> # message auto-generated for no-merge-commit merge: !3916 merge mhc_pre_backward into master [PLZ]新增MhcPreBackward算子 Created-by: liweijian16 Commit-by: liweijian16;ZhangWei1176;steppecat;hyhhh14;LiWeiJian16;AmadeusAlex;TLE_xtx;pppipipipi;ZhangW Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增支持MhcPreBackward算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> (https://gitcode.com/cann/ops-transformer/issues/1917) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 使用新精度2.1标准进行测试,通过网络用例、L2级用例、STC用例 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了docs/zh/op_list.md、docs/zh/op_list.md文件,新增mhc/mhc_pre_backward/README.md、mhc/mhc_pre_backward/docs/aclnnMhcPreBackward.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!39161 个月前
[PLZ]新增MhcPreBackward算子 Co-authored-by: AmadeusAlex<jackson1@huawei.com> Co-authored-by: pppipipipi<renguiping@huawei.com> Co-authored-by: liweijian16<liweijian16@huawei.com> Co-authored-by: hyhhh14<huangyuehua6@huawei.com> Co-authored-by: steppecat<liangyu62@huawei.com> Co-authored-by: ZhangW<zhangwei1176@huawei.com> Co-authored-by: TLE_xtx<xiaotianxiang@h-partners.com> # message auto-generated for no-merge-commit merge: !3916 merge mhc_pre_backward into master [PLZ]新增MhcPreBackward算子 Created-by: liweijian16 Commit-by: liweijian16;ZhangWei1176;steppecat;hyhhh14;LiWeiJian16;AmadeusAlex;TLE_xtx;pppipipipi;ZhangW Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增支持MhcPreBackward算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> (https://gitcode.com/cann/ops-transformer/issues/1917) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 使用新精度2.1标准进行测试,通过网络用例、L2级用例、STC用例 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了docs/zh/op_list.md、docs/zh/op_list.md文件,新增mhc/mhc_pre_backward/README.md、mhc/mhc_pre_backward/docs/aclnnMhcPreBackward.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!39161 个月前
[PLZ]新增MhcPreBackward算子 Co-authored-by: AmadeusAlex<jackson1@huawei.com> Co-authored-by: pppipipipi<renguiping@huawei.com> Co-authored-by: liweijian16<liweijian16@huawei.com> Co-authored-by: hyhhh14<huangyuehua6@huawei.com> Co-authored-by: steppecat<liangyu62@huawei.com> Co-authored-by: ZhangW<zhangwei1176@huawei.com> Co-authored-by: TLE_xtx<xiaotianxiang@h-partners.com> # message auto-generated for no-merge-commit merge: !3916 merge mhc_pre_backward into master [PLZ]新增MhcPreBackward算子 Created-by: liweijian16 Commit-by: liweijian16;ZhangWei1176;steppecat;hyhhh14;LiWeiJian16;AmadeusAlex;TLE_xtx;pppipipipi;ZhangW Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增支持MhcPreBackward算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> (https://gitcode.com/cann/ops-transformer/issues/1917) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 使用新精度2.1标准进行测试,通过网络用例、L2级用例、STC用例 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了docs/zh/op_list.md、docs/zh/op_list.md文件,新增mhc/mhc_pre_backward/README.md、mhc/mhc_pre_backward/docs/aclnnMhcPreBackward.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!39161 个月前
README.md

MhcPreBackward

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品 ×
Atlas A2 训练系列产品/Atlas A2 推理系列产品 ×
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×

功能说明

  • 算子功能MhcPreBackwardMhcPre 的反向算子,用于计算 mHC(Manifold-Constrained Hyper-Connections)结构中的反向梯度。

  • 主要输出gradXgradPhigradAlphagradBias,以及在 gamma != nullptr 时输出 gradGamma

  • 前向缓存依赖invRmshMixhPrehPost

  • 可选输入gammagradXPostOptional

  • 计算公式

    gradX=∇x(MhcPre(x,ϕ,α,γ))gradPhi=∇ϕ(MhcPre(x,ϕ,α,γ))gradAlpha=∇α(MhcPre(x,ϕ,α,γ))gradBias=∇bias(MhcPre(x,ϕ,α,γ))\begin{aligned} gradX &= \nabla_{x}(\text{MhcPre}(x, \phi, \alpha, \gamma)) \\ gradPhi &= \nabla_{\phi}(\text{MhcPre}(x, \phi, \alpha, \gamma)) \\ gradAlpha &= \nabla_{\alpha}(\text{MhcPre}(x, \phi, \alpha, \gamma)) \\ gradBias &= \nabla_{bias}(\text{MhcPre}(x, \phi, \alpha, \gamma)) \end{aligned}

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x 输入 mHC层输入数据。 BFLOAT16、FLOAT16 ND
phi 输入 mHC参数矩阵。 FLOAT32 ND
alpha 输入 mHC缩放参数。 FLOAT32 ND
grad_h_in 输入 对h_in的梯度。 BFLOAT16、FLOAT16 ND
grad_h_post 输入 对h_post的梯度。 FLOAT32 ND
grad_h_res 输入 对h_res的梯度。 FLOAT32 ND
inv_rms 输入 前向缓存的inv_rms。 FLOAT32 ND
h_mix 输入 前向缓存的h_mix。 FLOAT32 ND
h_pre 输入 前向缓存的h_pre。 FLOAT32 ND
h_post 输入 前向缓存的h_post。 FLOAT32 ND
gamma 可选输入 RMSNorm缩放因子。 FLOAT32 ND
grad_x_post 可选输入 来自后续路径的grad_x累加项。 BFLOAT16、FLOAT16 ND
hc_eps 属性 h_pre sigmoid后使用的eps参数。 FLOAT32 -
grad_x 输出 x的梯度。 BFLOAT16、FLOAT16 ND
grad_phi 输出 phi的梯度。 FLOAT32 ND
grad_alpha 输出 alpha的梯度。 FLOAT32 ND
grad_bias 输出 bias整体梯度。 FLOAT32 ND
grad_gamma 可选输出 gamma的梯度。 FLOAT32 ND

约束说明

  • N 当前仅支持 468 三种取值。
  • D 支持 1~16384,且需满足 64 元素对齐。

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_mhc_pre_backward.cpp 通过aclnnMhcPreBackward 接口方式调用MhcPreBackward算子。