10 #ifndef QMCPLUSPLUS_ACCELBLAS_OMPTARGET_H 11 #define QMCPLUSPLUS_ACCELBLAS_OMPTARGET_H 49 if (
ompBLAS::gemm(handle.
h_ompblas, transa, transb,
m,
n, k, alpha,
A,
lda,
B, ldb, beta,
C, ldc) != 0)
50 throw std::runtime_error(
"ompBLAS::gemm failed!");
70 if (
ompBLAS::gemm_batched(handle.
h_ompblas, transa, transb,
m,
n, k, alpha,
A,
lda,
B, ldb, beta,
C, ldc,
72 throw std::runtime_error(
"ompBLAS::gemm_batched failed!");
90 if (
ompBLAS::gemv(handle.
h_ompblas, trans,
m,
n, alpha,
A,
lda, x, incx, beta, y, incy) != 0)
91 throw std::runtime_error(
"ompBLAS::gemv_batched failed!");
107 const int batch_count)
109 if (
ompBLAS::gemv_batched(handle.
h_ompblas, trans,
m,
n, alpha,
A,
lda, x, incx, beta, y, incy, batch_count) != 0)
110 throw std::runtime_error(
"ompBLAS::gemv_batched failed!");
126 throw std::runtime_error(
"ompBLAS::ger_batched failed!");
140 const int batch_count)
142 if (
ompBLAS::ger_batched(handle.
h_ompblas,
m,
n, alpha, x, incx, y, incy,
A,
lda, batch_count) != 0)
143 throw std::runtime_error(
"ompBLAS::ger_batched failed!");
153 const int batch_count)
156 throw std::runtime_error(
"ompBLAS::copy_batched failed!");
162 #undef castNativeType void gemm(BLASHandle< PlatformKind::CUDA > &handle, const char transa, const char transb, int m, int n, int k, const float &alpha, const float *A, int lda, const float *B, int ldb, const float &beta, float *C, int ldc)
ompBLAS_status gemm(ompBLAS_handle &handle, const char transa, const char transb, const int M, const int N, const int K, const T &alpha, const T *const A, const int lda, const T *const B, const int ldb, const T &beta, T *const C, const int ldc)
ompBLAS_status gemv(ompBLAS_handle &handle, const char trans, const int m, const int n, const T alpha, const T *const A, const int lda, const T *const x, const int incx, const T beta, T *const y, const int incy)
helper functions for EinsplineSetBuilder
Interfaces to blas library.
BLASHandle(Queue< PlatformKind::OMPTARGET > &queue)
ompBLAS_status gemv_batched(ompBLAS_handle &handle, const char trans, const int m, const int n, const T *alpha, const T *const A[], const int lda, const T *const x[], const int incx, const T *beta, T *const y[], const int incy, const int batch_count)
void ger(BLASHandle< PlatformKind::CUDA > &handle, const int m, const int n, const float &alpha, const float *const x, const int incx, const float *const y, const int incy, float *const A, const int lda)
void gemv_batched(BLASHandle< PlatformKind::CUDA > &handle, const char trans, const int m, const int n, const T *alpha, const T *const A[], const int lda, const T *const x[], const int incx, const T *beta, T *const y[], const int incy, const int batch_count)
ompBLAS::ompBLAS_handle h_ompblas
ompBLAS_status gemm_batched(ompBLAS_handle &handle, const char transa, const char transb, const int M, const int N, const int K, const T &alpha, const T *const A[], const int lda, const T *const B[], const int ldb, const T &beta, T *const C[], const int ldc, const int batch_count)
void gemm_batched(BLASHandle< PlatformKind::CUDA > &handle, const char transa, const char transb, int m, int n, int k, const float &alpha, const float *const A[], int lda, const float *const B[], int ldb, const float &beta, float *const C[], int ldc, int batchCount)
ompBLAS_status ger_batched(ompBLAS_handle &handle, const int m, const int n, const T *alpha, const T *const x[], const int incx, const T *const y[], const int incy, T *const A[], const int lda, const int batch_count)
void copy_batched(BLASHandle< PlatformKind::CUDA > &handle, const int n, const T *const in[], const int incx, T *const out[], const int incy, const int batch_count)
ompBLAS_status ger(ompBLAS_handle &handle, const int m, const int n, const T alpha, const T *const x, const int incx, const T *const y, const int incy, T *const A, const int lda)
void ger_batched(BLASHandle< PlatformKind::CUDA > &handle, const int m, const int n, const T *alpha, const T *const x[], const int incx, const T *const y[], const int incy, T *const A[], const int lda, const int batch_count)
double B(double x, int k, int i, const std::vector< double > &t)
void gemv(BLASHandle< PlatformKind::CUDA > &handle, const char trans, const int m, const int n, const float &alpha, const float *const A, const int lda, const float *const x, const int incx, const float &beta, float *const y, const int incy)
ompBLAS_status copy_batched(ompBLAS_handle &handle, const int n, const T *const x[], const int incx, T *const y[], const int incy, const int batch_count)
copy device data from x to y