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 上启动 |