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
其中AA为n×nn \times n阶非奇异复数方阵,II为nn阶单位矩阵。
-
算子规格:
算子类型(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.