已合并
Add Ascend950 Basic SYRK example #1195
void_ptr创建于 27 天前
Add Ascend950 Basic SYRK example #1195
已合并
void_ptr创建于 27 天前
void_ptr
27 天前

描述

  • Added example 82_ascend950_basic_syrk for Y = X * X^T, with README and CI case in tests/test_example.py.
  • Wired optest JIT kernel, torch_catlass.ascend950_basic_syrk, and pytest for bf16/fp16.

关联的Issue

https://gitcode.com/cann/catlass/issues/489

原因

测试

文档更新

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 void_ptr 的贡献)
Vvoid_ptr
27 天前 创建了 pull request,commit 81b9497a
atomgit-bot
atomgit-bot
27 天前 评论:

变更摘要

本 PR 新增了 Ascend950 上的基础 SYRK 示例(Y = X * X^T),包含新增的 examples/82_ascend950_basic_syrk/basic_syrk_tla.cpp 示例程序、块级算子 BlockMmadSyrkTla 与内核级算子 BasicSyrkTla,并为 Ascend950 的 CopyL0CToGmTla 补充了列主序(nz2dn 转置写回)特化,同时将新头文件接入 block_mmad.hpp。该实现固定了 X/Y 的布局与 MmadPingpong<Ascend950, false> 调度策略,采用仅计算下三角并按对角块单写、非对角块双写的策略,示例端通过 golden 计算与误差指标(MARE/MERE/RMSE)对结果进行校验。

主要改动

  • 新增 SYRK 块级算子 BlockMmadSyrkTlainclude/catlass/gemm/block/block_mmad_syrk_tla.hpp):实现 Ascend950 上 Y = X * X^T 的块级 mmad,通过 static_assert 约束布局(X 为 RowMajor、Xt 为 ColumnMajor、Y 为 RowMajor)、禁用 unitFlag/HF32/L1-resident,并在对角块(blockCoord.m() == blockCoord.n())只执行一次 nz2nd 写回、非对角块同时执行 nz2nd 与 nz2dn 双写。
  • 新增 SYRK 内核级算子 BasicSyrkTlainclude/catlass/gemm/kernel/basic_syrk_tla.hpp):定义下三角调度规则(m < n 跳过、m == n 计算并单写、m > n 计算并双写),新增 Params/Arguments 结构及 CanImplementGetWorkspaceSizeToUnderlyingArguments 接口,并区分 AIC/AIV 执行路径。
  • 扩展 CopyL0CToGmTla 列主序特化include/catlass/gemm/tile/ascend950/copy_l0c_to_gm.hpp):为 Ascend950 增加 isColumnMajor 使能的特化,使用 FixpipeParamsC310<COLUMN_MAJOR>Nz2DnParams 完成 L0C 到 GM 的 nz2dn 转置写回,支持 unitFlag 参数。
  • 新增 SYRK 示例程序examples/82_ascend950_basic_syrk/basic_syrk_tla.cpp):驱动 BasicSyrkTla 执行 SYRK,完成设备内存分配、数据搬运与 golden 对比,按 MARE/MERE/RMSE 阈值判定并输出比对结果。
  • 接入编译单元include/catlass/gemm/block/block_mmad.hpp):在 TLA 相关包含块中新增 block_mmad_syrk_tla.hpp 的头文件引用。
likedislike
不准确?
atomgit-bot
atomgit-bot
27 天前 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
CANN-robotCANN-robot成员
27 天前 添加了label:cann-cla/no
CANN-robotCANN-robot成员
27 天前 添加了label:stat/needs-squash
此处折叠了77条消息 查看更多
longjihui
longjihui成员
22 天前 评论:

/lgtm

likedislike
sunhao_hw成员
22 天前 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
22 天前 添加了label:lgtmapproved
CANN-robotCANN-robot成员
22 天前 合入了pull request
CANN-robot
CANN-robot成员
22 天前 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike