已关闭
[Requirement|需求建议]: aclblasStrmm 接口参数不符合 BLAS 标准 #310
陶贻坤创建于  7月13日关闭于  7月14日
陶贻坤
陶贻坤成员
7月13日 创建

问题描述

aclblasStrmm 接口参数设计不符合 BLAS 标准。当前接口采用 in-place 设计(结果写回 B 矩阵),缺少独立的输出矩阵 C 及其主维参数 ldc;维度参数 m/n/lda/ldb 使用 int64_t 而非 BLAS 标准的 int 类型;参数命名 transA 与标准 BLAS 的 trans 不一致。这导致接口与标准 BLAS TRMM 签名不兼容,用户迁移成本高。

环境信息

  • 芯片型号:Ascend 950
  • CANN 版本:9.1.0

重现步骤

  1. 查看 include/cann_ops_blas.haclblasStrmm 接口声明
  2. 对比标准 BLAS strmm 接口签名(B 为输入、C 为输出、int 类型维度、trans 命名)
  3. 发现当前接口为 in-place 设计,缺少 C/ldc,维度类型和参数命名不一致

预期结果

aclblasStrmm 接口应分离输入矩阵 B(const float*)和输出矩阵 C(float*),新增 ldc 参数;维度参数 m/n/lda/ldb/ldc 使用 int 类型;参数命名统一为 trans,与标准 BLAS 一致。

日志 / 截图

当前接口签名:

aclblasStatus_t aclblasStrmm(handle, side, uplo, transA, diag,
    int64_t m, int64_t n, alpha, A, int64_t lda, float* B, int64_t ldb)

BLAS 标准签名:

strmm(side, uplo, trans, diag, m, n, alpha, A, lda, B, ldb, C, ldc)

差异:

  • B 为 in-place 输出(缺少独立的 C/ldc)
  • int64_t vs int
  • transA vs trans

备注

该问题已在最新提交中修复,接口已对齐 BLAS 标准。

likedislike
陶贻坤陶贻坤成员
7月13日 修改标题为 “[Requirement|需求建议]: aclblasStrmm 接口参数不符合 BLAS 标准”,原标题为“aclblasStrmm 接口参数不符合 BLAS 标准”
CANN-robotCANN-robot成员
7月14日 关闭了 issue
CANN-robotCANN-robot成员
7月14日 添加了label:resolved