15 #ifdef ETL_EGBLAS_MODE 17 #include "etl/impl/cublas/cuda.hpp" 25 #ifdef EGBLAS_HAS_SAXDY_3 26 static constexpr
bool has_saxdy_3 =
true;
28 static constexpr
bool has_saxdy_3 =
false;
40 inline void axdy_3([[maybe_unused]]
size_t n,
41 [[maybe_unused]]
float alpha,
42 [[maybe_unused]]
float* A,
43 [[maybe_unused]]
size_t lda,
44 [[maybe_unused]]
float* B,
45 [[maybe_unused]]
size_t ldb,
46 [[maybe_unused]]
float* C,
47 [[maybe_unused]]
size_t ldc) {
48 #ifdef EGBLAS_HAS_SAXDY_3 50 egblas_saxdy_3(n, alpha, A, lda, B, ldb, C, ldc);
52 cpp_unreachable(
"Invalid call to egblas::axdy_3");
56 #ifdef EGBLAS_HAS_DAXDY_3 57 static constexpr
bool has_daxdy_3 =
true;
59 static constexpr
bool has_daxdy_3 =
false;
71 inline void axdy_3([[maybe_unused]]
size_t n,
72 [[maybe_unused]]
double alpha,
73 [[maybe_unused]]
double* A,
74 [[maybe_unused]]
size_t lda,
75 [[maybe_unused]]
double* B,
76 [[maybe_unused]]
size_t ldb,
77 [[maybe_unused]]
double* C,
78 [[maybe_unused]]
size_t ldc) {
79 #ifdef EGBLAS_HAS_DAXDY_3 81 egblas_daxdy_3(n, alpha, A, lda, B, ldb, C, ldc);
83 cpp_unreachable(
"Invalid call to egblas::axdy_3");
87 #ifdef EGBLAS_HAS_CAXDY_3 88 static constexpr
bool has_caxdy_3 =
true;
90 static constexpr
bool has_caxdy_3 =
false;
102 inline void axdy_3([[maybe_unused]]
size_t n,
103 [[maybe_unused]] std::complex<float> alpha,
104 [[maybe_unused]] std::complex<float>* A,
105 [[maybe_unused]]
size_t lda,
106 [[maybe_unused]] std::complex<float>* B,
107 [[maybe_unused]]
size_t ldb,
108 [[maybe_unused]] std::complex<float>* C,
109 [[maybe_unused]]
size_t ldc) {
110 #ifdef EGBLAS_HAS_CAXDY_3 112 egblas_caxdy_3(n, complex_cast(alpha), reinterpret_cast<cuComplex*>(A), lda, reinterpret_cast<cuComplex*>(B), ldb, reinterpret_cast<cuComplex*>(C), ldc);
114 cpp_unreachable(
"Invalid call to egblas::axdy_3");
127 inline void axdy_3([[maybe_unused]]
size_t n,
130 [[maybe_unused]]
size_t lda,
132 [[maybe_unused]]
size_t ldb,
134 [[maybe_unused]]
size_t ldc) {
135 #ifdef EGBLAS_HAS_CAXDY_3 137 egblas_caxdy_3(n, complex_cast(alpha), reinterpret_cast<cuComplex*>(A), lda, reinterpret_cast<cuComplex*>(B), ldb, reinterpret_cast<cuComplex*>(C), ldc);
139 cpp_unreachable(
"Invalid call to egblas::axdy_3");
143 #ifdef EGBLAS_HAS_ZAXDY_3 144 static constexpr
bool has_zaxdy_3 =
true;
146 static constexpr
bool has_zaxdy_3 =
false;
158 inline void axdy_3([[maybe_unused]]
size_t n,
159 [[maybe_unused]] std::complex<double> alpha,
160 [[maybe_unused]] std::complex<double>* A,
161 [[maybe_unused]]
size_t lda,
162 [[maybe_unused]] std::complex<double>* B,
163 [[maybe_unused]]
size_t ldb,
164 [[maybe_unused]] std::complex<double>* C,
165 [[maybe_unused]]
size_t ldc) {
166 #ifdef EGBLAS_HAS_ZAXDY_3 168 egblas_zaxdy_3(n, complex_cast(alpha), reinterpret_cast<cuDoubleComplex*>(A), lda, reinterpret_cast<cuDoubleComplex*>(B), ldb,
169 reinterpret_cast<cuDoubleComplex*>(C), ldc);
171 cpp_unreachable(
"Invalid call to egblas::axdy_3");
184 inline void axdy_3([[maybe_unused]]
size_t n,
187 [[maybe_unused]]
size_t lda,
189 [[maybe_unused]]
size_t ldb,
191 [[maybe_unused]]
size_t ldc) {
192 #ifdef EGBLAS_HAS_ZAXDY_3 194 egblas_zaxdy_3(n, complex_cast(alpha), reinterpret_cast<cuDoubleComplex*>(A), lda, reinterpret_cast<cuDoubleComplex*>(B), ldb,
195 reinterpret_cast<cuDoubleComplex*>(C), ldc);
197 cpp_unreachable(
"Invalid call to egblas::axdy_3");
Complex number implementation.
Definition: complex.hpp:31
void axdy_3([[maybe_unused]] size_t n, [[maybe_unused]] float alpha, [[maybe_unused]] float *A, [[maybe_unused]] size_t lda, [[maybe_unused]] float *B, [[maybe_unused]] size_t ldb, [[maybe_unused]] float *C, [[maybe_unused]] size_t ldc)
Wrappers for single-precision egblas axdy_3 operation.
Definition: axdy_3.hpp:40
void inc_counter([[maybe_unused]] const char *name)
Increase the given counter.
Definition: counters.hpp:25