文件最后提交记录最后更新时间
sc debug Co-authored-by: zdy1205<zhaodeyang@hisilicon.com> # message auto-generated for no-merge-commit merge: !3900 merge master into master sc debug Created-by: zdy1205 Commit-by: zdy1205 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/1811 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!39001 个月前
mv grouped matmul to mc2 directory Co-authored-by: wang-minbo<wangminbo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !1335 merge master into master mv grouped matmul to mc2 directory Created-by: wang-minbo Commit-by: wang-minbo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->mv grouped matmul to mc2 directory ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->https://gitcode.com/cann/ops-transformer/issues/672 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!13353 个月前
【MC2】修改mc2的aclnninner调用方式 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !3660 merge master_inner into master 【MC2】修改mc2的aclnninner调用方式 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 【MC2】修改mc2的aclnninner调用方式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!36601 个月前
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 个月前
[MC2] tiling代码芯片隔离 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !2878 merge tiling_soc_iso into master [MC2] tiling代码芯片隔离 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 对MC2的tiling编译进行芯片隔离,减少编译时间。在编包时先根据soc找到对应的arch,然后编译对应arch文件夹下面的cpp,其他arch文件夹不会编译 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/1692 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!28781 个月前
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!183014 天前
修改mc2目录下的arch32为arch22 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !4314 merge change_A2A3_arch into master 修改mc2目录下的arch32为arch22 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 修改mc2目录下的arch32为arch22 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!43141 个月前
mv grouped matmul to mc2 directory Co-authored-by: wang-minbo<wangminbo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !1335 merge master into master mv grouped matmul to mc2 directory Created-by: wang-minbo Commit-by: wang-minbo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->mv grouped matmul to mc2 directory ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->https://gitcode.com/cann/ops-transformer/issues/672 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!13353 个月前
doc Tools扫描问题修改 Co-authored-by: gitee-yanglulu<yanglulul@h-partners.com> # message auto-generated for no-merge-commit merge: !3415 merge master into master doc Tools扫描问题修改 Created-by: gitee-yanglulu Commit-by: gitee-yanglulu Merged-by: cann-robot Description: doc Tools扫描问题修改 See merge request: cann/ops-transformer!34152 个月前
README.md

GroupedMatMulAllReduce

注意: 本文档仅仅是算子功能的简介,不支持用户直接调用,因为当前不支持kernel直调,等后续支持再完善文档!!!!!!

该接口后续版本会废弃,请不要使用该接口。

产品支持情况

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

功能说明

算子功能:在grouped_matmul的基础上实现多卡并行AllReduce功能,实现分组矩阵乘计算,每组矩阵乘的维度大小可以不同。根据x、weight、y的Tensor数量支持如下4种场景:

  • x、weight、y的Tensor数量等于组数,即每组的数据对应的Tensor是独立的。
  • x的Tensor数量为1,weight/y的Tensor数量等于组数,此时需要通过可选参数group_list说明x在行上的分组情况,如group_list[0]=10说明x的前10行参与第一组矩阵乘计算。
  • x、weight的Tensor数量等于组数,y的Tensor数量为1,此时每组矩阵乘的结果放在同一个Tensor中连续存放。
  • x、y的Tensor数量为1,weight数量等于组数,属于前两种情况的组合。

计算公式: 非量化场景:

yi=xi×weighti+biasiy_i=x_i\times weight_i + bias_i

参数说明

参数名 输入/输出 描述 数据类型 数据格式
x 输入 必选参数,Device侧的aclTensorList,公式中的输入x,支持的最大长度为64个。 FLOAT16、BFLOAT16(列表内张量数据类型) ND
weight 输入 必选参数,Device侧的aclTensorList,公式中的weight,支持的最大长度为64个。 FLOAT16、BFLOAT16(列表内张量数据类型) ND
bias 输入 可选参数,Device侧的aclTensorList,公式中的bias,支持的最大长度为64个。 FLOAT16、FLOAT32(列表内张量数据类型) ND
groupListOptional 输入 可选参数,Host侧的aclIntArray类型,代表输入和输出M方向的matmul大小分布,支持的最大长度为64个。 INT64(数组元素类型) ND
splitItem 输入 可选属性,代表输入和输出是否要做tensor切分:0(默认)=输入输出都不切分;1=输入切分、输出不切分;2=输入不切分、输出切分;3=输入输出都切分。 INT64 ND
group 输入 Host侧标识列组的字符串,即通信域名称,通过Hccl接口HcclGetCommName获取commName作为该参数。 STRING ND
reduceOp 输入 reduce操作类型,当前版本仅支持输入"sum"。 STRING ND
commTurn 输入 Host侧整型,通信数据切分数(总数据量/单次通信量),当前版本仅支持输入0。 INT64 ND
streamMode 输入 Host侧整型,acl流模式的枚举,当前只支持值1。 INT64 ND
y 输出 Device侧的aclTensorList,公式中的输出y,支持的最大长度为64个。 FLOAT16、BFLOAT16(列表内张量数据类型) ND

约束说明

  • 数据类型组合约束:x、weight、bias支持的数据类型组合为:
    • “x-FLOAT16、weight-FLOAT16、bias-FLOAT16”
    • “x-BFLOAT16、weight-BFLOAT16、bias-FLOAT32”
  • 维度约束:
    • 当splitItem为0时,x支持2-6维,y支持2-6维;
    • 当splitItem为1/2/3时,x支持2维,y支持2维;
    • 无论splitItem取值如何,weight均支持2维。
  • 设备数量约束:支持2、4、8卡部署。
  • 张量维度大小约束:
    • x和weight中每一组tensor的最后一维大小都应小于65536(x的最后一维:transpose_x为false时指K轴,为true时指M轴;weight的最后一维:transpose_weight为false时指N轴,为true时指K轴)。
    • x和weight中每一组tensor的每一维大小在32字节对齐后都应小于int32最大值(2147483647)。

调用说明

调用方式 样例代码 说明
aclnn接口 test_grouped_mat_mul_all_reduce.cpp 通过aclnnGroupedMatMulAllReduce接口方式调用grouped_mat_mul_all_reduce算子。