CANN矩阵乘实现样例
Matmul【免费下载链接】cann-samples算子领域高性能实战演进样例与体系化调优知识库项目地址: https://gitcode.com/cann/cann-samples描述本样例展示了如何在昇腾AI处理器的CubeCore硬件单元上使用AscendC编程语言实现矩阵乘运算。下面是矩阵乘在NPU上的执行的示意图。关键特性流水并行具备DoubleBuffer能力开启流水并行参数可配支持自定义矩阵维度进行测试精度对比提供标准的CPU实现作为精度基准支持架构NPU ARCH 3510ASC APIASC API文档参数说明m: 矩阵乘中左矩阵的行k: 矩阵乘中左矩阵的列/右矩阵的行n: 矩阵乘中右矩阵的列算子Kernel支持Dtype模板参数目前支持FLOAT16/BFLOAT16/FLOAT32编译运行编译样例从项目根目录启动构建参考项目README.md在仓库根目录下完成编译和安装后进入当前样例目录cmake -S . -B build -DNPU_ARCHdav-3510 cmake --build build --parallel cmake --install build --prefix ./build_out cd ./build_out/0_Introduction/matmul如需单独编译当前样例可使用以下指令cmake --build build --target matmul cp ./Samples/0_Introduction/matmul/scripts/profile_matmul.py ./build/Samples/0_Introduction/matmul/ cd ./build/Samples/0_Introduction/matmul运行样例使用可执行文件直接执行算子用例需要指定矩阵乘维度并随机生成输入数据。./matmul 1024 2048 4096打印如下执行结果证明样例执行成功。matmul run successfully!如果存在精度问题则会打印错误数据并显示如下结果。matmul run failed!测试性能 运行性能测试脚本指定矩阵乘法的维度后执行。python3 profile_matmul.py 1024 2048 4096打印如下执行结果证明样例性能测试成功。[Profile Breakdowm] --------------------------------------------------------------------------------------------- | candidate | kernel(us) | mac(us) | scalar(us) | mte1(us) | mte2(us) | fixpipe(us) | icache_miss(%) | | matmul | 86.870 | 43.804 | 1.850 | 12.997 | 51.857 | 2.970 | 2.200 | ---------------------------------------------------------------------------------------------【免费下载链接】cann-samples算子领域高性能实战演进样例与体系化调优知识库项目地址: https://gitcode.com/cann/cann-samples创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2599827.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!