23 #pragma warning(push, 0)
26#elif defined(__INTEL_LLVM_COMPILER) || defined(__INTEL_COMPILER)
27 #pragma warning(push, 0)
30#elif defined(__GNUC__) || defined(__clang__)
31 #pragma GCC diagnostic push
32 #pragma GCC diagnostic ignored "-Wswitch-enum"
34 #pragma GCC diagnostic pop
70 std::string lib_extension;
72 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) || \
74 lib_extension =
"lib";
75 #elif defined(__APPLE__)
76 lib_extension =
"dylib";
77 #elif defined(__linux__)
80 #error "Unknown compiler"
84 #ifndef CUBLAS_VER_MAJOR
85 #error "CUBLAS_VER_MAJOR is not defined."
89 std::string lib_base_name =
"libcublas";
92 std::ostringstream oss;
94 oss << lib_base_name <<
"." << lib_extension <<
"." \
97 std::string lib_name = oss.str();
119 const char* symbol_name =
"cublasCreate_v2";
122 dynamic_loading::load_symbol<cublasCreate_type>(
144 const char* symbol_name =
"cublasDestroy_v2";
147 dynamic_loading::load_symbol<cublasDestroy_type>(
165 cublasHandle_t handle,
171 const char* symbol_name =
"cublasSetMathMode_v2";
174 dynamic_loading::load_symbol<cublasSetMathMode_type>(
191 cublasHandle_t handle,
192 cublasOperation_t trans,
207 const char* symbol_name =
"cublasSgemv_v2";
210 dynamic_loading::load_symbol<cublasSgemv_type>(
216 incx, beta, y, incy);
228 cublasHandle_t handle,
229 cublasOperation_t trans,
244 const char* symbol_name =
"cublasDgemv_v2";
247 dynamic_loading::load_symbol<cublasDgemv_type>(
253 incx, beta, y, incy);
265 cublasHandle_t handle,
int n,
274 const char* symbol_name =
"cublasScopy_v2";
277 dynamic_loading::load_symbol<cublasScopy_type>(
294 cublasHandle_t handle,
int n,
303 const char* symbol_name =
"cublasDcopy_v2";
306 dynamic_loading::load_symbol<cublasDcopy_type>(
323 cublasHandle_t handle,
334 const char* symbol_name =
"cublasSaxpy_v2";
337 dynamic_loading::load_symbol<cublasSaxpy_type>(
354 cublasHandle_t handle,
365 const char* symbol_name =
"cublasDaxpy_v2";
368 dynamic_loading::load_symbol<cublasDaxpy_type>(
385 cublasHandle_t handle,
396 const char* symbol_name =
"cublasSdot_v2";
399 dynamic_loading::load_symbol<cublasSdot_type>(
416 cublasHandle_t handle,
427 const char* symbol_name =
"cublasDdot_v2";
430 dynamic_loading::load_symbol<cublasDdot_type>(
447 cublasHandle_t handle,
456 const char* symbol_name =
"cublasSnrm2_v2";
459 dynamic_loading::load_symbol<cublasSnrm2_type>(
476 cublasHandle_t handle,
485 const char* symbol_name =
"cublasDnrm2_v2";
488 dynamic_loading::load_symbol<cublasDnrm2_type>(
505 cublasHandle_t handle,
514 const char* symbol_name =
"cublasSscal_v2";
517 dynamic_loading::load_symbol<cublasSscal_type>(
534 cublasHandle_t handle,
543 const char* symbol_name =
"cublasDscal_v2";
546 dynamic_loading::load_symbol<cublasDscal_type>(
static cublasSaxpy_type cublasSaxpy
static cublasDdot_type cublasDdot
static cublasSetMathMode_type cublasSetMathMode
static cublasScopy_type cublasScopy
static cublasSscal_type cublasSscal
static cublasDaxpy_type cublasDaxpy
static cublasCreate_type cublasCreate
static cublasDestroy_type cublasDestroy
static cublasDnrm2_type cublasDnrm2
static cublasSdot_type cublasSdot
static cublasDcopy_type cublasDcopy
static cublasSnrm2_type cublasSnrm2
static cublasDscal_type cublasDscal
static cublasSgemv_type cublasSgemv
static std::string get_lib_name()
Returns the name of cublas shared library.
static cublasDgemv_type cublasDgemv
cublasStatus_t cublasDcopy(cublasHandle_t handle, int n, const double *x, int incx, double *y, int incy)
Definition of CUDA's cublasDcopy function using dynamically loaded cublas library.
cublasStatus_t cublasSgemv_v2(cublasHandle_t handle, cublasOperation_t trans, int m, int n, const float *alpha, const float *A, int lda, const float *x, int incx, const float *beta, float *y, int incy)
Definition of CUDA's cublasSgemv function using dynamically loaded cublas library.
cublasStatus_t cublasSscal(cublasHandle_t handle, int n, const float *alpha, float *x, int incx)
Definition of CUDA's cublasSscal function using dynamically loaded cublas library.
cublasStatus_t cublasSetMathMode(cublasHandle_t handle, cublasMath_t mode)
Definition of CUDA's cublasSetmathMode function using dynamically loaded cublas library.
cublasStatus_t cublasDscal(cublasHandle_t handle, int n, const double *alpha, double *x, int incx)
Definition of CUDA's cublasDscal function using dynamically loaded cublas library.
cublasStatus_t cublasSdot(cublasHandle_t handle, int n, const float *x, int incx, const float *y, int incy, float *result)
Definition of CUDA's cublasSdot function using dynamically loaded cublas library.
cublasStatus_t cublasSnrm2(cublasHandle_t handle, int n, const float *x, int incx, float *result)
Definition of CUDA's cublasSnrm2 function using dynamically loaded cublas library.
cublasStatus_t cublasSaxpy(cublasHandle_t handle, int n, const float *alpha, const float *x, int incx, float *y, int incy)
Definition of CUDA's cublasSaxpy function using dynamically loaded cublas library.
cublasStatus_t cublasDaxpy(cublasHandle_t handle, int n, const double *alpha, const double *x, int incx, double *y, int incy)
Definition of CUDA's cublasDaxpy function using dynamically loaded cublas library.
cublasStatus_t cublasScopy(cublasHandle_t handle, int n, const float *x, int incx, float *y, int incy)
Definition of CUDA's cublasScopy function using dynamically loaded cublas library.
cublasStatus_t cublasDestroy_v2(cublasHandle_t handle)
Definition of CUDA's cublasDestroy function using dynamically loaded cublas library.
cublasStatus_t cublasDnrm2(cublasHandle_t handle, int n, const double *x, int incx, double *result)
Definition of CUDA's cublasDnrm2 function using dynamically loaded cublas library.
cublasStatus_t cublasDgemv_v2(cublasHandle_t handle, cublasOperation_t trans, int m, int n, const double *alpha, const double *A, int lda, const double *x, int incx, const double *beta, double *y, int incy)
Definition of CUDA's cublasDgemv function using dynamically loaded cublas library.
cublasStatus_t cublasDdot(cublasHandle_t handle, int n, const double *x, int incx, const double *y, int incy, double *result)
Definition of CUDA's cublasDdot function using dynamically loaded cublas library.
cublasStatus_t cublasCreate_v2(cublasHandle_t *handle)
Definition of CUDA's cublasCreate function using dynamically loaded cublas library.
cublasStatus_t(* cublasDestroy_type)(cublasHandle_t handle)
cublasStatus_t(* cublasDgemv_type)(cublasHandle_t handle, cublasOperation_t trans, int m, int n, const double *alpha, const double *A, int lda, const double *x, int incx, const double *beta, double *y, int incy)
cublasStatus_t(* cublasDcopy_type)(cublasHandle_t handle, int n, const double *x, int incx, double *y, int incy)
cublasStatus_t(* cublasDaxpy_type)(cublasHandle_t handle, int n, const double *alpha, const double *x, int incx, double *y, int incy)
cublasStatus_t(* cublasDscal_type)(cublasHandle_t handle, int n, const double *alpha, double *x, int incx)
cublasStatus_t(* cublasSaxpy_type)(cublasHandle_t handle, int n, const float *alpha, const float *x, int incx, float *y, int incy)
cublasStatus_t(* cublasCreate_type)(cublasHandle_t *handle)
cublasStatus_t(* cublasSetMathMode_type)(cublasHandle_t handle, cublasMath_t mode)
cublasStatus_t(* cublasSscal_type)(cublasHandle_t handle, int n, const float *alpha, float *x, int incx)
cublasStatus_t(* cublasSgemv_type)(cublasHandle_t handle, cublasOperation_t trans, int m, int n, const float *alpha, const float *A, int lda, const float *x, int incx, const float *beta, float *y, int incy)
cublasStatus_t(* cublasSdot_type)(cublasHandle_t handle, int n, const float *x, int incx, const float *y, int incy, float *result)
cublasStatus_t(* cublasScopy_type)(cublasHandle_t handle, int n, const float *x, int incx, float *y, int incy)
cublasStatus_t(* cublasSnrm2_type)(cublasHandle_t handle, int n, const float *x, int incx, float *result)
cublasStatus_t(* cublasDdot_type)(cublasHandle_t handle, int n, const double *x, int incx, const double *y, int incy, double *result)
cublasStatus_t(* cublasDnrm2_type)(cublasHandle_t handle, int n, const double *x, int incx, double *result)