文件最后提交记录最后更新时间
切换最低兼容版本为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: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !545 merge doc into master 文档错误修改 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 详见AI评论 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> #149 #150 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!5451 个月前
更新BasicMatmul的算子IR描述 Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> # message auto-generated for no-merge-commit merge: !402 merge br_update_ir into master 更新BasicMatmul的算子IR描述 Created-by: init__zhb__ Commit-by: zhanghaobo;init__zhb__ Merged-by: cann-robot Description: ## 描述 更新算子IR描述,添加参数类型映射表以便参考。 ## 关联的Issue ## 原因 更新算子IR描述。 ## 测试 不同参数类型的可特化验证及精度验证,如: ```bash # ./00_basic_matmul <mode> <m> <n> <k> <deviceId> # mode:21 for ElementA: bfloat16_t, ElementB: bfloat16_t, ElementC: float $ ./00_basic_matmul 21 893 513 1027 0 Mode:21 M: 893, N: 513, K: 1027 Device: 0 bfloat16 float Compare success. ``` > 为便于上述测试接口参数有一定调整,这些修改不带入PR中 ## 文档更新 更新了examples/00_basic_matmul/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!4025 个月前
README.md

BasicMatmul Example Readme

功能说明

  • 算子功能:完成基础矩阵乘计算

  • 计算公式:

    C=A×BCi,j=ΣkAi,kBk,j \begin{aligned} C &= A \times B \\ C_{i,j} &= \Sigma_{k} A_{i,k}B_{k,j} \end{aligned}

    其中AABB分别是形如(m,k)(k,n)的输入矩阵,CC是形如(m,n)的输出矩阵。

参数说明

以下是本样例的运行参数:

参数名 描述 约束
m 矩阵乘中左矩阵A的行 -
n 矩阵乘中右矩阵B的列 -
k 矩阵乘中左矩阵A的列
(也即右矩阵的行数)
-
deviceId 使用的NPU卡ID(默认0) 在设备NPU有效范围内

BasicMatmul所涉及的关键模板参数如下:

模板参数 说明 有效范围
ElementA 左矩阵的数据类型 float | fp16_t | bfloat16_t | int8_t
ElementB 右矩阵的数据类型 float | fp16_t | bfloat16_t | int8_t
ElementC 结果矩阵的数据类型 float | fp16_t | bfloat16_t | int8_t
LayoutA 左矩阵的排布方式 layout::RowMajor | layout::ColumnMajor
LayoutB 右矩阵的排布方式 layout::RowMajor | layout::ColumnMajor
LayoutC 结果矩阵的排布方式 layout::RowMajor

约束说明

左、右矩阵及结果矩阵的类型应满足下述类型映射条件。

ElementA ElementB ElementC
float float float | fp16_t | bfloat16_t
fp16_t fp16_t float | fp16_t | bfloat16_t
bfloat16_t bfloat16_t float | fp16_t | bfloat16_t
int8_t int8_t int32_t

代码组织

├── 00_basic_matmul
│   ├── CMakeLists.txt   # CMake编译文件
│   ├── README.md
│   └── basic_matmul.cpp # 主文件

使用示例

  1. 编译样例代码,并编译生成相应的算子可执行文件。
bash scripts/build.sh 00_basic_matmul
  1. 切换到可执行文件的编译目录output/bin下,执行算子样例程序。测试样例数据随机生成,尺寸从命令行输入。
cd output/bin
./00_basic_matmul 256 512 1024 0

• 256:矩阵m轴

• 512:n轴

• 1024:k轴

• 0:Device ID,可选,默认为0

执行结果如下,说明样例执行成功。

Compare success.