Sgetri
【免费下载链接】ops-solver本项目是CANN提供的高级数值求解算子库,实现矩阵分解、求逆、特征值求解等功能在NPU上的加速计算。项目地址: https://gitcode.com/cann/ops-solver
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Ascend 950PR/Ascend 950DT | × |
功能说明
接口功能
aclsolverSgetri:计算实数矩阵的逆矩阵。计算公式 $$ A^{-1}A = I $$ 其中$A$为$n \times n$阶非奇异实数方阵,$I$为$n$阶单位矩阵。
示例
输入"A"为:[4.0, 3.0, 2.0, 1.0 3.0, 4.0, 3.0, 2.0 2.0, 3.0, 4.0, 3.0 1.0, 2.0, 3.0, 4.0]输入"n"为: 4
调用"aclsolverSgetri"算子后,
输出"A"为:[0.4, -0.3, 0.2, -0.1 -0.3, 0.6, -0.4, 0.2 0.2, -0.4, 0.6, -0.3 -0.1, 0.2, -0.3, 0.4]
函数原型
函数定义
aclError aclsolverSgetri( aclsolverHandle_t handle, const int64_t n, float *A, const int64_t lda, int32_t *info);参数说明:
参数名 输入输出 描述 handle 输入 solver handle,通过aclsolverCreate创建 n 输入 矩阵A的行数和列数 A 输入/输出 输入为矩阵A(通常为Sgetrf分解后的L和U矩阵),输出为逆矩阵
数据类型仅支持FLOAT32,数据格式支持ND,shape为[n, n]lda 输入 A左右相邻元素间的内存地址偏移量(当前约束为n) info 输出 求逆结果信息
数据类型支持int32_t算子约束:
- lda、info参数在当前版本实际未启用。
调用实现 使用内核调用符<<<>>>调用核函数。
调用示例
完整代码示例:aclsolverSgetri矩阵求逆示例
核心调用步骤:
#include <vector> #include "acl/acl.h" #include "cann_ops_solver.h" int32_t main(int32_t argc, char *argv[]) { // 固定写法,acl初始化 int32_t deviceId = 0; aclrtStream stream = nullptr; aclInit(nullptr); aclrtSetDevice(deviceId); aclrtCreateStream(&stream); // 创建solver handle并设置stream aclsolverHandle_t handle = nullptr; aclsolverCreate(&handle); aclsolverSetStream(handle, stream); // 构造输入数据 int64_t n = 4; size_t aMatrixFileSize = n * n * sizeof(float); float* A; aclrtMallocHost((void**)(&A), aMatrixFileSize); // 填充A矩阵数据... int32_t *info; // 调用 aclsolverSgetri auto ret = aclsolverSgetri(handle, n, A, n, info); CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("aclsolverSgetri failed. ERROR: %d\n", ret); return ret); // 释放资源 aclrtFreeHost(A); aclsolverDestroy(handle); aclrtDestroyStream(stream); aclrtResetDevice(deviceId); aclFinalize(); return 0; }
【免费下载链接】ops-solver本项目是CANN提供的高级数值求解算子库,实现矩阵分解、求逆、特征值求解等功能在NPU上的加速计算。项目地址: https://gitcode.com/cann/ops-solver
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考