/* * Copyright 1993-2019 NVIDIA Corporation. All rights reserved. * * NOTICE TO LICENSEE: * * This source code and/or documentation ("Licensed Deliverables") are * subject to NVIDIA intellectual property rights under U.S. and * international Copyright laws. * * These Licensed Deliverables contained herein is PROPRIETARY and * CONFIDENTIAL to NVIDIA and is being provided under the terms and * conditions of a form of NVIDIA software license agreement by and * between NVIDIA and Licensee ("License Agreement") or electronically * accepted by Licensee. Notwithstanding any terms or conditions to * the contrary in the License Agreement, reproduction or disclosure * of the Licensed Deliverables to any third party without the express * written consent of NVIDIA is prohibited. * * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THESE LICENSED DELIVERABLES. * * U.S. Government End Users. These Licensed Deliverables are a * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT * 1995), consisting of "commercial computer software" and "commercial * computer software documentation" as such terms are used in 48 * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government * only as a commercial end item. Consistent with 48 C.F.R.12.212 and * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all * U.S. Government End Users acquire the Licensed Deliverables with * only those rights set forth herein. * * Any use of the Licensed Deliverables in individual and commercial * software must include, in the user documentation and internal * comments to the code, the above Disclaimer and U.S. Government End * Users Notice. */ /* For now, the GPU only supports a 32-bit address space, so device pointers can be represented as INTEGER*4 in Fortran. In the future, device pointers may become 64-bit pointers, and will have to be represented as INTEGER*8 in Fortran, at which point devptr_t needs to be typedef'ed as long long. */ typedef size_t devptr_t; #if defined(__cplusplus) extern "C" { #endif /* __cplusplus */ int CUBLAS_INIT(void); int CUBLAS_SHUTDOWN(void); int CUBLAS_ALLOC(const int* n, const int* elemSize, devptr_t* devicePtr); int CUBLAS_FREE(const devptr_t* devicePtr); int CUBLAS_SET_VECTOR( const int* n, const int* elemSize, const void* x, const int* incx, const devptr_t* y, const int* incy); int CUBLAS_GET_VECTOR(const int* n, const int* elemSize, const devptr_t* x, const int* incx, void* y, const int* incy); int CUBLAS_SET_MATRIX(const int* rows, const int* cols, const int* elemSize, const void* A, const int* lda, const devptr_t* B, const int* ldb); int CUBLAS_GET_MATRIX( const int* rows, const int* cols, const int* elemSize, const devptr_t* A, const int* lda, void* B, const int* ldb); /* BLAS util */ void CUBLAS_XERBLA(const char* srName, int* info); int CUBLAS_GET_ERROR(void); #if defined(__cplusplus) } #endif /* __cplusplus */ /* * Fortran callable thin wrappers. Fortran application must allocate and * deallocate GPU memory, and copy data up and down. */ #if defined(__cplusplus) extern "C" { #endif /* __cplusplus */ #ifdef CUBLAS_G77 double CUBLAS_SDOT(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); double CUBLAS_SASUM(const int* n, const devptr_t* devPtrx, const int* incx); double CUBLAS_SNRM2(const int* n, const devptr_t* devPtrx, const int* incx); double CUBLAS_SCASUM(const int* n, const devptr_t* devPtrx, const int* incx); double CUBLAS_SCNRM2(const int* n, const devptr_t* devPtrx, const int* incx); #else float CUBLAS_SDOT(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); float CUBLAS_SASUM(const int* n, const devptr_t* devPtrx, const int* incx); float CUBLAS_SNRM2(const int* n, const devptr_t* devPtrx, const int* incx); float CUBLAS_SCASUM(const int* n, const devptr_t* devPtrx, const int* incx); float CUBLAS_SCNRM2(const int* n, const devptr_t* devPtrx, const int* incx); #endif double CUBLAS_DZNRM2(const int* n, const devptr_t* devPtrx, const int* incx); double CUBLAS_DZASUM(const int* n, const devptr_t* devPtrx, const int* incx); int CUBLAS_ISAMAX(const int* n, const devptr_t* devPtrx, const int* incx); int CUBLAS_ISAMIN(const int* n, const devptr_t* devPtrx, const int* incx); void CUBLAS_SAXPY(const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_SCOPY(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_SROT(const int* n, const devptr_t* devPtrX, const int* incx, const devptr_t* devPtrY, const int* incy, const float* sc, const float* ss); void CUBLAS_SROTG(float* sa, float* sb, float* sc, float* ss); void CUBLAS_SROTM(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const float* sparam); void CUBLAS_SROTMG(float* sd1, float* sd2, float* sx1, const float* sy1, float* sparam); void CUBLAS_SSCAL(const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx); void CUBLAS_SSWAP(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_CAXPY(const int* n, const cuComplex* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_ZAXPY(const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_CCOPY(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_ZCOPY(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_CROT(const int* n, const devptr_t* devPtrX, const int* incx, const devptr_t* devPtrY, const int* incy, const float* sc, const cuComplex* cs); void CUBLAS_ZROT(const int* n, const devptr_t* devPtrX, const int* incx, const devptr_t* devPtrY, const int* incy, const double* sc, const cuDoubleComplex* cs); void CUBLAS_CROTG(cuComplex* ca, const cuComplex* cb, float* sc, cuComplex* cs); void CUBLAS_ZROTG(cuDoubleComplex* ca, const cuDoubleComplex* cb, double* sc, cuDoubleComplex* cs); void CUBLAS_CSCAL(const int* n, const cuComplex* alpha, const devptr_t* devPtrx, const int* incx); void CUBLAS_CSROT(const int* n, const devptr_t* devPtrX, const int* incx, const devptr_t* devPtrY, const int* incy, const float* sc, const float* ss); void CUBLAS_ZDROT(const int* n, const devptr_t* devPtrX, const int* incx, const devptr_t* devPtrY, const int* incy, const double* sc, const double* ss); void CUBLAS_CSSCAL(const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx); void CUBLAS_CSWAP(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_ZSWAP(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_CTRMV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); #ifdef RETURN_COMPLEX cuComplex CUBLAS_CDOTU( const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); #else void CUBLAS_CDOTU(cuComplex* retVal, const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); #endif #ifdef RETURN_COMPLEX cuComplex CUBLAS_CDOTC( const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); #else void CUBLAS_CDOTC(cuComplex* retVal, const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); #endif int CUBLAS_ICAMAX(const int* n, const devptr_t* devPtrx, const int* incx); int CUBLAS_ICAMIN(const int* n, const devptr_t* devPtrx, const int* incx); int CUBLAS_IZAMAX(const int* n, const devptr_t* devPtrx, const int* incx); int CUBLAS_IZAMIN(const int* n, const devptr_t* devPtrx, const int* incx); double CUBLAS_DDOT(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); double CUBLAS_DASUM(const int* n, const devptr_t* devPtrx, const int* incx); double CUBLAS_DNRM2(const int* n, const devptr_t* devPtrx, const int* incx); int CUBLAS_IDAMAX(const int* n, const devptr_t* devPtrx, const int* incx); int CUBLAS_IDAMIN(const int* n, const devptr_t* devPtrx, const int* incx); void CUBLAS_DAXPY(const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_DCOPY(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_DROT(const int* n, const devptr_t* devPtrX, const int* incx, const devptr_t* devPtrY, const int* incy, const double* sc, const double* ss); void CUBLAS_DROTG(double* sa, double* sb, double* sc, double* ss); void CUBLAS_DROTM(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const double* sparam); void CUBLAS_DROTMG(double* sd1, double* sd2, double* sx1, const double* sy1, double* sparam); void CUBLAS_DSCAL(const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx); void CUBLAS_DSWAP(const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); #ifdef RETURN_COMPLEX cuDoubleComplex CUBLAS_ZDOTU( const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); cuDoubleComplex CUBLAS_ZDOTC( const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); #else void CUBLAS_ZDOTU(cuDoubleComplex* retVal, const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); void CUBLAS_ZDOTC(cuDoubleComplex* retVal, const int* n, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy); #endif void CUBLAS_ZSCAL(const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrx, const int* incx); void CUBLAS_ZDSCAL(const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx); /* BLAS2 */ void CUBLAS_SGBMV(const char* trans, const int* m, const int* n, const int* kl, const int* ku, const float* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const float* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_DGBMV(const char* trans, const int* m, const int* n, const int* kl, const int* ku, const double* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const double* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_CGBMV(const char* trans, const int* m, const int* n, const int* kl, const int* ku, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const cuComplex* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_ZGBMV(const char* trans, const int* m, const int* n, const int* kl, const int* ku, const cuDoubleComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const cuDoubleComplex* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_SGEMV(const char* trans, const int* m, const int* n, const float* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const float* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_SGER(const int* m, const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrA, const int* lda); void CUBLAS_SSBMV(const char* uplo, const int* n, const int* k, const float* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const float* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_DSBMV(const char* uplo, const int* n, const int* k, const double* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const double* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_CHBMV(const char* uplo, const int* n, const int* k, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const cuComplex* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_ZHBMV(const char* uplo, const int* n, const int* k, const cuDoubleComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const cuDoubleComplex* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_SSPMV(const char* uplo, const int* n, const float* alpha, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx, const float* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_DSPMV(const char* uplo, const int* n, const double* alpha, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx, const double* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_CHPMV(const char* uplo, const int* n, const cuComplex* alpha, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx, const cuComplex* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_ZHPMV(const char* uplo, const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx, const cuDoubleComplex* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_SSPR(const char* uplo, const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtrAP); void CUBLAS_DSPR(const char* uplo, const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtrAP); void CUBLAS_CHPR(const char* uplo, const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtrAP); void CUBLAS_ZHPR(const char* uplo, const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtrAP); void CUBLAS_SSPR2(const char* uplo, const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrAP); void CUBLAS_DSPR2(const char* uplo, const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrAP); void CUBLAS_CHPR2(const char* uplo, const int* n, const cuComplex* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrAP); void CUBLAS_ZHPR2(const char* uplo, const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrAP); void CUBLAS_SSYMV(const char* uplo, const int* n, const float* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const float* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_DSYMV(const char* uplo, const int* n, const double* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const double* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_CHEMV(const char* uplo, const int* n, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const cuComplex* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_ZHEMV(const char* uplo, const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const cuDoubleComplex* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_SSYR(const char* uplo, const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtrA, const int* lda); void CUBLAS_SSYR2(const char* uplo, const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrA, const int* lda); void CUBLAS_DSYR2(const char* uplo, const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrA, const int* lda); void CUBLAS_CHER2(const char* uplo, const int* n, const cuComplex* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrA, const int* lda); void CUBLAS_ZHER2(const char* uplo, const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrA, const int* lda); void CUBLAS_STBMV(const char* uplo, const char* trans, const char* diag, const int* n, const int* k, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_DTBMV(const char* uplo, const char* trans, const char* diag, const int* n, const int* k, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_CTBMV(const char* uplo, const char* trans, const char* diag, const int* n, const int* k, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_ZTBMV(const char* uplo, const char* trans, const char* diag, const int* n, const int* k, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_STBSV(const char* uplo, const char* trans, const char* diag, const int* n, const int* k, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_DTBSV(const char* uplo, const char* trans, const char* diag, const int* n, const int* k, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_CTBSV(const char* uplo, const char* trans, const char* diag, const int* n, const int* k, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_ZTBSV(const char* uplo, const char* trans, const char* diag, const int* n, const int* k, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_STPMV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx); void CUBLAS_DTPMV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx); void CUBLAS_CTPMV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx); void CUBLAS_ZTPMV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx); void CUBLAS_STPSV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx); void CUBLAS_DTPSV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx); void CUBLAS_CTPSV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx); void CUBLAS_ZTPSV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrAP, const devptr_t* devPtrx, const int* incx); void CUBLAS_STRMV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_DTRMV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_ZTRMV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_STRSV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_DGEMV(const char* trans, const int* m, const int* n, const double* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const double* beta, const devptr_t* devPtry, const int* incy); void CUBLAS_ZGEMV(const char* trans, const int* m, const int* n, const cuDoubleComplex* alpha, const devptr_t* A, const int* lda, const devptr_t* x, const int* incx, const cuDoubleComplex* beta, devptr_t* y, const int* incy); void CUBLAS_DGER(const int* m, const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrA, const int* lda); void CUBLAS_CGERU(const int* m, const int* n, const cuComplex* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrA, const int* lda); void CUBLAS_CGERC(const int* m, const int* n, const cuComplex* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrA, const int* lda); void CUBLAS_ZGERU(const int* m, const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrA, const int* lda); void CUBLAS_ZGERC(const int* m, const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtry, const int* incy, const devptr_t* devPtrA, const int* lda); void CUBLAS_DSYR(const char* uplo, const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtrA, const int* lda); void CUBLAS_CHER(const char* uplo, const int* n, const float* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtrA, const int* lda); void CUBLAS_ZHER(const char* uplo, const int* n, const double* alpha, const devptr_t* devPtrx, const int* incx, const devptr_t* devPtrA, const int* lda); void CUBLAS_DTRSV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_CTRSV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_ZTRSV(const char* uplo, const char* trans, const char* diag, const int* n, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx); void CUBLAS_CGEMV(const char* trans, const int* m, const int* n, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrx, const int* incx, const cuComplex* beta, devptr_t* devPtry, const int* incy); /* BLAS 3 */ void CUBLAS_SGEMM(const char* transa, const char* transb, const int* m, const int* n, const int* k, const float* alpha, const devptr_t* A, const int* lda, const devptr_t* B, const int* ldb, const float* beta, const devptr_t* C, const int* ldc); void CUBLAS_SSYMM(const char* side, const char* uplo, const int* m, const int* n, const float* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const float* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_SSYR2K(const char* uplo, const char* trans, const int* n, const int* k, const float* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const float* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_SSYRK(const char* uplo, const char* trans, const int* n, const int* k, const float* alpha, const devptr_t* devPtrA, const int* lda, const float* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_STRMM(const char* side, const char* uplo, const char* transa, const char* diag, const int* m, const int* n, const float* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb); void CUBLAS_CTRMM(const char* side, const char* uplo, const char* transa, const char* diag, const int* m, const int* n, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb); void CUBLAS_STRSM(const char* side, const char* uplo, const char* transa, const char* diag, const int* m, const int* n, const float* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb); void CUBLAS_CGEMM(const char* transa, const char* transb, const int* m, const int* n, const int* k, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const cuComplex* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_DGEMM(const char* transa, const char* transb, const int* m, const int* n, const int* k, const double* alpha, const devptr_t* A, const int* lda, const devptr_t* B, const int* ldb, const double* beta, const devptr_t* C, const int* ldc); void CUBLAS_DSYMM(const char* side, const char* uplo, const int* m, const int* n, const double* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const double* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_CSYMM(const char* side, const char* uplo, const int* m, const int* n, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const cuComplex* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_CHEMM(const char* side, const char* uplo, const int* m, const int* n, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const cuComplex* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_DSYR2K(const char* uplo, const char* trans, const int* n, const int* k, const double* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const double* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_DSYRK(const char* uplo, const char* trans, const int* n, const int* k, const double* alpha, const devptr_t* devPtrA, const int* lda, const double* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_CSYRK(const char* uplo, const char* trans, const int* n, const int* k, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const cuComplex* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_CSYR2K(const char* uplo, const char* trans, const int* n, const int* k, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const cuComplex* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_ZSYRK(const char* uplo, const char* trans, const int* n, const int* k, const cuDoubleComplex* alpha, const devptr_t* devPtrA, const int* lda, const cuDoubleComplex* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_ZSYR2K(const char* uplo, const char* trans, const int* n, const int* k, const cuDoubleComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const cuDoubleComplex* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_CHERK(const char* uplo, const char* trans, const int* n, const int* k, const float* alpha, const devptr_t* devPtrA, const int* lda, const float* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_CHER2K(const char* uplo, const char* trans, const int* n, const int* k, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const float* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_ZHERK(const char* uplo, const char* trans, const int* n, const int* k, const double* alpha, const devptr_t* devPtrA, const int* lda, const double* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_ZHER2K(const char* uplo, const char* trans, const int* n, const int* k, const cuDoubleComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const double* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_DTRMM(const char* side, const char* uplo, const char* transa, const char* diag, const int* m, const int* n, const double* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb); void CUBLAS_ZTRMM(const char* side, const char* uplo, const char* transa, const char* diag, const int* m, const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb); void CUBLAS_DTRSM(const char* side, const char* uplo, const char* transa, const char* diag, const int* m, const int* n, const double* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb); void CUBLAS_CTRSM(const char* side, const char* uplo, const char* transa, const char* diag, const int* m, const int* n, const cuComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb); void CUBLAS_ZTRSM(const char* side, const char* uplo, const char* transa, const char* diag, const int* m, const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb); void CUBLAS_ZGEMM(const char* transa, const char* transb, const int* m, const int* n, const int* k, const cuDoubleComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const cuDoubleComplex* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_ZSYMM(const char* side, const char* uplo, const int* m, const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const cuDoubleComplex* beta, const devptr_t* devPtrC, const int* ldc); void CUBLAS_ZHEMM(const char* side, const char* uplo, const int* m, const int* n, const cuDoubleComplex* alpha, const devptr_t* devPtrA, const int* lda, const devptr_t* devPtrB, const int* ldb, const cuDoubleComplex* beta, const devptr_t* devPtrC, const int* ldc); #if defined(__cplusplus) } #endif /* __cplusplus */