CANN/catlass基础矩阵乘示例
BasicMatmul Example Readme【免费下载链接】catlass本项目是CANN的算子模板库提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass功能说明算子功能完成基础矩阵乘计算计算公式$$ \begin{aligned} C A \times B \ C_{i,j} \Sigma_{k} A_{i,k}B_{k,j} \end{aligned} $$ 其中$A$和$B$分别是形如(m,k)(k,n)的输入矩阵$C$是形如(m,n)的输出矩阵。参数说明以下是本样例的运行参数参数名描述约束m矩阵乘中左矩阵A的行-n矩阵乘中右矩阵B的列-k矩阵乘中左矩阵A的列也即右矩阵的行数-deviceId使用的NPU卡ID默认0在设备NPU有效范围内BasicMatmul所涉及的关键模板参数如下:模板参数说明有效范围ElementA左矩阵的数据类型float|fp16_t|bfloat16_t|int8_tElementB右矩阵的数据类型float|fp16_t|bfloat16_t|int8_tElementC结果矩阵的数据类型float|fp16_t|bfloat16_t|int8_tLayoutA左矩阵的排布方式layout::RowMajor|layout::ColumnMajorLayoutB右矩阵的排布方式layout::RowMajor|layout::ColumnMajorLayoutC结果矩阵的排布方式layout::RowMajor约束说明左、右矩阵及结果矩阵的类型应满足下述类型映射条件。ElementAElementBElementCfloatfloatfloat|fp16_t|bfloat16_tfp16_tfp16_tfloat|fp16_t|bfloat16_tbfloat16_tbfloat16_tfloat|fp16_t|bfloat16_tint8_tint8_tint32_t代码组织├── 00_basic_matmul │ ├── CMakeLists.txt # CMake编译文件 │ ├── README.md │ └── basic_matmul.cpp # 主文件使用示例编译样例代码并编译生成相应的算子可执行文件。bash scripts/build.sh 00_basic_matmul切换到可执行文件的编译目录output/bin下执行算子样例程序。测试样例数据随机生成尺寸从命令行输入。cd output/bin ./00_basic_matmul 256 512 1024 0• 256矩阵m轴• 512n轴• 1024k轴• 0Device ID可选默认为0执行结果如下说明样例执行成功。Compare success.【免费下载链接】catlass本项目是CANN的算子模板库提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考