CATLASS Tile重排API文档

tile_swizzle

【免费下载链接】catlass 本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 【免费下载链接】catlass 项目地址: 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上高性能矩阵乘及其相关融合类算子模板样例。 【免费下载链接】catlass 项目地址: https://gitcode.com/cann/catlass

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值