已合并
feat(tile): add Ascend950 L0C-to-UB ColumnMajor specialization #1124
CheaterAbec创建于 12 天前
feat(tile): add Ascend950 L0C-to-UB ColumnMajor specialization #1124
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 CheaterAbec 的贡献)12 天前 创建了 pull request,commit e06f7340
atomgit-bot
12 天前 评论:
12 天前 评论:
变更摘要
本 PR 将 DSL 侧分叉的 C++ tile 语义改动单独合入 master(与 DSL Python 合入 PR 拆分),为 Ascend950 补充对齐 zN→zN 的 UB→L1 拷贝特化,以及 L0C→UB 的 ColumnMajor(nz2dn)通路,使 python/tla_dsl 的 bitcode 依赖(如 CopyL0CToUBTla 的 ColumnMajor specialization)可以正常编译。
主要改动
- 新增
CopyUb2L1Tla的 aligned zN→zN 特化:在copy_ub_to_l1_tla.hpp中为Arch::Ascend950增加源、目的均为 zN 布局(以iszN约束)的新偏特化,与原iszNUnAlign特化并存,补齐 zN 对齐拷贝通路,并以tla::get<0>替代tla::get<0, 0>取srcShape。 - 新增
CFG_COLUMN_MAJOR_UB配置:在copy_l0c_to_ub.hpp中为__NPU_ARCH__ == 3510增加AscendC::CO2Layout::COLUMN_MAJOR的FixpipeConfig常量。 - 新增
CopyL0CToUBTla的 ColumnMajor 特化:为CopyL0CToUBMode::NO_SPLIT增加以isColumnMajor约束的特化,使用FixpipeParamsC310<CO2Layout::COLUMN_MAJOR>、Nz2DnParams(1, 0, 0, 1)(srcNzC0Stride=1)实现 nz2dn 转换,mSize按ELE_NUM_PER_BLK向上取整,并提供普通与subBlockId两个重载。 - RowMajor 特化的
nSize计算调整:现有 RowMajor 特化中intriParams.nSize由按ELE_NUM_PER_BLK向上取整改为直接取tla::get<1>(dstTensor.originShape()),同时删除基于BytesToBits/SizeOfBits的ELE_NUM_PER_BLK常量定义及catlass/numeric_size.hpp头文件引用,并修正若干注释。


atomgit-bot
12 天前 评论:
12 天前 评论:
12 天前 添加了label:cann-cla/yes
CANN-robot
12 天前 评论:
12 天前 评论:
此处折叠了90条消息 查看更多
12 天前 添加了label:approved
yuantao
12 天前 评论:
12 天前 评论:
/lgtm


12 天前 添加了label:lgtm
12 天前 合入了pull request
CANN-robot
12 天前 评论:
12 天前 评论:
Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


Summary
include/catlass/gemm/tile/ascend950/copy_l0c_to_ub.hpp新增 Ascend950 L0C→UB ColumnMajor(nz2dn)特化及CFG_COLUMN_MAJOR_UB原因
CATLASS DSL
dma.cpp注册了 ColumnMajor L0C→UB 通路,master 头文件原先缺少对应偏特化。测试
类型标签