QMCPACK
ompBLAS.cpp File Reference
+ Include dependency graph for ompBLAS.cpp:

Go to the source code of this file.

Namespaces

 qmcplusplus
 helper functions for EinsplineSetBuilder
 
 qmcplusplus::ompBLAS
 Implement selected batched and non-batched BLAS2 calls using OpenMP offload for different data types S/C/D/Z 1) column major like the BLAS fortran API 2) all the functions are synchronous, expected to be changed to asynchronous in the future.
 

Functions

template<typename T >
ompBLAS_status gemm_impl (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)
 
template<>
ompBLAS_status gemm< float > (ompBLAS_handle &handle, const char transa, const char transb, const int M, const int N, const int K, const float &alpha, const float *const A, const int lda, const float *const B, const int ldb, const float &beta, float *const C, const int ldc)
 
template<>
ompBLAS_status gemm< double > (ompBLAS_handle &handle, const char transa, const char transb, const int M, const int N, const int K, const double &alpha, const double *const A, const int lda, const double *const B, const int ldb, const double &beta, double *const C, const int ldc)
 
template<>
ompBLAS_status gemm< std::complex< float > > (ompBLAS_handle &handle, const char transa, const char transb, const int M, const int N, const int K, const std::complex< float > &alpha, const std::complex< float > *const A, const int lda, const std::complex< float > *const B, const int ldb, const std::complex< float > &beta, std::complex< float > *const C, const int ldc)
 
template<>
ompBLAS_status gemm< std::complex< double > > (ompBLAS_handle &handle, const char transa, const char transb, const int M, const int N, const int K, const std::complex< double > &alpha, const std::complex< double > *const A, const int lda, const std::complex< double > *const B, const int ldb, const std::complex< double > &beta, std::complex< double > *const C, const int ldc)
 
template<typename T >
ompBLAS_status gemm_batched_impl (ompBLAS_handle &handle, const char transa, const char transb, const int M, const int N, const int K, const T alpha, const T *const Aarray[], const int lda, const T *const Barray[], const int ldb, const T beta, T *const Carray[], const int ldc, const int batch_count)
 
template<>
ompBLAS_status gemm_batched< float > (ompBLAS_handle &handle, const char transa, const char transb, const int M, const int N, const int K, const float &alpha, const float *const A[], const int lda, const float *const B[], const int ldb, const float &beta, float *const C[], const int ldc, const int batch_count)
 
template<>
ompBLAS_status gemm_batched< double > (ompBLAS_handle &handle, const char transa, const char transb, const int M, const int N, const int K, const double &alpha, const double *const A[], const int lda, const double *const B[], const int ldb, const double &beta, double *const C[], const int ldc, const int batch_count)
 
template<>
ompBLAS_status gemm_batched< std::complex< float > > (ompBLAS_handle &handle, const char transa, const char transb, const int M, const int N, const int K, const std::complex< float > &alpha, const std::complex< float > *const A[], const int lda, const std::complex< float > *const B[], const int ldb, const std::complex< float > &beta, std::complex< float > *const C[], const int ldc, const int batch_count)
 
template<>
ompBLAS_status gemm_batched< std::complex< double > > (ompBLAS_handle &handle, const char transa, const char transb, const int M, const int N, const int K, const std::complex< double > &alpha, const std::complex< double > *const A[], const int lda, const std::complex< double > *const B[], const int ldb, const std::complex< double > &beta, std::complex< double > *const C[], const int ldc, const int batch_count)
 
template<typename T >
ompBLAS_status gemv_impl (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)
 
template<>
ompBLAS_status gemv< float > (ompBLAS_handle &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)
 
template<>
ompBLAS_status gemv< double > (ompBLAS_handle &handle, const char trans, const int m, const int n, const double alpha, const double *const A, const int lda, const double *const x, const int incx, const double beta, double *const y, const int incy)
 
template<>
ompBLAS_status gemv< std::complex< float > > (ompBLAS_handle &handle, const char trans, const int m, const int n, const std::complex< float > alpha, const std::complex< float > *const A, const int lda, const std::complex< float > *const x, const int incx, const std::complex< float > beta, std::complex< float > *const y, const int incy)
 
template<>
ompBLAS_status gemv< std::complex< double > > (ompBLAS_handle &handle, const char trans, const int m, const int n, const std::complex< double > alpha, const std::complex< double > *const A, const int lda, const std::complex< double > *const x, const int incx, const std::complex< double > beta, std::complex< double > *const y, const int incy)
 
template<typename T >
ompBLAS_status gemv_batched_impl (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)
 
template<>
ompBLAS_status gemv_batched< float > (ompBLAS_handle &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, const int batch_count)
 
template<>
ompBLAS_status gemv_batched< double > (ompBLAS_handle &handle, const char trans, const int m, const int n, const double *alpha, const double *const A[], const int lda, const double *const x[], const int incx, const double *beta, double *const y[], const int incy, const int batch_count)
 
template<>
ompBLAS_status gemv_batched< std::complex< float > > (ompBLAS_handle &handle, const char trans, const int m, const int n, const std::complex< float > *alpha, const std::complex< float > *const A[], const int lda, const std::complex< float > *const x[], const int incx, const std::complex< float > *beta, std::complex< float > *const y[], const int incy, const int batch_count)
 
template<>
ompBLAS_status gemv_batched< std::complex< double > > (ompBLAS_handle &handle, const char trans, const int m, const int n, const std::complex< double > *alpha, const std::complex< double > *const A[], const int lda, const std::complex< double > *const x[], const int incx, const std::complex< double > *beta, std::complex< double > *const y[], const int incy, const int batch_count)
 
template<typename T >
ompBLAS_status ger_impl (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)
 
template<>
ompBLAS_status ger< float > (ompBLAS_handle &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)
 
template<>
ompBLAS_status ger< double > (ompBLAS_handle &handle, const int m, const int n, const double alpha, const double *const x, const int incx, const double *const y, const int incy, double *const A, const int lda)
 
template<>
ompBLAS_status ger< std::complex< float > > (ompBLAS_handle &handle, const int m, const int n, const std::complex< float > alpha, const std::complex< float > *const x, const int incx, const std::complex< float > *const y, const int incy, std::complex< float > *const A, const int lda)
 
template<>
ompBLAS_status ger< std::complex< double > > (ompBLAS_handle &handle, const int m, const int n, const std::complex< double > alpha, const std::complex< double > *const x, const int incx, const std::complex< double > *const y, const int incy, std::complex< double > *const A, const int lda)
 
template<typename T >
ompBLAS_status ger_batched_impl (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)
 
template<>
ompBLAS_status ger_batched< float > (ompBLAS_handle &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, const int batch_count)
 
template<>
ompBLAS_status ger_batched< double > (ompBLAS_handle &handle, const int m, const int n, const double *alpha, const double *const x[], const int incx, const double *const y[], const int incy, double *const A[], const int lda, const int batch_count)
 
template<>
ompBLAS_status ger_batched< std::complex< float > > (ompBLAS_handle &handle, const int m, const int n, const std::complex< float > *alpha, const std::complex< float > *const x[], const int incx, const std::complex< float > *const y[], const int incy, std::complex< float > *const A[], const int lda, const int batch_count)
 
template<>
ompBLAS_status ger_batched< std::complex< double > > (ompBLAS_handle &handle, const int m, const int n, const std::complex< double > *alpha, const std::complex< double > *const x[], const int incx, const std::complex< double > *const y[], const int incy, std::complex< double > *const A[], const int lda, const int batch_count)
 
template<typename T >
ompBLAS_status copy_batched_impl (ompBLAS_handle &handle, const int n, const T *const x[], const int incx, T *const y[], const int incy, const int batch_count)
 
template<>
ompBLAS_status copy_batched< float > (ompBLAS_handle &handle, const int n, const float *const x[], const int incx, float *const y[], const int incy, const int batch_count)
 
template<>
ompBLAS_status copy_batched< double > (ompBLAS_handle &handle, const int n, const double *const x[], const int incx, double *const y[], const int incy, const int batch_count)
 
template<>
ompBLAS_status copy_batched< std::complex< float > > (ompBLAS_handle &handle, const int n, const std::complex< float > *const x[], const int incx, std::complex< float > *const y[], const int incy, const int batch_count)
 
template<>
ompBLAS_status copy_batched< std::complex< double > > (ompBLAS_handle &handle, const int n, const std::complex< double > *const x[], const int incx, std::complex< double > *const y[], const int incy, const int batch_count)
 
template<typename T >
ompBLAS_status copy_batched_offset_impl (ompBLAS_handle &handle, const int n, const T *const x[], const int x_offset, const int incx, T *const y[], const int y_offset, const int incy, const int batch_count)
 
template<>
ompBLAS_status copy_batched_offset< float > (ompBLAS_handle &handle, const int n, const float *const x[], const int x_offset, const int incx, float *const y[], const int y_offset, const int incy, const int batch_count)
 
template<>
ompBLAS_status copy_batched_offset< double > (ompBLAS_handle &handle, const int n, const double *const x[], const int x_offset, const int incx, double *const y[], const int y_offset, const int incy, const int batch_count)
 
template<>
ompBLAS_status copy_batched_offset< std::complex< float > > (ompBLAS_handle &handle, const int n, const std::complex< float > *const x[], const int x_offset, const int incx, std::complex< float > *const y[], const int y_offset, const int incy, const int batch_count)
 
template<>
ompBLAS_status copy_batched_offset< std::complex< double > > (ompBLAS_handle &handle, const int n, const std::complex< double > *const x[], const int x_offset, const int incx, std::complex< double > *const y[], const int y_offset, const int incy, const int batch_count)
 
template<typename T >
ompBLAS_status copy_impl (ompBLAS_handle &handle, const int n, const T *const x, const int incx, T *const y, const int incy)
 
template<>
ompBLAS_status copy< float > (ompBLAS_handle &handle, const int n, const float *const x, const int incx, float *const y, const int incy)
 
template<>
ompBLAS_status copy< double > (ompBLAS_handle &handle, const int n, const double *const x, const int incx, double *const y, const int incy)
 
template<>
ompBLAS_status copy< std::complex< float > > (ompBLAS_handle &handle, const int n, const std::complex< float > *const x, const int incx, std::complex< float > *const y, const int incy)
 
template<>
ompBLAS_status copy< std::complex< double > > (ompBLAS_handle &handle, const int n, const std::complex< double > *const x, const int incx, std::complex< double > *const y, const int incy)