CANN/ops-solver Sgetri算子测试

📅 2026/7/4 16:45:37 👁️ 阅读次数 📝 编程学习
CANN/ops-solver Sgetri算子测试

Sgetri算子实现

【免费下载链接】ops-solver本项目是CANN提供的高级数值求解算子库,实现矩阵分解、求逆、特征值求解等功能在NPU上的加速计算。项目地址: https://gitcode.com/cann/ops-solver

概述

Solver Sgetri算子实现。

支持的产品

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

目录结构介绍

├── sgetri │ ├── CMakeLists.txt // 编译工程文件 │ ├── README.md // 说明文档 │ ├── sgetri_test.cpp // 算子调用样例 │ └── data // 测试数据目录 │ ├── gen_data.py // 生成测试数据脚本 │ └── verify_result.py // 验证结果脚本

算子描述

  • 算子功能: Sgetri算子计算实数矩阵的逆矩阵,对应的数学表达式为: $$A^{-1}A = I$$ 其中$A$为$n \times n$阶非奇异实数方阵,$I$为$n$阶单位矩阵。

  • 算子规格:

    算子类型(OpType)Sgetri
    算子输入nameshapedata typeDescriptionformat
    n[1]INT64矩阵A的行数和列数\
    A[n, n]FLOAT32输入矩阵A,行主序,通常为Sgetrf分解后的L和U矩阵ND
    lda[1]INT64A左右相邻元素间的内存地址偏移量(当前约束为N)\
    info[1]INT32求逆结果信息\
    算子输出A[n, n]FLOAT32输出的逆矩阵ND
    info[1]INT32求逆结果信息\
    核函数名sgetri_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=sgetri --run # --ops=<算子名> --run可选参数,执行测试样例

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

    [Success] Case accuracy is verification passed.

【免费下载链接】ops-solver本项目是CANN提供的高级数值求解算子库,实现矩阵分解、求逆、特征值求解等功能在NPU上的加速计算。项目地址: https://gitcode.com/cann/ops-solver

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考