CATLASS算子UB到GM搬运模块

copy_ub_to_gm

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

代码位置

[TOC]

概述

copy_ub_to_gm 模块实现 epilogue 阶段从 UB(Unified Buffer)到 GM(Global Memory)的数据搬运,将 epilogue 计算结果写回 Global Memory。

TLA 风格的 UB→GM 搬运为独立模块 CopyUb2GmTla

API 清单

API风格适用硬件说明
CopyUb2Gm非 TLAAtlasA2, Ascend950基础 UB→GM 搬运(RowMajor / VectorLayout)
CopyUb2GmAligned非 TLAAtlasA2对齐优化搬运(自动处理大 stride 场景)

适用硬件

硬件型号CopyUb2GmCopyUb2GmAligned
AtlasA2RowMajor, VectorLayoutRowMajor
Ascend950RowMajor-

调用示例

CopyUb2Gm

#include "catlass/epilogue/tile/copy_ub_to_gm.hpp"

using namespace Catlass::Epilogue::Tile;

using Element = half;
using LayoutTagDst = layout::RowMajor;

uint32_t rows = 128;
uint32_t cols = 256;

auto layoutSrc = LayoutTagDst::MakeLayout<Element>(rows, cols);
auto layoutDst = LayoutTagDst::MakeLayout<Element>(rows, cols);

AscendC::LocalTensor<Element> srcTensor;
AscendC::GlobalTensor<Element> dstTensor;

using GmType = Gemm::GemmType<Element, LayoutTagDst>;
using CopyOp = CopyUb2Gm<Arch::AtlasA2, GmType>;
CopyOp copyOp;
copyOp(dstTensor, srcTensor, layoutDst, layoutSrc);

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

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

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

抵扣说明:

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

余额充值