已关闭
[Requirement|需求建议]: aclblasSdgmm 接口参数顺序与命名对齐 BLAS 标准 #301
陶贻坤创建于  7月9日关闭于  7月9日
陶贻坤
陶贻坤成员
7月9日 创建

背景(背景信息)

aclblasSdgmm 接口当前的参数顺序为 (handle, mode, m, n, x, incx, A, lda, B, ldb),与 BLAS 标准参数顺序 (handle, mode, m, n, A, lda, x, incx, C, ldc) 不一致。此外,输出矩阵参数命名为 B/ldb,而 BLAS 标准使用 C/ldc。需要将接口参数顺序和命名对齐 BLAS 标准,确保接口一致性和可维护性。

信息来源(Origin)

cann 开发者

价值/作用(Benefit / Necessity)

  • 与 BLAS 标准接口保持一致,降低用户迁移和学习成本
  • 统一 BLAS 算子库中输出矩阵使用 C/ldc 的命名规范(与 GEMM 等算子一致)
  • 提升接口可维护性,避免参数顺序不一致导致的调用错误

设计(Design)

将 aclblasSdgmm 接口签名从:

aclblasStatus_t aclblasSdgmm(
    aclblasHandle_t handle, aclblasSideMode_t mode,
    int m, int n, const float* x, int incx,
    const float* A, int lda, float* B, int ldb)

改为:

aclblasStatus_t aclblasSdgmm(
    aclblasHandle_t handle, aclblasSideMode_t mode,
    int m, int n,
    const float* A, int lda, const float* x, int incx,
    float* C, int ldc)

涉及修改的文件:

  • include/cann_ops_blas.h — 公共 API 声明
  • blas/dgmm/arch35/sdgmm_host.cpp — Host 侧实现(Validate/CalTiling/Launch/aclblasSdgmm)
  • blas/dgmm/arch35/sdgmm_tiling_data.h — Tiling 结构体字段 ldb → ldc
  • blas/dgmm/arch35/sdgmm_kernel.h — Kernel launcher 声明
  • blas/dgmm/arch35/sdgmm_kernel.cpp — Kernel 实现(内部变量 bGm → cGm、ubB → ubC 等)
  • test/dgmm/sdgmm/sdgmm_param.h — 测试参数字段 ldb → ldc、nullB → nullC
  • test/dgmm/sdgmm/sdgmm_golden.h — CPU golden 函数签名
  • test/dgmm/sdgmm/arch35/sdgmm_npu_wrapper.h — NPU wrapper 函数签名
  • test/dgmm/sdgmm/arch35/sdgmm_test.cpp — 测试调用点
  • test/dgmm/sdgmm/arch35/sdgmm_test.csv — CSV 列名及用例描述
  • blas/dgmm/README.md — 接口文档(函数原型、参数说明、调用示例)
likedislike
CANN-robotCANN-robot成员
7月9日 关闭了 issue
CANN-robotCANN-robot成员
7月9日 添加了label:resolved