文件最后提交记录最后更新时间
【task】更新license Co-authored-by: yuantao<taoyuan15@h-partners.com> # message auto-generated for no-merge-commit merge: !399 merge master into master 【task】更新license Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!3995 个月前
[bugfix]文档低错整改以及images目录更新为figures Co-authored-by: sunhao_hw<sunhao203@huawei.com> # message auto-generated for no-merge-commit merge: !517 merge docs into master [bugfix]文档低错整改以及images目录更新为figures Created-by: sunhao_hw Commit-by: sunhao_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 按照开源规范,将docs/images目录更名为docs/figures目录。并进行低错整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!5172 个月前
更新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.