25.cuBLAS开发指南中文版--cuBLAS中的Level-2函数symv()

2.6.8. cublas<t>symv()

在这里插入图片描述

cublasStatus_t cublasSsymv(cublasHandle_t handle, cublasFillMode_t uplo,
                           int n, const float           *alpha,
                           const float           *A, int lda,
                           const float           *x, int incx, const float           *beta,
                           float           *y, int incy)
cublasStatus_t cublasDsymv(cublasHandle_t handle, cublasFillMode_t uplo,
                           int n, const double          *alpha,
                           const double          *A, int lda,
                           const double          *x, int incx, const double          *beta,
                           double          *y, int incy)
cublasStatus_t cublasCsymv(cublasHandle_t handle, cublasFillMode_t uplo,
                           int n, const cuComplex       *alpha, /* host or device pointer */
                           const cuComplex       *A, int lda,
                           const cuComplex       *x, int incx, const cuComplex       *beta,
                           cuComplex       *y, int incy)
cublasStatus_t cublasZsymv(cublasHandle_t handle, cublasFillMode_t uplo,
                           int n, const cuDoubleComplex *alpha,
                           const cuDoubleComplex *A, int lda,
                           const cuDoubleComplex *x, int incx, const cuDoubleComplex *beta,
                           cuDoubleComplex *y, int incy)

此函数执行对称矩阵向量乘法。

y = α A x + β y y = \alpha Ax+\beta y y=αAx+βy

其中 A 是以低模式或高模式存储的 n*n 对称矩阵,x 和y 是向量,而 α \alpha α β \beta β是标量。

这个函数有另一个更快的实现,它使用可以通过 cublasSetAtomicsMode() 启用的原子。

请参阅函数 cublasSetAtomicsMode() 部分了解有关原子使用的更多详细信息。

Param. Memory In/out Meaning
handle input handle to the cuBLAS library context.
uplo input indicates if matrix A lower or upper part is stored, the other symmetric part is not referenced and is inferred from the stored elements.
n input number of rows and columns of matrix A.
alpha host or device input <type> scalar used for multiplication.
A device input <type> array of dimension lda x n with lda>=max(1,n).
lda input leading dimension of two-dimensional array used to store matrix A.
x device input <type> vector with n elements.
incx input stride between consecutive elements of x.
beta host or device input scalar used for multiplication, if beta==0 then y does not have to be a valid input.
y device input <type> vector with n elements.
incy input stride between consecutive elements of y.

该函数可能返回的错误值及其含义如下所列。

ErrorValue Meaning
CUBLAS_STATUS_SUCCESS 操作成功完成
CUBLAS_STATUS_NOT_INITIALIZED 库未初始化
CUBLAS_STATUS_INVALID_VALUE 参数 m,n<0 或 incx,incy=0
CUBLAS_STATUS_EXECUTION_FAILED 该功能无法在 GPU 上启动

请参考:
ssymv, dsymv

猜你喜欢

转载自blog.csdn.net/kunhe0512/article/details/126519179