CANN/catlass优化矩阵乘示例
OptimizedMatmul Example Readme【免费下载链接】catlass本项目是CANN的算子模板库提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass代码组织├── 06_optimized_matmul │ ├── CMakeLists.txt # CMake编译文件 │ ├── README.md │ └── optimized_matmul.cpp # 主文件功能介绍matmul矩阵乘相比00_basic_matmul样例替换dispatchPolicy为MmadAtlasA2Preload并增加输入矩阵的padding前处理提升数据搬入性能。使用示例获取代码之后编译相应的算子可执行文件可参考quickstart执行算子# 编译指定用例 bash scripts/build.sh 06_optimized_matmul cd output/bin # 可执行文件名 |矩阵m轴|n轴|k轴|Device ID # Device ID可选默认为0 ./06_optimized_matmul 256 512 1024 0执行结果如下说明精度比对成功。Compare success.说明样例里当前padding动作使用的是PADDING_NZ也可以替换为PADDING_BLOCK_ND来测试性能表现PADDING_NZ代码位置如下constexpr PaddingTag paddingTagA (std::is_same_vLayoutA, layout::zN || std::is_same_vLayoutA, layout::nZ) ? PaddingTag::NO_PADDING : PaddingTag::PADDING_NZ; constexpr PaddingTag paddingTagB (std::is_same_vLayoutB, layout::zN || std::is_same_vLayoutB, layout::nZ) ? PaddingTag::NO_PADDING : PaddingTag::PADDING_NZ;基于PADDING_NZ策略的UB上的COMPUTE_LENGTH为48KBstatic const uint32_t COMPUTE_LENGTH_A 48 * 1024 / sizeof(ElementA); static const uint32_t COMPUTE_LENGTH_B 48 * 1024 / sizeof(ElementB);PADDING_BLOCK_ND替换PADDING_BLOCK_ND的代码修改如下当输入矩阵非NZ格式时使能会将矩阵按照L1TileShape对齐来做paddingconstexpr PaddingTag paddingTagA (std::is_same_vLayoutA, layout::zN || std::is_same_vLayoutA, layout::nZ) ? PaddingTag::NO_PADDING - : PaddingTag::PADDING_NZ; : PaddingTag::PADDING_BLOCK_ND; constexpr PaddingTag paddingTagB (std::is_same_vLayoutB, layout::zN || std::is_same_vLayoutB, layout::nZ) ? PaddingTag::NO_PADDING - : PaddingTag::PADDING_NZ; : PaddingTag::PADDING_BLOCK_ND;基于PADDING_BLOCK_ND策略的UB上的COMPUTE_LENGTH为96KB-static const uint32_t COMPUTE_LENGTH_A 48 * 1024 / sizeof(ElementA); -static const uint32_t COMPUTE_LENGTH_B 48 * 1024 / sizeof(ElementB); static const uint32_t COMPUTE_LENGTH_A 96 * 1024 / sizeof(ElementA); static const uint32_t COMPUTE_LENGTH_B 96 * 1024 / sizeof(ElementB);【免费下载链接】catlass本项目是CANN的算子模板库提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2597991.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!