文件最后提交记录最后更新时间
12 天前
12 天前
12 天前
12 天前
README

CgetriBatched算子实现

概述

Solver CgetriBatched算子实现。

支持的产品

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品

目录结构介绍

├── cgetri_batched
│   ├── CMakeLists.txt      // 编译工程文件
│   ├── README.md           // 说明文档
│   └── cgetri_batched_test.cpp       // 算子调用样例

算子描述

  • 算子功能:
    CgetriBatched算子计算批量复数矩阵的逆矩阵,对应的数学表达式为:

    A−1A=IA^{-1}A = I

    其中AAn×nn \times n阶非奇异复数方阵,IInn阶单位矩阵。

  • 算子规格:

    算子类型(OpType) CgetriBatched
    算子输入 name shape data type Description format
    n [1] INT64 单个矩阵A的行数 \
    A [batchSize, n, n] COMPLEX64 公式中的矩阵A,行主序 ND
    lda [1] INT64 A左右相邻元素间的内存地址偏移量(当前约束为n) \
    lda_inv [1] INT64 输出的逆矩阵的左右相邻元素间的内存地址偏移量(当前约束为n) \
    info [batchSize, 1] INT32 每个batch矩阵的求逆结果信息 ND
    batchSize [1] INT64 复数矩阵求逆中的矩阵数量 \
    算子输出 Ainv [batchSize, n, n] COMPLEX64 输出的逆矩阵 ND
    核函数名 cgetri_batched_kernel
  • 算子约束:

    • lda、lda_inv、info参数在当前版本实际未启用。
    • 入参n大于等于32且小于等于256。
    • 入参batchSize小于等于3000。
    • 当n小于32时,请使用CmatinvBatched算子。
  • 调用实现
    使用内核调用符<<<>>>调用核函数。

编译运行

在本样例根目录下执行如下步骤,编译并执行算子。

  • 配置环境变量
    请根据当前环境上CANN开发套件包的安装方式,选择对应配置环境变量的命令。

    • 默认路径,root用户安装CANN软件包

      source /usr/local/Ascend/cann/set_env.sh
      
    • 默认路径,非root用户安装CANN软件包

      source $HOME/Ascend/cann/set_env.sh
      
    • 指定路径install_path,安装CANN软件包

      source ${install_path}/cann/set_env.sh
      
  • 样例执行

    bash build.sh --ops=cgetri_batched --run # --ops=<算子名> --run可选参数,执行测试样例
    

    执行结果如下,说明精度对比成功。

    [Success] Case accuracy is verification passed.