![]() |
QMCPACK
|
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. More...
Typedefs | |
using | ompBLAS_status = int |
using | ompBLAS_handle = int |
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) |
template<typename T > | |
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) |
template<typename T > | |
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) |
template<typename T > | |
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) |
template<typename T > | |
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) |
template<typename T > | |
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) |
template<typename T > | |
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) |
template<typename T > | |
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 More... | |
template<typename T > | |
ompBLAS_status | copy_batched_offset (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) |
copy device data from x to y with additional offset applied to array of device pointers More... | |
template<typename T > | |
ompBLAS_status | copy (ompBLAS_handle &handle, const int n, const T *const x, const int incx, T *const y, const int incy) |
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.
3) all the pointer arguments are expected as device pointers. 4) in batched APIs, alpha and beta are not scalars but pointers to array of batch size.
using ompBLAS_handle = int |
Definition at line 30 of file ompBLAS.hpp.
using ompBLAS_status = int |
Definition at line 29 of file ompBLAS.hpp.
ompBLAS_status qmcplusplus::ompBLAS::copy | ( | ompBLAS_handle & | handle, |
const int | n, | ||
const T *const | x, | ||
const int | incx, | ||
T *const | y, | ||
const int | incy | ||
) |
ompBLAS_status qmcplusplus::ompBLAS::copy< double > | ( | ompBLAS_handle & | handle, |
const int | n, | ||
const double *const | x, | ||
const int | incx, | ||
double *const | y, | ||
const int | incy | ||
) |
Definition at line 990 of file ompBLAS.cpp.
References copy_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::copy< float > | ( | ompBLAS_handle & | handle, |
const int | n, | ||
const float *const | x, | ||
const int | incx, | ||
float *const | y, | ||
const int | incy | ||
) |
Definition at line 979 of file ompBLAS.cpp.
References copy_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 1012 of file ompBLAS.cpp.
References copy_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 1001 of file ompBLAS.cpp.
References copy_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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
for b_i in [0,batch_count) for i in [0,n) y[b_i][i*incy] = x[b_i][i*incx]
n | number of elements to copy for each group in the batch |
x,y | arrays with length batch_count ; device pointers to start of data to be copied from(x)/to(y) |
incx,incy | storage spacing between elements of x/y to be copied from/to |
batch_count | number of batches to process |
Referenced by qmcplusplus::compute::BLAS::copy_batched(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_evaluateGrads().
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 846 of file ompBLAS.cpp.
References copy_batched_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 834 of file ompBLAS.cpp.
References copy_batched_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 871 of file ompBLAS.cpp.
References copy_batched_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 859 of file ompBLAS.cpp.
References copy_batched_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 815 of file ompBLAS.cpp.
References qmcplusplus::n.
Referenced by copy_batched< double >(), copy_batched< float >(), copy_batched< std::complex< double > >(), and copy_batched< std::complex< float > >().
ompBLAS_status qmcplusplus::ompBLAS::copy_batched_offset | ( | 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 | ||
) |
copy device data from x to y with additional offset applied to array of device pointers
for b_i in [0,batch_count) for i in [0,n) y[b_i][y_offset + i*incy] = x[b_i][x_offset + i*incx]
useful for copying from/to a single row/column of a batch of matrices when a list of device pointers to the start of the matrices is already available
n | number of elements to copy for each group in the batch |
x,y | arrays with length batch_count ; device pointers to start of data to be copied from(x)/to(y) |
x_offset,y_offset | distance (in number of elements) from pointer given in x/y to location of first element to be copied |
incx,incy | storage spacing between elements of x/y to be copied from/to |
batch_count | number of batches to process |
Referenced by MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_InverseUpdateByColumn().
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 919 of file ompBLAS.cpp.
References copy_batched_offset_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 905 of file ompBLAS.cpp.
References copy_batched_offset_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 948 of file ompBLAS.cpp.
References copy_batched_offset_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 934 of file ompBLAS.cpp.
References copy_batched_offset_impl(), and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 884 of file ompBLAS.cpp.
References qmcplusplus::n.
Referenced by copy_batched_offset< double >(), copy_batched_offset< float >(), copy_batched_offset< std::complex< double > >(), and copy_batched_offset< std::complex< float > >().
ompBLAS_status qmcplusplus::ompBLAS::copy_impl | ( | ompBLAS_handle & | handle, |
const int | n, | ||
const T *const | x, | ||
const int | incx, | ||
T *const | y, | ||
const int | incy | ||
) |
Definition at line 963 of file ompBLAS.cpp.
References qmcplusplus::n.
Referenced by copy< double >(), copy< float >(), copy< std::complex< double > >(), and copy< std::complex< float > >().
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Referenced by qmcplusplus::compute::BLAS::gemm(), and qmcplusplus::test_gemm().
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 119 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, B(), qmcplusplus::Units::charge::C, gemm_impl(), qmcplusplus::Units::energy::K, qmcplusplus::lda, and qmcplusplus::Units::force::N.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 100 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, B(), qmcplusplus::Units::charge::C, gemm_impl(), qmcplusplus::Units::energy::K, qmcplusplus::lda, and qmcplusplus::Units::force::N.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 158 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, B(), qmcplusplus::Units::charge::C, gemm_impl(), qmcplusplus::Units::energy::K, qmcplusplus::lda, and qmcplusplus::Units::force::N.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 139 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, B(), qmcplusplus::Units::charge::C, gemm_impl(), qmcplusplus::Units::energy::K, qmcplusplus::lda, and qmcplusplus::Units::force::N.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Referenced by qmcplusplus::compute::BLAS::gemm_batched(), and qmcplusplus::test_gemm().
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 300 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, B(), qmcplusplus::Units::charge::C, gemm_batched_impl(), qmcplusplus::Units::energy::K, qmcplusplus::lda, and qmcplusplus::Units::force::N.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 280 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, B(), qmcplusplus::Units::charge::C, gemm_batched_impl(), qmcplusplus::Units::energy::K, qmcplusplus::lda, and qmcplusplus::Units::force::N.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 341 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, B(), qmcplusplus::Units::charge::C, gemm_batched_impl(), qmcplusplus::Units::energy::K, qmcplusplus::lda, and qmcplusplus::Units::force::N.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 321 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, B(), qmcplusplus::Units::charge::C, gemm_batched_impl(), qmcplusplus::Units::energy::K, qmcplusplus::lda, and qmcplusplus::Units::force::N.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 178 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, B(), qmcplusplus::Units::charge::C, qmcplusplus::Units::energy::K, qmcplusplus::lda, qmcplusplus::Units::distance::m, qmcplusplus::Units::force::N, and qmcplusplus::n.
Referenced by gemm_batched< double >(), gemm_batched< float >(), gemm_batched< std::complex< double > >(), and gemm_batched< std::complex< float > >().
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 27 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, B(), qmcplusplus::Units::charge::C, qmcplusplus::Units::energy::K, qmcplusplus::lda, qmcplusplus::Units::distance::m, qmcplusplus::Units::force::N, and qmcplusplus::n.
Referenced by gemm< double >(), gemm< float >(), gemm< std::complex< double > >(), and gemm< std::complex< float > >().
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 438 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, gemv_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 421 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, gemv_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 473 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, gemv_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 456 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, gemv_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 574 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, gemv_batched_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 556 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, gemv_batched_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 611 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, gemv_batched_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 593 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, gemv_batched_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 492 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
Referenced by gemv_batched< double >(), gemv_batched< float >(), gemv_batched< std::complex< double > >(), and gemv_batched< std::complex< float > >().
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 362 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
Referenced by gemv< double >(), gemv< float >(), gemv< std::complex< double > >(), and gemv< std::complex< float > >().
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 672 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, ger_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 657 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, ger_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 703 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, ger_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 688 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, ger_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 764 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, ger_batched_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 748 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, ger_batched_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 797 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, ger_batched_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 781 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, ger_batched_impl(), qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 720 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
Referenced by ger_batched< double >(), ger_batched< float >(), ger_batched< std::complex< double > >(), and ger_batched< std::complex< float > >().
ompBLAS_status qmcplusplus::ompBLAS::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 | ||
) |
Definition at line 631 of file ompBLAS.cpp.
References qmcplusplus::Units::distance::A, qmcplusplus::lda, qmcplusplus::Units::distance::m, and qmcplusplus::n.
Referenced by ger< double >(), ger< float >(), ger< std::complex< double > >(), and ger< std::complex< float > >().