CATLASS:CopyGm2Ub / TileCopyTla(GM → UB)
2026/6/1 19:08:18 网站建设 项目流程

CopyGm2Ub / TileCopyTla(GM → UB)

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

代码位置

[TOC]

概述

GM→UB 搬运模块,负责将数据从 GM(Global Memory)搬运到 UB(Unified Buffer)。VectorLayout 的一维向量数据使用CopyGm2Ub,RowMajor 的二维矩阵数据使用TileCopyTla

限制:仅支持 AtlasA2 架构(CATLASS_ARCH == 2201)。

API 清单

API风格适用硬件Layout说明
CopyGm2Ub非 TLAAtlasA2VectorLayoutGM 一维向量 → UB
TileCopyTlaTLAAtlasA2RowMajorGM RowMajor → UB RowMajor

调用示例

非 TLA

#include "catlass/gemm/tile/copy_gm_to_ub.hpp" using CopyOp = CopyGm2Ub<Arch::AtlasA2, Gemm::GemmType<half, layout::VectorLayout>>; auto layoutSrc = layout::VectorLayout(len); auto layoutDst = layout::VectorLayout(len); CopyOp copyOp; copyOp(dstUB, srcGm, layoutDst, layoutSrc);

TLA

#include "catlass/gemm/tile/copy_gm_to_ub.hpp" #include "tla/tensor.hpp" auto srcLayout = tla::MakeLayout<half, layout::RowMajor>(M, K); auto dstLayout = tla::MakeLayout<half, layout::RowMajor>(M, K); auto srcTensor = tla::MakeTensor(srcGm, srcLayout, Arch::PositionGM{}); auto dstTensor = tla::MakeTensor(dstUB, dstLayout, Arch::PositionUB{}); TileCopyTla<Arch::AtlasA2, decltype(srcTensor), decltype(dstTensor)> copyOp; copyOp(dstTensor, srcTensor);

模板选择指南

场景推荐风格
一维向量搬运(Bias/Scale)CopyGm2Ub非 TLA
二维矩阵搬运TileCopyTlaTLA

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

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

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

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

立即咨询