已开启
solve issue 351 352 353 #330
HuangRZzzz创建于 8 天前
solve issue 351 352 353 #330
已开启
HuangRZzzz创建于 8 天前
HuangRZzzz
HuangRZzzz成员
8 天前

描述

Issue #353 ,Issue #352 和 Issue #351 存在属性遗漏,文档未更新和异常返回的问题

  1. Issue #353:aclblasLtMatmulDescGetAttribute 未接入 ACLBLASLT_MATMUL_DESC_POINTER_MODE 属性。
  • 根因:aclblasLtMatmulDescImpl 结构体缺少 pointerMode 字段,Set/Get 分发 switch 均遗漏该 case,调用返回 ACLBLAS_STATUS_NOT_SUPPORTED。
  • 方案:impl 结构体新增 int32_t pointerMode = 0 字段;SetAttribute/GetAttribute 各增加一个 case,复用现有 SetDescEnumFromI32 / CopyAttributeOut 逻辑。
  1. Issue #352:aclblasLtMatmulPreferenceCreate 的 ACLBLASLT_MATMUL_PREF_MAX_WORKSPACE_BYTES 默认值与文档不一致。
  • 根因:git 提交的053364be0249ee76ba23d80de5021c279d1cacb2等进行进行 heuristic 和 kernel launch API重构时引入,文档没进行更新1
  • 方案:更新文档相关内容描述
  1. Issue #351:aclblasLtMatrixLayoutGetAttribute 缓冲区过小时 sizeWritten 未报告所需大小。
  • 根因:StoreLayoutField 在校验失败路径直接返回,未设置 sizeWritten,与文档"可通过 sizeWritten 获知所需大小"及 MatmulDescGetAttribute 行为不一致。
  • 方案:新增 StoreLayoutFieldOut 模板(任何情况下均先写 sizeWritten),ReadLayoutGetAttr 签名由 size_t& 改为 size_t*,MatrixLayoutGetAttribute 直接透传。
    改动共 3 个文件:blasLt/api/aclblaslt_layout.cpp、blasLt/api/aclblaslt_matmul_desc.cpp、blasLt/internal/include/aclblaslt_layout_impl.h。

关联的Issue

  • 关联 Issue #353
  • 关联 Issue #352
  • 关联 Issue #351

测试

  • 环境:cann-9.1.0-beta.1,Ascend 950(dav-3510),gcc 11.4.0
  • 全量构建 libops_blasLt.so 通过,无新增编译警告
  • 三个 impl 结构体经 sizeof 校验均能装入对应 capsule(48B/64B、64B/192B、48B/64B)
  • #351 独立验证程序 6 个场景全部 PASS:正常读取、小缓冲区(ROWS/TYPE/BATCH_COUNT)返回 INVALID_VALUE 且 sizeWritten 正确报告所需大小、sizeWritten=nullptr 不崩溃
likedislike
合并受阻
HuangRZzzzHuangRZzzz成员
8 天前 创建了 pull request,commit 4a1ebaee
HuangRZzzzHuangRZzzz成员
8 天前 关联了issue:[Bug-Report|缺陷反馈]: aclblasLtMatrixLayoutGetAttribute辅助算子部分场景验证异常,[Bug-Report|缺陷反馈]: aclblasLtMatmulPreferenceCreate辅助接口文档与代码测默认值不一致导致用例执行失败,[Bug-Report|缺陷反馈]: aclblasLtMatmulDescGetAttribute辅助接口point_mode属性未接入,导致用例执行失败
atomgit-bot
atomgit-bot
8 天前 评论:

变更摘要

本 PR 修复了 blasLt 辅助接口的三个缺陷:为 aclblasLtMatmulDescImpl 新增 pointerMode 字段并接入 Set/Get 属性分发链路,解决 ACLBLASLT_MATMUL_DESC_POINTER_MODE 属性返回 NOT_SUPPORTED 的问题;将 aclblasLtMatmulPreferenceImpl::maxWorkspaceBytes 默认值从 DEFAULT_WORKSPACE_SIZE 改为 0,与文档声明保持一致;新增 StoreLayoutFieldOut 模板并重构 MatrixLayoutGetAttribute 的写入逻辑,确保缓冲区不足时仍通过 sizeWritten 正确报告所需大小。

主要改动

  • 新增 pointerMode 字段及 Set/Get 分支:在 aclblasLtMatmulDescImpl 结构体中增加 int32_t pointerMode = 0 字段,在 ApplyMatmulDescSetAttraclblasLtMatmulDescGetAttribute 的 switch 中分别添加 ACLBLASLT_MATMUL_DESC_POINTER_MODE case,分别复用 SetDescEnumFromI32CopyAttributeOut 逻辑完成读写。

  • 修正 maxWorkspaceBytes 默认值:将 aclblasLtMatmulPreferenceImpl::maxWorkspaceBytes 的初始化值从 DEFAULT_WORKSPACE_SIZE(32MB)改为 0,与接口文档声明的默认值对齐,DEFAULT_WORKSPACE_SIZE 常量保留供内部其他模块使用。

  • 重构 MatrixLayoutGetAttribute 的 sizeWritten 语义:新增 StoreLayoutFieldOut 模板函数,始终在返回前将 requiredSize 写入 sizeWritten(即使缓冲区不足返回 INVALID_VALUE),并移除 aclblasLtMatrixLayoutGetAttribute 中原有的分离式 actualSize 变量与后置写入逻辑,改为直接将 sizeWritten 指针透传至 ReadLayoutGetAttr

likedislike
atomgit-bot
atomgit-bot
8 天前 评论:

代码审查

✅ 未发现问题

likedislike
CANN-robotCANN-robot成员
8 天前 添加了label:cann-cla/no
CANN-robot
CANN-robot成员
8 天前 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

⚠️ This PR does not yet meet the following requirements:lgtm (requires ≥ 2 person(s) per module)、approve (requires ≥ 1 person(s) per module)

Module Approval Details

module lgtm status approve status
repo-cann/ops-blas chenbinbin199309 (1/2)(You can also ask: 朱志明, zizhongchen, xutianze, luowen203_gg123, 张浩) ❌ (0/1)(You can also ask: 张浩, chenbinbin199309, zizhongchen, 唐超力, 宋恺)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

HuangRZzzz, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
CANN-robotCANN-robot成员
8 天前 将chenbinbin199309,luowen203_gg123,QK_25415,MaskHunter2008,songkai111,xutianze,wangzitao_leo,nino888,zhaoyingchao2,demoauguste,zizhongchen设为评审人
CANN-robotCANN-robot成员
8 天前 将chenbinbin199309,luowen203_gg123,QK_25415,MaskHunter2008,songkai111,xutianze,wangzitao_leo,nino888,zhaoyingchao2,demoauguste,zizhongchen设为审查人
wangzitao
wangzitao成员
8 天前 评论:

/check-cla

likedislike
CANN-robot
CANN-robot成员
8 天前 评论:

CLA检查未通过,详情可参考这里

likedislike
HuangRZzzzHuangRZzzz成员
8 天前 添加了 squash commit 备注:/check-cla
HuangRZzzz
HuangRZzzz成员
8 天前 评论:

/check-cla

likedislike
CANN-robot
CANN-robot成员
8 天前 评论:

CLA检查未通过,详情可参考这里

likedislike
HuangRZzzzHuangRZzzz成员
8 天前 update merge request[project id: 8916851, iid: 330, commit_id: 1c26217734b94ebd965f1aeb5bba15affc229f14] virtual merging success
HuangRZzzzHuangRZzzz成员
8 天前 强制推送  1 个提交:4d465f6c-solve issue 351 352 353
HuangRZzzzHuangRZzzz成员
8 天前 update merge request[project id: 8916851, iid: 330, commit_id: 3ee9ede401353a6dd5aa8f8c71e9f9cd28bf7a7c] virtual merging success
CANN-robotCANN-robot成员
8 天前 删除了label:cann-cla/no
CANN-robotCANN-robot成员
8 天前 添加了label:cann-cla/yes
HuangRZzzz
HuangRZzzz成员
8 天前 评论:

/check-cla

likedislike
CANN-robotCANN-robot成员
8 天前 删除了label:cann-cla/yes
CANN-robotCANN-robot成员
8 天前 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
8 天前 评论:

CLA检查已通过,详情可参考这里

likedislike
HuangRZzzzHuangRZzzz成员
8 天前 update merge request[project id: 8916851, iid: 330, commit_id: e9a7de23efb882cd6ecb25cacc8790848c76bcf7] virtual merging success
此处折叠了7条事件消息 查看更多
HuangRZzzzHuangRZzzz成员
8 天前 修改了pull request 的描述
chenbinbin199309成员
6 天前 评论:

/lgtm

likedislike