文件最后提交记录最后更新时间
切换最低兼容版本为CANN 8.5.0;使用AscendC CMake构建系统编译 Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !461 merge asc into master 切换最低兼容版本为CANN 8.5.0;使用AscendC CMake构建系统编译 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 适配asc+CMake编译系统。 2. 对于适配的调试特性(DumpTensor),在新编译系统引入后不再需要,去除相关代码,相关编译选项添加Warning。 3. 更新对应相关文档。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue --> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!4611 个月前
文档新增中英文目录、低错整改,及代码实践类文档更新 Co-authored-by: sunhao_hw<sunhao203@huawei.com> # message auto-generated for no-merge-commit merge: !555 merge docs into master 文档新增中英文目录、低错整改,及代码实践类文档更新 Created-by: sunhao_hw Commit-by: sunhao_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - docs下新增zh和en目录,原始文档迁移到zh下 - 仓内文档的批量低错整改 - docs/zh/01_Practice下补充完善部分文档 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!5551 个月前
部分codecheck错误修正 Co-authored-by: longjihui<longjihui@huawei.com> # message auto-generated for no-merge-commit merge: !565 merge fix_aicheck into master 部分codecheck错误修正 Created-by: longjihui Commit-by: longjihui Merged-by: cann-robot Description: ## 描述 1. 修复部分样例在ACL_CHECK宏定义展开时会出现aclError error =aclrtMalloc(...);;两个分号的语法错误 2. 修复gemv的aiv部分尾块未正确修正的问题 3. 修复样例19的tp1_spec分支P和S offset计算结果的数据类型 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!5651 个月前
README.md

950_grouped_matmul_slice_m_per_token_dequant Example Readme

代码组织

├── 47_ascend950_grouped_matmul_slice_m_per_token_dequant
│   ├── CMakeLists.txt     # CMake编译文件
│   ├── README.md
│   └── grouped_matmul_slice_m_per_token_dequant_tla.cpp # 主文件

功能介绍

该CV融合算子实现了在ascend950上的分组矩阵乘法(Grouped Matmul)与反量化(dequant)操作。主要解决了高效执行分组、切片(M轴)矩阵乘法,并融合per-token和per-channel反量化操作的需求。

方案概述

  1. 新增GroupedMatmulSliceMPerTokenTla模板类(Kernel),通过BlockMmadEpilogueScheduler,支持对一组groupCount的矩阵进行反量化计算。
  2. 为Ascend950新增了Epilogue模板EpilogueAscend950PerTokenDequantTla,实现了从GM加载量化系数、在同一UB执行反量化计算。
  3. 为Ascend950新增了高性能反量化计算的Tile模板TilePerTokenDequant

参数说明

名称/Name 类型/Class 数据类型/Dtype 维度/Dims 格式/Format 描述/Description
matA inTensor int8 [m, k] ND 左矩阵
matB inTensor int8 [groupCount, n, k] ND 右矩阵,支持转置
groupList inTensor int32 [groupCount] ND m轴方向分组大小,累加和列表
scale inTensor bf16/fp16/fp32 [groupCount, n] ND perChannel量化系数
perToken inTensor bf16/fp16/fp32 [m] ND perToken量化系数
matD outTensor bf16/fp16/fp32 [m, n] ND 输出矩阵

使用示例

  • 获取代码之后编译相应的算子可执行文件,可参考quickstart,本用例为Ascend950算子,编译时需加-DCATLASS_ARCH=3510
  • 执行算子
# 编译指定用例
bash scripts/build.sh 47_ascend950_grouped_matmul_slice_m_per_token_dequant -DCATLASS_ARCH=3510
cd output/bin
# 可执行文件名|group数量|矩阵m轴|n轴|k轴|Device ID
# group数量及矩阵m轴、n轴、k轴维度必须大于0
# Device ID可选,默认为0
./47_ascend950_grouped_matmul_slice_m_per_token_dequant 128 512 1024 2048 0

执行结果如下,说明精度比对成功。

Compare success.