CANN/catlass 卷积瓦片拷贝
2026/6/8 1:34:13 网站建设 项目流程

ConvTileCopy

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

代码位置

[TOC]

功能说明

ConvTileCopy是卷积(Conv)场景的搬运模板集合,结构上与 TileCopy 完全相同,区别仅在于模板参数命名和用途——专门服务于 Convolution 的 Im2Col + GEMM 流程。

BiasType 为必选参数(非默认void),因为 Conv 通常包含 Bias。

引用的 Tile 组件

成员别名引用的底层模板说明
CopyGmToL1ACopyGmToL1<ArchTag, AType>A 矩阵 GM→L1
CopyGmToL1BCopyGmToL1<ArchTag, BType>B 矩阵 GM→L1
CopyL1ToL0ACopyL1ToL0A<ArchTag, L1AType>A 矩阵 L1→L0A
CopyL1ToL0BCopyL1ToL0B<ArchTag, L1BType>B 矩阵 L1→L0B
CopyL0CToGmCopyL0CToGm<ArchTag, ElementAccumulator, CType>L0C→GM
CopyGmToL1BiasCopyGmToL1<ArchTag, ...>Bias GM→L1
CopyL1ToBTCopyL1ToBT<ArchTag, ...>Bias L1→BT

模板原型

template < class ArchTag, // 架构标签 class AType, // A 矩阵 GmType class BType, // B 矩阵 GmType class CType, // C 矩阵 GmType class BiasType // Bias GmType(必选) > struct ConvTileCopy;

调用示例

#include "catlass/gemm/tile/tile_copy.hpp" using namespace Catlass::Gemm; using AType = Gemm::GemmType<half, layout::RowMajor>; using BType = Gemm::GemmType<half, layout::ColumnMajor>; using CType = Gemm::GemmType<half, layout::NDC1HWC0>; using BiasType = Gemm::GemmType<half, layout::VectorLayout>; using TileCopy_ = Tile::ConvTileCopy<Arch::AtlasA2, AType, BType, CType, BiasType>; typename TileCopy_::CopyGmToL1A copyGmToL1A; typename TileCopy_::CopyGmToL1B copyGmToL1B; typename TileCopy_::CopyGmToL1Bias copyGmToL1Bias; typename TileCopy_::CopyL1ToBT copyL1ToBT; typename TileCopy_::CopyL0CToGm copyL0CToGm;

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询