文件最后提交记录最后更新时间
修改mm/bmm16进32出的资料和UT Co-authored-by: szhexin<shangzhexin@huawei.com> # message auto-generated for no-merge-commit merge: !4348 merge addutandfix into master 修改mm/bmm16进32出的资料和UT Created-by: szhexin Commit-by: szhexin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->修改matmul/batchmatmul支持16进32出的资料和增加UT,同时修改review意见 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->Issue #2411 ## 测试 <!--描述进行了哪些测试来验证你的改动。-->不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> matmul/batch_mat_mul_v3/docs/aclnnBatchMatMul.md matmul/batch_mat_mul_v3/docs/aclnnBatchMatMulWeightNz.md matmul/mat_mul_v3/docs/aclnnAddmm&aclnnInplaceAddmm.md matmul/mat_mul_v3/docs/aclnnAddmmWeightNz.md matmul/mat_mul_v3/docs/aclnnMatmulWeightNz.md matmul/mat_mul_v3/docs/aclnnMm.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!43481 个月前
BF16转FLOAT资料修改 Co-authored-by: jgx12<jingaoxiang@huawei.com> # message auto-generated for no-merge-commit merge: !3862 merge tbmm_docs into master BF16转FLOAT资料修改 Created-by: jgx12 Commit-by: jgx12 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复了多个C++测试文件中BF16(Brain Floating Point 16)到单精度浮点数(float)转换函数的逻辑错误。原代码在处理非规格化(denormalized)BF16数值时,使用了错误的计算公式 (1.0f / (1, 127))。该表达式误用了C++逗号运算符,导致分母计算错误,使得非规格化数的转换结果不准确,影响了相关测试的可靠性。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2098 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 无 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> matmul/transpose_quant_batch_mat_mul/docs/aclnnTransposeQuantBatchMatMul.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!38621 个月前
Arch编码更新 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !1116 merge ut_test into master Arch编码更新 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 Arch编码更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11163 个月前
修复bmm算子偶现ut错误 Co-authored-by: jgx12<jingaoxiang@huawei.com> # message auto-generated for no-merge-commit merge: !5345 merge change_needNdDma into master 修复bmm算子偶现ut错误 Created-by: jgx12 Commit-by: jgx12 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> tiling侧的tilingdata数据按照uint32位读取,会导致读取布尔类型数据时,若数据存在脏数据,会出现UT失败的问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2713 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ![image.png](https://raw.gitcode.com/user-images/assets/7665709/928a4bba-d996-4b78-8988-9ccf75990157/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!534515 小时前
fix: correct FRACTAL_NZ B GM offset and downgrade einsum tiling log level Co-authored-by: void_ptr<baochaojun@huawei.com> # message auto-generated for no-merge-commit merge: !5354 merge master into master fix: correct FRACTAL_NZ B GM offset and downgrade einsum tiling log level Created-by: void_ptr Commit-by: void_ptr Merged-by: cann-robot Description: ## 描述 本 PR 包含两处改动: ### 1. 修复 batch_mat_mul_v3 B 矩阵 FRACTAL_NZ 的 GM 偏移计算错误 **问题:** 在 910B legacy kernel 路径(batch_mat_mul_v3_com_base_block.h)中,BatchMatMulCommonBaseBlock::CalcBOffset 的 **B=FRACTAL_NZ** 分支使用 baseN 计算 N 方向 stride,而同文件 **B=ND** 分支及 mat_mul_v3 的对应实现均使用 singleCoreN。当 tiling 使 singleCoreN > baseN(例如 AL1 full-load,tiling key 65792,N 方向多块切分)时,B 矩阵 GM 地址计算错误,导致计算结果不正确;B=ND 时结果正常。 **修复:** 将 NZ 分支中 nCntIndex 的 stride 从 baseN 改为 singleCoreN,与 ND 路径及 mat_mul_v3/op_kernel/mat_mul_base_block.h 保持一致。 **影响范围:** 910B(NPU_ARCH=2201 / ascend910b)legacy kernel 路径;涉及 B 为 FRACTAL_NZ 格式的 batch matmul 场景。 ### 2. 调整 transpose_batch_mat_mul einsum tiling 日志级别 **问题:** GetCloseKShiftFlag 中,当 GetDeterministicLevel() 返回 INT32_MAX(表示获取失败)时,代码会 fallback 返回 false,属于可恢复的非致命路径,但使用了 OP_LOGE 打印错误日志,容易误报。 **修复:** 将该处日志从 OP_LOGE 降级为 OP_LOGW,与实际语义(warning + fallback)一致。 ## 关联的Issue [#2935](https://gitcode.com/cann/ops-nn/issues/2935) [#2936](https://gitcode.com/cann/ops-nn/issues/2936) ## 测试 ## 文档更新 无文档变更。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!535412 小时前
enable A2/A3 16in32out for mm and bmm Co-authored-by: cann-robot<cann@cann.team> # message auto-generated for no-merge-commit merge: !5234 merge revert-mr-4823-1779713772815-auto into master enable A2/A3 16in32out for mm and bmm Created-by: cann-robot Commit-by: cann-robot Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!52347 天前
代码同步 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !450 merge master into master 代码同步 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4505 个月前
修改doc tools低错 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !4214 merge master into master 修改doc tools低错 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改nn仓的markdown语法、htlm是否闭合、链接是否可以正常跳转、本地链接是否正常跳转修改低错修改 ## 关联的Issue 关联Issue [#1783](https://gitcode.com/cann/ops-nn/issues/1783) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 全部文档的链接跳转、htlm标签闭合、markdown语法规范问题 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [X] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!42141 个月前
README.md

BatchMatMulV3

产品支持情况

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

功能说明

  • 算子功能:完成带batch的矩阵乘计算。

  • 计算公式:

    out=self@mat2+biasout = self@mat2 + bias

    其中,selfselfmat2mat2 输入维度支持2~6维,最后两维做矩阵乘计算。例如,selfselfmat2mat2 输入维度分别为(B,M,K)(B, M, K)(B,K,N)(B, K, N) 时,outout 维度为 (B,M,N)(B, M, N)biasbias 是维度为(B,1,N)(B, 1, N)的向量。其中,B为矩阵乘法的batch数,M为第一个张量selfself的行数和输出张量outout的行数,N为第二个张量mat2mat2的列数和输出张量outout的列数,K为第一个张量selfself的列数和第二个张量mat2mat2的行数。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
self 输入 矩阵乘运算中的左矩阵。 FLOAT16、BFLOAT16、FLOAT32 ND、FRACTAL_NZ
mat2 输入 矩阵乘运算中的右矩阵。 FLOAT16、BFLOAT16、FLOAT32 ND、FRACTAL_NZ
bias 输入 矩阵乘运算后累加的偏置,对应公式中的bias。 FLOAT16、BFLOAT16、FLOAT32 ND
out 输出 通用矩阵乘运算的计算结果。 FLOAT16、BFLOAT16、FLOAT32 ND、FRACTAL_NZ
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品、Atlas A3 训练系列产品/Atlas A3 推理系列产品:bias不支持BFLOAT16数据格式。
  • Atlas 推理系列产品:只支持FLOAT16数据格式,输入mat2只支持FRACTAL_NZ格式。
  • Kirin X90/Kirin 9030处理器系列产品:不支持BFLOAT16、FLOAT32。

约束说明

  • 支持空tensor,空tensor场景下不支持bias。
  • 支持连续tensor,非连续tensor只支持转置场景。

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_batchmatmul 通过
aclnnAddbmm&aclnnInplaceAddbmm
aclnnBaddbmm&aclnnInplaceBaddbmm
aclnnBatchMatMul
aclnnBatchMatMulWeightNz
等方式调用BatchMatMulV3算子。