Cgetrf算子实现
概述
Solver Cgetrf算子实现。
支持的产品
- Atlas A3 训练系列产品/Atlas A3 推理系列产品
- Atlas A2 训练系列产品/Atlas A2 推理系列产品
目录结构介绍
├── cgetrf
│ ├── CMakeLists.txt // 编译工程文件
│ ├── README.md // 说明文档
│ ├── cgetrf_test.cpp // 算子调用样例
│ └── data // 测试数据目录
│ ├── gen_data.py // 生成测试数据脚本
│ └── verify_result.py // 验证结果脚本
算子描述
-
算子功能: Cgetrf算子对复数矩阵进行LU分解,对应的数学表达式为:
A=P⋅L⋅UA = P \cdot L \cdot U
其中AA为m×nm \times n阶复数矩阵,PP为置换矩阵,LL为单位下三角矩阵,UU为上三角矩阵。
-
算子规格:
算子类型(OpType) Cgetrf 算子输入 name shape data type Description format m [1] INT64 矩阵A的行数 \ n [1] INT64 矩阵A的列数 \ A [m, n] COMPLEX64 输入矩阵A,行主序 ND lda [1] INT64 A左右相邻元素间的内存地址偏移量(当前约束为N) \ 算子输出 A [m, n] COMPLEX64 输出的L和U矩阵,L和U合并存储在A中 ND ipiv [min(m,n)] INT32 置换矩阵的pivot信息 ND info [1] INT32 分解结果信息 \ 核函数名 cgetrf_kernel -
算子约束:无。
-
调用实现 使用内核调用符<<<>>>调用核函数。
编译运行
在本样例根目录下执行如下步骤,编译并执行算子。
-
配置环境变量 请根据当前环境上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=cgetrf --run # --ops=<算子名> --run可选参数,执行测试样例执行结果如下,说明精度对比成功。
[Success] Case accuracy is verification passed.