Class cublas
Inheritance
System.Object
cublas
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Assembly: Hybridizer.Runtime.CUDAImports.dll
Syntax
Constructors
cublas()
builds a cublas instance with requested cuda version (5.0 to 9.1)
Declaration
Methods
Caxpy(cublasHandle_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function multiplies the vector x by the scalar α and adds it to the vector y overwriting the latest vector with the result
Declaration
public cublasStatus_t Caxpy(cublasHandle_t handle, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Ccopy(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function copies the vector x into the vector y.
Declaration
public cublasStatus_t Ccopy(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Cdotc(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function computes the dot product of vectors x and y
Declaration
public cublasStatus_t Cdotc(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
result |
|
Returns
Cdotu(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function computes the dot product of vectors x and y
Declaration
public cublasStatus_t Cdotu(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
result |
|
Returns
Cgbmv(cublasHandle_t, cublasOperation_t, Int32, Int32, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the banded matrix-vector multiplication y = α op(A ) x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Cgbmv(cublasHandle_t handle, cublasOperation_t trans, int m, int n, int kl, int ku, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
trans |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.Int32 |
kl |
|
System.Int32 |
ku |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Cgemm(cublasHandle_t, cublasOperation_t, cublasOperation_t, Int32, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the matrix-matrix multiplication C = α op(A ) op(B ) + β C
Declaration
public cublasStatus_t Cgemm(cublasHandle_t handle, cublasOperation_t transa, cublasOperation_t transb, int m, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
transa |
|
cublasOperation_t |
transb |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Cgemv(cublasHandle_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the matrix-vector multiplication y = α op(A ) x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Cgemv(cublasHandle_t handle, cublasOperation_t trans, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
trans |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Cgerc(cublasHandle_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the rank-1 update A = α x y^T + A if ger(),geru() is called or α x y^H + A if gerc() is called
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Cgerc(cublasHandle_t handle, int m, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Cgeru(cublasHandle_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the rank-1 update A = α x y^T + A if ger(),geru() is called or α x y^H + A if gerc() is called
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Cgeru(cublasHandle_t handle, int m, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Chbmv(cublasHandle_t, cublasFillMode_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian banded matrix-vector multiplication y = α A x + β y
Declaration
public cublasStatus_t Chbmv(cublasHandle_t handle, cublasFillMode_t uplo, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Chemm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian matrix-matrix multiplication : C = α A B + β C if side == CUBLAS_SIDE_LEFT ; α B A + β C if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Chemm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasSideMode_t |
side |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Chemv(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian matrix-vector multiplication y = α A x + β y
Declaration
public cublasStatus_t Chemv(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Cher(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function performs the Hermitian rank-1 update A = α x xH + A
Declaration
public cublasStatus_t Cher(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Cher2(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the Hermitian rank-2 update A = α x yH + conj(α) y x H + A
Declaration
public cublasStatus_t Cher2(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Cher2k(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian rank-2 k update C = α op ( A ) op ( B )H + conj(α) op ( B ) op ( A )H + β C
Declaration
public cublasStatus_t Cher2k(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
cublasOperation_t |
trans |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Cherk(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian rank-k update : C = α op ( A ) op ( A ) H + β C
Declaration
public cublasStatus_t Cherk(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr beta, IntPtr C, int ldc)
Parameters
Returns
Chpmv(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian packed matrix-vector multiplication y = α A x + β y
Declaration
public cublasStatus_t Chpmv(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr AP, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
AP |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Chpr(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr)
This function performs the packed Hermitian rank-1 update A = α x xH + A
Declaration
public cublasStatus_t Chpr(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr AP)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
AP |
|
Returns
Chpr2(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function performs the packed Hermitian rank-2 update A = α x yH + conj(α) y x H + A
Declaration
public cublasStatus_t Chpr2(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr AP)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
AP |
|
Returns
Create(out cublasHandle_t)
This function initializes the CUBLAS library and creates a handle to an opaque structure holding the CUBLAS library context. It allocates hardware resources on the host and device and must be called prior to making any other CUBLAS library calls. The CUBLAS library context is tied to the current CUDA device. To use the library on multiple devices, one CUBLAS handle needs to be created for each device. Furthermore, for a given device, multiple CUBLAS handles with different configuration can be created. Because cublasCreate allocates some internal resources and the release of those resources by calling cublasDestroy will implicitly call cublasDeviceSynchronize, it is recommended to minimize the number of cublasCreate/cublasDestroy occurences. For multi-threaded applications that use the same device from different threads, the recommended programming model is to create one CUBLAS handle per thread and use that CUBLAS handle for the entire life of the thread.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t Create(out cublasHandle_t handle)
Parameters
Returns
Crot(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr)
This function applies Givens rotation matrix (c, s; -s, c)
Declaration
public cublasStatus_t Crot(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr c, IntPtr s)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
c |
|
System.IntPtr |
s |
|
Returns
Crotg(cublasHandle_t, IntPtr, IntPtr, IntPtr, IntPtr)
This function constructs the Givens rotation matrix (c, s; -s, c)
Declaration
public cublasStatus_t Crotg(cublasHandle_t handle, IntPtr a, IntPtr b, IntPtr c, IntPtr s)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.IntPtr |
a |
|
System.IntPtr |
b |
|
System.IntPtr |
c |
|
System.IntPtr |
s |
|
Returns
Cscal(cublasHandle_t, Int32, IntPtr, IntPtr, Int32)
This function scales the vector x by the scalar α and overwrites it with the result
Declaration
public cublasStatus_t Cscal(cublasHandle_t handle, int n, IntPtr alpha, IntPtr x, int incx)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
Returns
Csrot(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr)
This function applies Givens rotation matrix (c, s; -s, c)
Declaration
public cublasStatus_t Csrot(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr c, IntPtr s)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
c |
|
System.IntPtr |
s |
|
Returns
Csscal(cublasHandle_t, Int32, IntPtr, IntPtr, Int32)
This function scales the vector x by the scalar α and overwrites it with the result
Declaration
public cublasStatus_t Csscal(cublasHandle_t handle, int n, IntPtr alpha, IntPtr x, int incx)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
Returns
Cswap(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function interchanges the elements of vector x and y
Declaration
public cublasStatus_t Cswap(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Csymm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric matrix-matrix multiplication C = α A B + β C if side == CUBLAS_SIDE_LEFT ; α B A + β C if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Csymm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasSideMode_t |
side |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Csymv(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric matrix-vector multiplication. y = α A x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Csymv(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Csyr(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function performs the symmetric rank-1 update A = α x xT + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Csyr(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Csyr2(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the symmetric rank-2 update A = α (x yT + y x T) + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Csyr2(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Csyr2k(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric rank- 2 k update C = α ( op ( A ) op ( B )T + op ( B ) op ( A )T ) + β C
Declaration
public cublasStatus_t Csyr2k(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
cublasOperation_t |
trans |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Csyrk(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric rank- k update C = α op(A ) op(A )T + β C
Declaration
public cublasStatus_t Csyrk(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr beta, IntPtr C, int ldc)
Parameters
Returns
Ctbmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular banded matrix-vector multiplication x = op(A) x
Declaration
public cublasStatus_t Ctbmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, int k, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Ctbsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular banded linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Ctbsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, int k, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Ctpmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, IntPtr, Int32)
This function performs the triangular packed matrix-vector multiplication x = op (A) x
Declaration
public cublasStatus_t Ctpmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr AP, IntPtr x, int incx)
Parameters
Returns
Ctpsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, IntPtr, Int32)
This function solves the packed triangular linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Ctpsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr AP, IntPtr x, int incx)
Parameters
Returns
Ctrmm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular matrix-matrix multiplication C = α op ( A ) B if side == CUBLAS_SIDE_LEFT ; α B op ( A ) if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Ctrmm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr C, int ldc)
Parameters
Returns
Ctrmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular matrix-vector multiplication x = op(A) x
Declaration
public cublasStatus_t Ctrmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Ctrsm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular linear system with multiple right-hand-sides : op ( A ) X = α B if side == CUBLAS_SIDE_LEFT ; X op ( A ) = α B if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Ctrsm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb)
Parameters
Returns
Ctrsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Ctrsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Dasum(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function computes the sum of the absolute values of the elements of vector x
Declaration
public cublasStatus_t Dasum(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Daxpy(cublasHandle_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function multiplies the vector x by the scalar α and adds it to the vector y overwriting the latest vector with the result
Declaration
public cublasStatus_t Daxpy(cublasHandle_t handle, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Dcopy(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function copies the vector x into the vector y.
Declaration
public cublasStatus_t Dcopy(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Ddot(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function computes the dot product of vectors x and y
Declaration
public cublasStatus_t Ddot(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
result |
|
Returns
Destroy(cublasHandle_t)
This function releases hardware resources used by the CUBLAS library. This function is usually the last call with a particular handle to the CUBLAS library. Because cublasCreate allocates some internal resources and the release of those resources by calling cublasDestroy will implicitly call cublasDeviceSynchronize, it is recommended to minimize the number of cublasCreate/cublasDestroy occurences.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t Destroy(cublasHandle_t handle)
Parameters
Returns
Dgbmv(cublasHandle_t, cublasOperation_t, Int32, Int32, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the banded matrix-vector multiplication y = α op(A ) x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Dgbmv(cublasHandle_t handle, cublasOperation_t trans, int m, int n, int kl, int ku, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
trans |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.Int32 |
kl |
|
System.Int32 |
ku |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Dgemm(cublasHandle_t, cublasOperation_t, cublasOperation_t, Int32, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the matrix-matrix multiplication C = α op(A ) op(B ) + β C
Declaration
public cublasStatus_t Dgemm(cublasHandle_t handle, cublasOperation_t transa, cublasOperation_t transb, int m, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
transa |
|
cublasOperation_t |
transb |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Dgemv(cublasHandle_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the matrix-vector multiplication y = α op(A ) x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Dgemv(cublasHandle_t handle, cublasOperation_t trans, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
trans |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Dger(cublasHandle_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the rank-1 update A = α x y^T + A if ger(),geru() is called or α x y^H + A if gerc() is called
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Dger(cublasHandle_t handle, int m, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Dnrm2(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function computes the Euclidean norm of the vector x
Declaration
public cublasStatus_t Dnrm2(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Drot(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr)
This function applies Givens rotation matrix (c, s; -s, c)
Declaration
public cublasStatus_t Drot(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr c, IntPtr s)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
c |
|
System.IntPtr |
s |
|
Returns
Drotg(cublasHandle_t, IntPtr, IntPtr, IntPtr, IntPtr)
This function constructs the Givens rotation matrix (c, s; -s, c)
Declaration
public cublasStatus_t Drotg(cublasHandle_t handle, IntPtr a, IntPtr b, IntPtr c, IntPtr s)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.IntPtr |
a |
|
System.IntPtr |
b |
|
System.IntPtr |
c |
|
System.IntPtr |
s |
|
Returns
Drotm(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function applies the modified Givens transformation (h11, h12; h21, h22)
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Drotm(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr param)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
param |
|
Returns
Drotmg(cublasHandle_t, IntPtr, IntPtr, IntPtr, IntPtr, IntPtr)
This function constructs the modified Givens transformation (h11, h12; h21, h22)
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Drotmg(cublasHandle_t handle, IntPtr d1, IntPtr d2, IntPtr x1, IntPtr y1, IntPtr param)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.IntPtr |
d1 |
|
System.IntPtr |
d2 |
|
System.IntPtr |
x1 |
|
System.IntPtr |
y1 |
|
System.IntPtr |
param |
|
Returns
Dsbmv(cublasHandle_t, cublasFillMode_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric banded matrix-vector multiplication
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Dsbmv(cublasHandle_t handle, cublasFillMode_t uplo, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Dscal(cublasHandle_t, Int32, IntPtr, IntPtr, Int32)
This function scales the vector x by the scalar α and overwrites it with the result
Declaration
public cublasStatus_t Dscal(cublasHandle_t handle, int n, IntPtr alpha, IntPtr x, int incx)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
Returns
Dspmv(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric packed matrix-vector multiplication y = α A x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Dspmv(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr AP, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
AP |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Dspr(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr)
This function performs the packed symmetric rank-1 update A = α x x^T + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Dspr(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr AP)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
AP |
|
Returns
Dspr2(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function performs the packed symmetric rank-2 update A = α(x y^T + y x^T) + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Dspr2(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr AP)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
AP |
|
Returns
Dswap(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function interchanges the elements of vector x and y
Declaration
public cublasStatus_t Dswap(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Dsymm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric matrix-matrix multiplication C = α A B + β C if side == CUBLAS_SIDE_LEFT ; α B A + β C if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Dsymm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasSideMode_t |
side |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Dsymv(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric matrix-vector multiplication. y = α A x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Dsymv(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Dsyr(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function performs the symmetric rank-1 update A = α x xT + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Dsyr(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Dsyr2(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the symmetric rank-2 update A = α (x yT + y x T) + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Dsyr2(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Dsyr2k(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric rank- 2 k update C = α ( op ( A ) op ( B )T + op ( B ) op ( A )T ) + β C
Declaration
public cublasStatus_t Dsyr2k(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
cublasOperation_t |
trans |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Dsyrk(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric rank- k update C = α op(A ) op(A )T + β C
Declaration
public cublasStatus_t Dsyrk(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr beta, IntPtr C, int ldc)
Parameters
Returns
Dtbmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular banded matrix-vector multiplication x = op(A) x
Declaration
public cublasStatus_t Dtbmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, int k, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Dtbsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular banded linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Dtbsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, int k, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Dtpmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, IntPtr, Int32)
This function performs the triangular packed matrix-vector multiplication x = op (A) x
Declaration
public cublasStatus_t Dtpmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr AP, IntPtr x, int incx)
Parameters
Returns
Dtpsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, IntPtr, Int32)
This function solves the packed triangular linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Dtpsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr AP, IntPtr x, int incx)
Parameters
Returns
Dtrmm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular matrix-matrix multiplication C = α op ( A ) B if side == CUBLAS_SIDE_LEFT ; α B op ( A ) if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Dtrmm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr C, int ldc)
Parameters
Returns
Dtrmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular matrix-vector multiplication x = op(A) x
Declaration
public cublasStatus_t Dtrmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Dtrsm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular linear system with multiple right-hand-sides : op ( A ) X = α B if side == CUBLAS_SIDE_LEFT ; X op ( A ) = α B if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Dtrsm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb)
Parameters
Returns
Dtrsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Dtrsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Dzasum(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function computes the sum of the absolute values of the elements of vector x
Declaration
public cublasStatus_t Dzasum(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Dznrm2(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function computes the Euclidean norm of the vector x
Declaration
public cublasStatus_t Dznrm2(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
GetAtomicsMode(cublasHandle_t, out cublasAtomicsMode_t)
This function queries the atomic mode of a specific cuBLAS context.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t GetAtomicsMode(cublasHandle_t handle, out cublasAtomicsMode_t mode)
Parameters
Returns
GetCudaVersion()
Gets CUDA version from app.config
Declaration
public static string GetCudaVersion()
Returns
Type |
Description |
System.String |
|
GetMatrix(Int32, Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function copies a tile of rows x cols elements from a matrix A in GPU memory space to a matrix B in host memory space. It is assumed that each element requires storage of elemSize bytes and that both matrices are stored in column-major format, with the leading dimension of the source matrix A and destination matrix B given in lda and ldb, respectively. The leading dimension indicates the number of rows of the allocated matrix, even if only a submatrix of it is being used. In general, A is a device pointer that points to an object, or part of an object, that was allocated in GPU memory space via cublasAlloc().
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t GetMatrix(int rows, int cols, int elemSize, IntPtr A, int lda, IntPtr B, int ldb)
Parameters
Type |
Name |
Description |
System.Int32 |
rows |
|
System.Int32 |
cols |
|
System.Int32 |
elemSize |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
Returns
GetMatrixAsync(Int32, Int32, Int32, IntPtr, Int32, IntPtr, Int32, cudaStream_t)
This function has the same functionality as cublasGetMatrix(), with the exception that the data transfer is done asynchronously (with respect to the host) using the given CUDA™ stream parameter.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t GetMatrixAsync(int rows, int cols, int elemSize, IntPtr A, int lda, IntPtr B, int ldb, cudaStream_t stream)
Parameters
Type |
Name |
Description |
System.Int32 |
rows |
|
System.Int32 |
cols |
|
System.Int32 |
elemSize |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
cudaStream_t |
stream |
|
Returns
GetPointerMode(cublasHandle_t, out cublasPointerMode_t)
This function obtains the pointer mode used by the cuBLAS library. Please see the section on the cublasPointerMode_t type for more details.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t GetPointerMode(cublasHandle_t handle, out cublasPointerMode_t mode)
Parameters
Returns
GetStream(cublasHandle_t, out cudaStream_t)
This function gets the cuBLAS library stream, which is being used to execute all calls to the cuBLAS library functions. If the cuBLAS library stream is not set, all kernels use the defaultNULL stream.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t GetStream(cublasHandle_t handle, out cudaStream_t streamId)
Parameters
Returns
GetVector(Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function copies n elements from a vector x in GPU memory space to a vector y in host memory space. Elements in both vectors are assumed to have a size of elemSize bytes. The storage spacing between consecutive elements is given by incx for the source vector and incy for the destination vector y.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t GetVector(int n, int elemSize, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
System.Int32 |
n |
|
System.Int32 |
elemSize |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
GetVectorAsync(Int32, Int32, IntPtr, Int32, IntPtr, Int32, cudaStream_t)
This function has the same functionality as cublasGetVector(), with the exception that the data transfer is done asynchronously (with respect to the host) using the given CUDA™ stream parameter.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t GetVectorAsync(int n, int elemSize, IntPtr devicePtr, int incx, IntPtr hostPtr, int incy, cudaStream_t stream)
Parameters
Type |
Name |
Description |
System.Int32 |
n |
|
System.Int32 |
elemSize |
|
System.IntPtr |
devicePtr |
|
System.Int32 |
incx |
|
System.IntPtr |
hostPtr |
|
System.Int32 |
incy |
|
cudaStream_t |
stream |
|
Returns
GetVersion(out Int32)
This function returns the version number of the cuBLAS library.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t GetVersion(out int version)
Parameters
Type |
Name |
Description |
System.Int32 |
version |
|
Returns
Icamax(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function finds the (smallest) index of the element of the maximum magnitude.
Declaration
public cublasStatus_t Icamax(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Icamin(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function finds the (smallest) index of the element of the minimum magnitude
Declaration
public cublasStatus_t Icamin(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Idamax(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function finds the (smallest) index of the element of the maximum magnitude.
Declaration
public cublasStatus_t Idamax(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Idamin(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function finds the (smallest) index of the element of the minimum magnitude
Declaration
public cublasStatus_t Idamin(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Isamax(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function finds the (smallest) index of the element of the maximum magnitude.
Declaration
public cublasStatus_t Isamax(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Isamin(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function finds the (smallest) index of the element of the minimum magnitude
Declaration
public cublasStatus_t Isamin(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Izamax(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function finds the (smallest) index of the element of the maximum magnitude.
Declaration
public cublasStatus_t Izamax(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Izamin(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function finds the (smallest) index of the element of the minimum magnitude
Declaration
public cublasStatus_t Izamin(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Sasum(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function computes the sum of the absolute values of the elements of vector x
Declaration
public cublasStatus_t Sasum(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Saxpy(cublasHandle_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function multiplies the vector x by the scalar α and adds it to the vector y overwriting the latest vector with the result
Declaration
public cublasStatus_t Saxpy(cublasHandle_t handle, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Scasum(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function computes the sum of the absolute values of the elements of vector x
Declaration
public cublasStatus_t Scasum(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Scnrm2(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function computes the Euclidean norm of the vector x
Declaration
public cublasStatus_t Scnrm2(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Scopy(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function copies the vector x into the vector y.
Declaration
public cublasStatus_t Scopy(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Sdot(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function computes the dot product of vectors x and y
Declaration
public cublasStatus_t Sdot(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
result |
|
Returns
SetAtomicsMode(cublasHandle_t, cublasAtomicsMode_t)
Some routines like cublas<t>symv and cublas<t>hemv have an alternate implementation that use atomics to cumulate results. This implementation is generally significantly faster but can generate results that are not strictly identical from one run to the others. Mathematically, those different results are not significant but when debugging those differences can be prejudicial.
This function allows or disallows the usage of atomics in the cuBLAS library for all routines which have an alternate implementation. When not explicitly specified in the documentation of any cuBLAS routine, it means that this routine does not have an alternate implementation that use atomics. When atomics mode is disabled, each cuBLAS routine should produce the same results from one run to the other when called with identical parameters on the same Hardware.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t SetAtomicsMode(cublasHandle_t handle, cublasAtomicsMode_t mode)
Parameters
Returns
SetMatrix(Int32, Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function copies a tile of rows x cols elements from a matrix A in host memory space to a matrix B in GPU memory space. It is assumed that each element requires storage of elemSize bytes and that both matrices are stored in column-major format, with the leading dimension of the source matrix A and destination matrix B given in lda and ldb, respectively. The leading dimension indicates the number of rows of the allocated matrix, even if only a submatrix of it is being used. In general, B is a device pointer that points to an object, or part of an object, that was allocated in GPU memory space via cublasAlloc().
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t SetMatrix(int rows, int cols, int elemSize, IntPtr A, int lda, IntPtr B, int ldb)
Parameters
Type |
Name |
Description |
System.Int32 |
rows |
|
System.Int32 |
cols |
|
System.Int32 |
elemSize |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
Returns
SetMatrixAsync(Int32, Int32, Int32, IntPtr, Int32, IntPtr, Int32, cudaStream_t)
This function has the same functionality as cublasSetMatrix(), with the exception that the data transfer is done asynchronously (with respect to the host) using the given CUDA™ stream parameter.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t SetMatrixAsync(int rows, int cols, int elemSize, IntPtr A, int lda, IntPtr B, int ldb, cudaStream_t stream)
Parameters
Type |
Name |
Description |
System.Int32 |
rows |
|
System.Int32 |
cols |
|
System.Int32 |
elemSize |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
cudaStream_t |
stream |
|
Returns
SetPointerMode(cublasHandle_t, cublasPointerMode_t)
This function sets the pointer mode used by the cuBLAS library. The default is for the values to be passed by reference on the host. Please see the section on the cublasPointerMode_t type for more details.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t SetPointerMode(cublasHandle_t handle, cublasPointerMode_t mode)
Parameters
Returns
SetStream(cublasHandle_t, cudaStream_t)
This function sets the cuBLAS library stream, which will be used to execute all subsequent calls to the cuBLAS library functions. If the cuBLAS library stream is not set, all kernels use the defaultNULL stream. In particular, this routine can be used to change the stream between kernel launches and then to reset the cuBLAS library stream back to NULL.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t SetStream(cublasHandle_t handle, cudaStream_t streamId)
Parameters
Returns
SetVector(Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function copies n elements from a vector x in host memory space to a vector y in GPU memory space. Elements in both vectors are assumed to have a size of elemSize bytes. The storage spacing between consecutive elements is given by incx for the source vector x and by incy for the destination vector y.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t SetVector(int n, int elemSize, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
System.Int32 |
n |
|
System.Int32 |
elemSize |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
SetVectorAsync(Int32, Int32, IntPtr, Int32, IntPtr, Int32, cudaStream_t)
This function has the same functionality as cublasSetVector(), with the exception that the data transfer is done asynchronously (with respect to the host) using the given CUDA™ stream parameter.
Complete documentation on nvidia documentation
Declaration
public cublasStatus_t SetVectorAsync(int n, int elemSize, IntPtr hostPtr, int incx, IntPtr devicePtr, int incy, cudaStream_t stream)
Parameters
Type |
Name |
Description |
System.Int32 |
n |
|
System.Int32 |
elemSize |
|
System.IntPtr |
hostPtr |
|
System.Int32 |
incx |
|
System.IntPtr |
devicePtr |
|
System.Int32 |
incy |
|
cudaStream_t |
stream |
|
Returns
Sgbmv(cublasHandle_t, cublasOperation_t, Int32, Int32, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the banded matrix-vector multiplication y = α op(A ) x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Sgbmv(cublasHandle_t handle, cublasOperation_t trans, int m, int n, int kl, int ku, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
trans |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.Int32 |
kl |
|
System.Int32 |
ku |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Sgemm(cublasHandle_t, cublasOperation_t, cublasOperation_t, Int32, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the matrix-matrix multiplication C = α op(A ) op(B ) + β C
Declaration
public cublasStatus_t Sgemm(cublasHandle_t handle, cublasOperation_t transa, cublasOperation_t transb, int m, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
transa |
|
cublasOperation_t |
transb |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Sgemv(cublasHandle_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the matrix-vector multiplication y = α op(A ) x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Sgemv(cublasHandle_t handle, cublasOperation_t trans, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
trans |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Sger(cublasHandle_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the rank-1 update A = α x y^T + A if ger(),geru() is called or α x y^H + A if gerc() is called
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Sger(cublasHandle_t handle, int m, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Snrm2(cublasHandle_t, Int32, IntPtr, Int32, IntPtr)
This function computes the Euclidean norm of the vector x
Declaration
public cublasStatus_t Snrm2(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
result |
|
Returns
Srot(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr)
This function applies Givens rotation matrix (c, s; -s, c)
Declaration
public cublasStatus_t Srot(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr c, IntPtr s)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
c |
|
System.IntPtr |
s |
|
Returns
Srotg(cublasHandle_t, IntPtr, IntPtr, IntPtr, IntPtr)
This function constructs the Givens rotation matrix (c, s; -s, c)
Declaration
public cublasStatus_t Srotg(cublasHandle_t handle, IntPtr a, IntPtr b, IntPtr c, IntPtr s)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.IntPtr |
a |
|
System.IntPtr |
b |
|
System.IntPtr |
c |
|
System.IntPtr |
s |
|
Returns
Srotm(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function applies the modified Givens transformation (h11, h12; h21, h22)
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Srotm(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr param)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
param |
|
Returns
Srotmg(cublasHandle_t, IntPtr, IntPtr, IntPtr, IntPtr, IntPtr)
This function constructs the modified Givens transformation (h11, h12; h21, h22)
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Srotmg(cublasHandle_t handle, IntPtr d1, IntPtr d2, IntPtr x1, IntPtr y1, IntPtr param)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.IntPtr |
d1 |
|
System.IntPtr |
d2 |
|
System.IntPtr |
x1 |
|
System.IntPtr |
y1 |
|
System.IntPtr |
param |
|
Returns
Ssbmv(cublasHandle_t, cublasFillMode_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric banded matrix-vector multiplication
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Ssbmv(cublasHandle_t handle, cublasFillMode_t uplo, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Sscal(cublasHandle_t, Int32, IntPtr, IntPtr, Int32)
This function scales the vector x by the scalar α and overwrites it with the result
Declaration
public cublasStatus_t Sscal(cublasHandle_t handle, int n, IntPtr alpha, IntPtr x, int incx)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
Returns
Sspmv(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric packed matrix-vector multiplication y = α A x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Sspmv(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr AP, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
AP |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Sspr(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr)
This function performs the packed symmetric rank-1 update A = α x x^T + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Sspr(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr AP)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
AP |
|
Returns
Sspr2(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function performs the packed symmetric rank-2 update A = α(x y^T + y x^T) + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Sspr2(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr AP)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
AP |
|
Returns
Sswap(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function interchanges the elements of vector x and y
Declaration
public cublasStatus_t Sswap(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Ssymm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric matrix-matrix multiplication C = α A B + β C if side == CUBLAS_SIDE_LEFT ; α B A + β C if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Ssymm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasSideMode_t |
side |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Ssymv(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric matrix-vector multiplication. y = α A x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Ssymv(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Ssyr(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function performs the symmetric rank-1 update A = α x xT + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Ssyr(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Ssyr2(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the symmetric rank-2 update A = α (x yT + y x T) + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Ssyr2(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Ssyr2k(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric rank- 2 k update C = α ( op ( A ) op ( B )T + op ( B ) op ( A )T ) + β C
Declaration
public cublasStatus_t Ssyr2k(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
cublasOperation_t |
trans |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Ssyrk(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric rank- k update C = α op(A ) op(A )T + β C
Declaration
public cublasStatus_t Ssyrk(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr beta, IntPtr C, int ldc)
Parameters
Returns
Stbmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular banded matrix-vector multiplication x = op(A) x
Declaration
public cublasStatus_t Stbmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, int k, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Stbsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular banded linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Stbsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, int k, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Stpmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, IntPtr, Int32)
This function performs the triangular packed matrix-vector multiplication x = op (A) x
Declaration
public cublasStatus_t Stpmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr AP, IntPtr x, int incx)
Parameters
Returns
Stpsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, IntPtr, Int32)
This function solves the packed triangular linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Stpsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr AP, IntPtr x, int incx)
Parameters
Returns
Strmm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular matrix-matrix multiplication C = α op ( A ) B if side == CUBLAS_SIDE_LEFT ; α B op ( A ) if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Strmm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr C, int ldc)
Parameters
Returns
Strmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular matrix-vector multiplication x = op(A) x
Declaration
public cublasStatus_t Strmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Strsm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular linear system with multiple right-hand-sides : op ( A ) X = α B if side == CUBLAS_SIDE_LEFT ; X op ( A ) = α B if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Strsm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb)
Parameters
Returns
Strsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Strsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Zaxpy(cublasHandle_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function multiplies the vector x by the scalar α and adds it to the vector y overwriting the latest vector with the result
Declaration
public cublasStatus_t Zaxpy(cublasHandle_t handle, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Zcopy(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function copies the vector x into the vector y.
Declaration
public cublasStatus_t Zcopy(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Zdotc(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function computes the dot product of vectors x and y
Declaration
public cublasStatus_t Zdotc(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
result |
|
Returns
Zdotu(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function computes the dot product of vectors x and y
Declaration
public cublasStatus_t Zdotu(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr result)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
result |
|
Returns
Zdrot(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr)
This function applies Givens rotation matrix (c, s; -s, c)
Declaration
public cublasStatus_t Zdrot(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr c, IntPtr s)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
c |
|
System.IntPtr |
s |
|
Returns
Zdscal(cublasHandle_t, Int32, IntPtr, IntPtr, Int32)
This function scales the vector x by the scalar α and overwrites it with the result
Declaration
public cublasStatus_t Zdscal(cublasHandle_t handle, int n, IntPtr alpha, IntPtr x, int incx)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
Returns
Zgbmv(cublasHandle_t, cublasOperation_t, Int32, Int32, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the banded matrix-vector multiplication y = α op(A ) x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Zgbmv(cublasHandle_t handle, cublasOperation_t trans, int m, int n, int kl, int ku, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
trans |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.Int32 |
kl |
|
System.Int32 |
ku |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Zgemm(cublasHandle_t, cublasOperation_t, cublasOperation_t, Int32, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the matrix-matrix multiplication C = α op(A ) op(B ) + β C
Declaration
public cublasStatus_t Zgemm(cublasHandle_t handle, cublasOperation_t transa, cublasOperation_t transb, int m, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
transa |
|
cublasOperation_t |
transb |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Zgemv(cublasHandle_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the matrix-vector multiplication y = α op(A ) x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Zgemv(cublasHandle_t handle, cublasOperation_t trans, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasOperation_t |
trans |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Zgerc(cublasHandle_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the rank-1 update A = α x y^T + A if ger(),geru() is called or α x y^H + A if gerc() is called
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Zgerc(cublasHandle_t handle, int m, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Zgeru(cublasHandle_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the rank-1 update A = α x y^T + A if ger(),geru() is called or α x y^H + A if gerc() is called
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Zgeru(cublasHandle_t handle, int m, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Zhbmv(cublasHandle_t, cublasFillMode_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian banded matrix-vector multiplication y = α A x + β y
Declaration
public cublasStatus_t Zhbmv(cublasHandle_t handle, cublasFillMode_t uplo, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Zhemm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian matrix-matrix multiplication : C = α A B + β C if side == CUBLAS_SIDE_LEFT ; α B A + β C if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Zhemm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasSideMode_t |
side |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Zhemv(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian matrix-vector multiplication y = α A x + β y
Declaration
public cublasStatus_t Zhemv(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Zher(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function performs the Hermitian rank-1 update A = α x xH + A
Declaration
public cublasStatus_t Zher(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Zher2(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the Hermitian rank-2 update A = α x yH + conj(α) y x H + A
Declaration
public cublasStatus_t Zher2(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Zher2k(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian rank-2 k update C = α op ( A ) op ( B )H + conj(α) op ( B ) op ( A )H + β C
Declaration
public cublasStatus_t Zher2k(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
cublasOperation_t |
trans |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Zherk(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian rank-k update : C = α op ( A ) op ( A ) H + β C
Declaration
public cublasStatus_t Zherk(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr beta, IntPtr C, int ldc)
Parameters
Returns
Zhpmv(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the Hermitian packed matrix-vector multiplication y = α A x + β y
Declaration
public cublasStatus_t Zhpmv(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr AP, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
AP |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Zhpr(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr)
This function performs the packed Hermitian rank-1 update A = α x xH + A
Declaration
public cublasStatus_t Zhpr(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr AP)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
AP |
|
Returns
Zhpr2(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr)
This function performs the packed Hermitian rank-2 update A = α x yH + conj(α) y x H + A
Declaration
public cublasStatus_t Zhpr2(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr AP)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
AP |
|
Returns
Zrot(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr)
This function applies Givens rotation matrix (c, s; -s, c)
Declaration
public cublasStatus_t Zrot(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy, IntPtr c, IntPtr s)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
c |
|
System.IntPtr |
s |
|
Returns
Zrotg(cublasHandle_t, IntPtr, IntPtr, IntPtr, IntPtr)
This function constructs the Givens rotation matrix (c, s; -s, c)
Declaration
public cublasStatus_t Zrotg(cublasHandle_t handle, IntPtr a, IntPtr b, IntPtr c, IntPtr s)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.IntPtr |
a |
|
System.IntPtr |
b |
|
System.IntPtr |
c |
|
System.IntPtr |
s |
|
Returns
Zscal(cublasHandle_t, Int32, IntPtr, IntPtr, Int32)
This function scales the vector x by the scalar α and overwrites it with the result
Declaration
public cublasStatus_t Zscal(cublasHandle_t handle, int n, IntPtr alpha, IntPtr x, int incx)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
Returns
Zswap(cublasHandle_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function interchanges the elements of vector x and y
Declaration
public cublasStatus_t Zswap(cublasHandle_t handle, int n, IntPtr x, int incx, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
System.Int32 |
n |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Zsymm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric matrix-matrix multiplication C = α A B + β C if side == CUBLAS_SIDE_LEFT ; α B A + β C if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Zsymm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasSideMode_t |
side |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
m |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Zsymv(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric matrix-vector multiplication. y = α A x + β y
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Zsymv(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr A, int lda, IntPtr x, int incx, IntPtr beta, IntPtr y, int incy)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
beta |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
Returns
Zsyr(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function performs the symmetric rank-1 update A = α x xT + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Zsyr(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Zsyr2(cublasHandle_t, cublasFillMode_t, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the symmetric rank-2 update A = α (x yT + y x T) + A
Complete documentation on Nvidia documentation
Declaration
public cublasStatus_t Zsyr2(cublasHandle_t handle, cublasFillMode_t uplo, int n, IntPtr alpha, IntPtr x, int incx, IntPtr y, int incy, IntPtr A, int lda)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
System.Int32 |
n |
|
System.IntPtr |
alpha |
|
System.IntPtr |
x |
|
System.Int32 |
incx |
|
System.IntPtr |
y |
|
System.Int32 |
incy |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
Returns
Zsyr2k(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric rank- 2 k update C = α ( op ( A ) op ( B )T + op ( B ) op ( A )T ) + β C
Declaration
public cublasStatus_t Zsyr2k(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr beta, IntPtr C, int ldc)
Parameters
Type |
Name |
Description |
cublasHandle_t |
handle |
|
cublasFillMode_t |
uplo |
|
cublasOperation_t |
trans |
|
System.Int32 |
n |
|
System.Int32 |
k |
|
System.IntPtr |
alpha |
|
System.IntPtr |
A |
|
System.Int32 |
lda |
|
System.IntPtr |
B |
|
System.Int32 |
ldb |
|
System.IntPtr |
beta |
|
System.IntPtr |
C |
|
System.Int32 |
ldc |
|
Returns
Zsyrk(cublasHandle_t, cublasFillMode_t, cublasOperation_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32)
This function performs the symmetric rank- k update C = α op(A ) op(A )T + β C
Declaration
public cublasStatus_t Zsyrk(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, int n, int k, IntPtr alpha, IntPtr A, int lda, IntPtr beta, IntPtr C, int ldc)
Parameters
Returns
Ztbmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular banded matrix-vector multiplication x = op(A) x
Declaration
public cublasStatus_t Ztbmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, int k, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Ztbsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular banded linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Ztbsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, int k, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Ztpmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, IntPtr, Int32)
This function performs the triangular packed matrix-vector multiplication x = op (A) x
Declaration
public cublasStatus_t Ztpmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr AP, IntPtr x, int incx)
Parameters
Returns
Ztpsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, IntPtr, Int32)
This function solves the packed triangular linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Ztpsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr AP, IntPtr x, int incx)
Parameters
Returns
Ztrmm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular matrix-matrix multiplication C = α op ( A ) B if side == CUBLAS_SIDE_LEFT ; α B op ( A ) if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Ztrmm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb, IntPtr C, int ldc)
Parameters
Returns
Ztrmv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function performs the triangular matrix-vector multiplication x = op(A) x
Declaration
public cublasStatus_t Ztrmv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns
Ztrsm(cublasHandle_t, cublasSideMode_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, Int32, IntPtr, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular linear system with multiple right-hand-sides : op ( A ) X = α B if side == CUBLAS_SIDE_LEFT ; X op ( A ) = α B if side == CUBLAS_SIDE_RIGHT
Declaration
public cublasStatus_t Ztrsm(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int m, int n, IntPtr alpha, IntPtr A, int lda, IntPtr B, int ldb)
Parameters
Returns
Ztrsv(cublasHandle_t, cublasFillMode_t, cublasOperation_t, cublasDiagType_t, Int32, IntPtr, Int32, IntPtr, Int32)
This function solves the triangular linear system with a single right-hand-side op(A) x = b
Declaration
public cublasStatus_t Ztrsv(cublasHandle_t handle, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int n, IntPtr A, int lda, IntPtr x, int incx)
Parameters
Returns