Block Mmad基础模板
【免费下载链接】catlass本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass
代码位置
[TOC]
BlockMmad
功能说明
block层级mmad计算,非TLA实现,实际计算由偏特化模板承载,通过DispatchPolicy等模板参数命中偏特化分支。
模板说明
template < class DispatchPolicy, // 所用Dispatchpolicy class L1TileShape, // L1基本块 class L0TileShape, // L0基本块 class AType, // 封装了A矩阵的数据类型和排布信息 class BType, // 封装了B矩阵的数据类型和排布信息 class CType, // 封装了C矩阵的数据类型和排布信息 class BiasType = void, // 封装了Bias的数据类型和排布信息 class TileCopy = Gemm::Tile::TileCopy<typename DispatchPolicy::ArchTag, AType, BType, CType, BiasType>, // Tile层级搬运 class TileMmad = Gemm::Tile::TileMmad<typename DispatchPolicy::ArchTag, AType, BType, BiasType> // Tile层级mmad计算 > struct BlockMmad { static_assert(DEPENDENT_FALSE<DispatchPolicy>, "BlockMmad is not implemented for this DispatchPolicy"); };注意到模板参数中,BiasType默认使用void,TileCopy默认使用Gemm::Tile::TileCopy,TileMmad默认使用Gemm::Tile::TileMmad
BlockMmadTla
(待完善)
BlockGemm
(待完善)
【免费下载链接】catlass本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考