tile_swizzle
【免费下载链接】catlass 本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 项目地址: https://gitcode.com/cann/catlass
[TOC]
概述
tile_swizzle 模块实现 epilogue 阶段的 Tile 遍历策略,控制 epilogue 计算中 tiles 的访问顺序。不执行计算,仅提供 tile 坐标和 shape 查询接口。
API 清单
| API | 遍历方式 | GetTileCoord(i) | 说明 |
|---|---|---|---|
| EpilogueIdentityTileSwizzle | 行列优先 | (i / cols, i % cols) | 默认策略 |
| EpilogueHorizontalTileSwizzle | 水平优先 | (i % rows, i / rows) | 水平方向优先 |
遍历顺序对比
blockShape(64, 128), tileShape(32, 64)
Identity: loop0→(0,0) loop1→(0,1) loop2→(1,0) loop3→(1,1)
Horizontal: loop0→(0,0) loop1→(1,0) loop2→(0,1) loop3→(1,1)
调用示例
#include "catlass/epilogue/tile/tile_swizzle.hpp"
using namespace Catlass::Epilogue::Tile;
MatrixCoord blockShape(64, 128);
MatrixCoord tileShape(32, 64);
EpilogueIdentityTileSwizzle swizzle(blockShape, tileShape);
uint32_t loops = swizzle.GetLoops();
for (uint32_t i = 0; i < loops; ++i) {
MatrixCoord tileCoord = swizzle.GetTileCoord(i);
MatrixCoord actualShape = swizzle.GetActualTileShape(tileCoord);
}
【免费下载链接】catlass 本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 项目地址: https://gitcode.com/cann/catlass
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



