文件最后提交记录最后更新时间
增加matmulAllReduceAddRmsNorm废弃声明 Co-authored-by: 张子渊<zhangziyuan9@h-partners.com> # message auto-generated for no-merge-commit merge: !3728 merge master into master 增加matmulAllReduceAddRmsNorm废弃声明 Created-by: SuperYuan Commit-by: 张子渊 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为即将日落的MatmulAllReduceAddRmsNorm算子增加编译告警 在编译时和第一次运行时,编译器给废弃接口提示告警,告警内容包含推荐替换的接口。 为废弃接口做准备,给用户更完整的接口信息,推荐用户使用正式接口。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> Issue [#1667](https://gitcode.com/cann/ops-transformer/issues/1667) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [x] ❓ 其他,请描述:废弃声明 See merge request: cann/ops-transformer!37281 个月前
mc2 docs fix Co-authored-by: caoqiku<caoqiku1@h-partners.com> # message auto-generated for no-merge-commit merge: !4070 merge mc2_docs_fix into master mc2 docs fix Created-by: cqk1107 Commit-by: caoqiku Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> mc2算子文档更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!40701 个月前
增加matmulAllReduceAddRmsNorm废弃声明 Co-authored-by: 张子渊<zhangziyuan9@h-partners.com> # message auto-generated for no-merge-commit merge: !3728 merge master into master 增加matmulAllReduceAddRmsNorm废弃声明 Created-by: SuperYuan Commit-by: 张子渊 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为即将日落的MatmulAllReduceAddRmsNorm算子增加编译告警 在编译时和第一次运行时,编译器给废弃接口提示告警,告警内容包含推荐替换的接口。 为废弃接口做准备,给用户更完整的接口信息,推荐用户使用正式接口。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> Issue [#1667](https://gitcode.com/cann/ops-transformer/issues/1667) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [x] ❓ 其他,请描述:废弃声明 See merge request: cann/ops-transformer!37281 个月前
move fallback files to op graph lib Co-authored-by: liusixia<liusixia@h-partners.com> # message auto-generated for no-merge-commit merge: !4133 merge master into master move fallback files to op graph lib Created-by: liusixia_gitcode Commit-by: liusixia Merged-by: cann-robot Description: ## 描述 动态图相关:仓内aclnn回调的fallback文件,在内置工程(built-in pkg)下,由ophost.so 改为编入opgraph.so中;自定义工程(custom pkg)下,保持不变。 其中,mc2算子的fallback文件当前均include了依赖tiling的头文件(mc2_log.h),统一将其与tiling解耦,使用mc2_common_log.h。 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/1844 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!41331 个月前
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 天前
mc2算子op_kernel代码文件代际隔离 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !1830 merge agmv2_csv into master mc2算子op_kernel代码文件代际隔离 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!183010 天前
新增matmul_all_reduce_add_rms_norm、matmul_reduce_scatter、matmul_reduce_scatter_v2算子UT用例 Co-authored-by: lixiawei<lixiawei2@h-partners.com> # message auto-generated for no-merge-commit merge: !5702 merge add_case_0518 into master 新增matmul_all_reduce_add_rms_norm、matmul_reduce_scatter、matmul_reduce_scatter_v2算子UT用例 Created-by: lixiawei Commit-by: lixiawei Merged-by: cann-robot Description: ## 描述 新增matmul_all_reduce_add_rms_norm、matmul_reduce_scatter、matmul_reduce_scatter_v2算子UT用例,增加覆盖率 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: ## 代码检视报告 项目名称:ops-transformer UT 用例检视报告 检视模块:mc2/matmul_all_reduce_add_rms_norm, mc2/matmul_reduce_scatter, mc2/matmul_reduce_scatter_v2 下的 9 个 UT 文件 检视人:Turing Team 检视日期:2026-05-21 提交:8cfaa1ca "add ut case" --- 检视概览 ┌────────────────────────┬──────┐ │ 统计项 │ 数值 │ ├────────────────────────┼──────┤ │ 发现问题总数 │ 0 个 │ ├────────────────────────┼──────┤ │ 严重级(CRITICAL)问题 │ 0 个 │ ├────────────────────────┼──────┤ │ 中等级(MEDIUM)问题 │ 0 个 │ ├────────────────────────┼──────┤ │ 轻微级(LOW)问题 │ 0 个 │ └────────────────────────┴──────┘ 检视类别:C++ 安全编码规范(cpp-secure.md)+ C++ 通用编码规范(cpp-general.md) 核心结论:本次提交全部为 UT 测试代码(op_api / op_host),涉及 matmul_all_reduce_add_rms_norm、matmul_reduce_scatter、matmul_reduce_scatter_v2 三个算子的单元测试补充。经逐条对照 Host 侧红线规范和安全编码规范,未发现需修复的安全问题。 See merge request: cann/ops-transformer!57027 天前
mc2新特性开发 Co-authored-by: xutianze<xutianze2@huawei.com> # message auto-generated for no-merge-commit merge: !500 merge feature_mc2 into master mc2新特性开发 Created-by: xutianze Commit-by: xutianze Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!5005 个月前
MC2算子资料完善 Co-authored-by: lyt_claire<luyitong1@huawei.com> # message auto-generated for no-merge-commit merge: !2997 merge mc2AIDD into master MC2算子资料完善 Created-by: lyt_claire Commit-by: lyt_claire Merged-by: cann-robot Description: ## 描述 修改MC2相关算子资料和示例代码 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [X] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!29971 个月前
README.md

MatmulAllReduceAddRmsNorm

产品支持情况

产品 是否支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品 x
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

  • 算子功能:完成mm + all_reduce + add + rms_norm计算。

  • 计算公式:

  • 情景一:

    mm_out=allReduce(x1@x2+bias)mm\_out = allReduce(x1 @ x2 + bias)

    y=mm_out+residualy = mm\_out + residual

    normOut=yRMS(y)∗gamma,RMS(y)=1d∑i=1dyi2+epsilonnormOut = \frac{y}{RMS(y)} * gamma, RMS(y) = \sqrt{\frac{1}{d} \sum_{i=1}^{d} y_{i}^{2} + epsilon}

  • 情景二:

    mmout=allReduce(dequantscale∗(x1int8@x2int8+biasint32))mm_out = allReduce(dequant_scale * (x1_{int8}@x2_{int8} + bias_{int32}))

    y=mmout+residualy = mm_out + residual

    normOut=yRMS(y)∗gamma,RMS(y)=1d∑i=1dyi2+epsilonnormOut = \frac{y}{RMS(y)} * gamma, RMS(y) = \sqrt{\frac{1}{d} \sum_{i=1}^{d} y_{i}^{2} + epsilon}

  • 情景三:

    mm_out=allReduce(x1@(x2∗antiquantscale+antiquantoffset)+bias)mm\_out = allReduce(x1 @ (x2*antiquant_scale + antiquant_offset) + bias)

    y=mm_out+residualy = mm\_out + residual

    normOut=yRMS(y)∗gamma,RMS(y)=1d∑i=1dyi2+epsilonnormOut = \frac{y}{RMS(y)} * gamma, RMS(y) = \sqrt{\frac{1}{d} \sum_{i=1}^{d} y_{i}^{2} + epsilon}

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x1 输入 MatMul左矩阵,即公式中的输入x1。 FLOAT16、BFLOAT16、INT8 ND
x2 输入 MatMul右矩阵,即公式中的输入x2。 FLOAT16、BFLOAT16、INT8、INT4 ND
bias 可选输入 Matmul计算之后的Add项,即公式中的输入bias。 FLOAT16、BFLOAT16、INT32 ND
residual 输入 AddRmsNorm融合算子的残差输入,即公式中的输入residual。 FLOAT16、BFLOAT16 ND
gamma 输入 AddRmsNorm融合算子的RmsNorm计算输入,即公式中的输入gamma。 FLOAT16、BFLOAT16 ND
antiquant_scale 可选输入 公式中的输入antiquant_scale。 FLOAT16、BFLOAT16 ND
antiquant_offset 可选输入 对x2进行伪量化计算的offset参数,公式中的输入antiquant_offset。 FLOAT16、BFLOAT16 ND
dequant_scale 可选输入 mm计算后的全量化系数,公式中的输入dequant_scale。 FLOAT16、BFLOAT16、UINT64、INT64 ND
y 输出
  • mm + all_reduce + add的结果。
FLOAT16、BFLOAT16 ND
norm_out 输出
  • 公式中的输出norm_out。
  • mm + all_reduce + add + rms_norm的结果。
FLOAT16、BFLOAT16 ND
group 属性
  • 通信域名称。
  • 通过Hccl提供的接口“extern HcclResult HcclGetCommName(HcclComm comm, char* commName);”获取,其中commName即为group。
CHAR*、STRING -
reduceOp 可选属性
  • reduce操作类型。
  • 默认值为"sum"。
CHAR*、STRING -
is_trans_a 可选属性
  • 决定x1是否执行矩阵乘前进行转置。
  • 默认值为false。
BOOL -
is_trans_b 可选属性
  • 决定x2是否执行矩阵乘前进行转置。
  • 默认值为false。
  • BOOL -
    commTurn 可选属性
    • 通信数据切分数,即总数据量/单次通信量。
    • 默认值为0。
    INT64 -
    antiquant_group_size 可选属性
    • 伪量化pergroup模式下,对x2进行反量化计算的groupSize输入。
    • 默认值为0。
    INT64 -
    epsilon 可选属性
    • 用于防止除0错误,即公式中的输入epsilon。
    • epsilon取值满足取值范围(0,1)。
    • 默认值为1e-6。
    DOUBLE -

    约束说明

    • 增量场景不使能MC2,全量场景使能MC2
    • 输入x1可为二维或者三维,其shape为(b, s, k)或者(s, k)。x2必须是二维,其shape为(k, n),轴满足mm算子入参要求,k轴相等,m的范围为[1, 2147483647],k的范围为[1, 65535],n的范围为[0, 65535]。bias若非空,bias为一维,其shape为(n)。bias可选,可为空,非空时当前版本仅支持一维输入。
    • 输入residual必须是三维,其shape为(b, s, n),当x1为二维时,residual的(b*s)等于x1的s,不支持非连续的tensor。输入gamma必须是一维,其shape为(n),不支持非连续的tensor。
    • antiquant_scale满足pertensor场景shape为(1),perchannel场景shape为(1,n)/(n),pergroup场景shape为(ceil(k,antiquant_group_size),n)。antiquant_offset可选,可为空,非空时shape与antiquant_scale一致。
    • dequant_scale的shape在pertensor场景为(1),perchannel场景为(n)/(1, n)。
    • 输出y和normOut的维度和数据类型同residual。bias若非空,shape大小与normOut最后一维相等。
    • bias、residual、gamma、y、normOut计算输入的数据类型要一致。
    • antiquant_group_size在不支持pergroup场景时,传入0,在支持pergroup场景时,传入值的范围为[32, min(k-1,INT_MAX)],且为32的倍数。k取值范围与mm接口保持一致。
    • 支持(b*s)、n为0的空tensor,不支持k为0的空tensor。
    • 只支持x2矩阵转置/不转置,x1矩阵支持不转置场景。
    • 属性reduceOp当前版本仅支持输入"sum"。
    • 属性commTurn当前版本仅支持输入0。
    • 支持1、2、4、8卡,并且仅支持hccs链路all mesh组网。
    • Atlas A2 训练系列产品/Atlas A2 推理系列产品:一个模型中的通算融合MC2算子,仅支持相同通信域。类型要一致。

    调用说明

    调用方式 样例代码 说明
    aclnn接口 test_aclnn_matmul_all_reduce_add_rms_norm.cpp 通过aclnnMatmulAllReduceAddRmsNorm接口方式调用MatmulAllReduceAddRmsNorm算子。