15 #ifdef ETL_EGBLAS_MODE 17 #include "etl/impl/cublas/cuda.hpp" 25 #ifdef EGBLAS_HAS_SCONV1_VALID 26 static constexpr
bool has_sconv1_valid =
true;
28 static constexpr
bool has_sconv1_valid =
false;
44 [[maybe_unused]]
size_t k,
45 [[maybe_unused]]
float alpha,
46 [[maybe_unused]]
const float* A,
47 [[maybe_unused]]
size_t lda,
48 [[maybe_unused]]
const float* B,
49 [[maybe_unused]]
size_t ldb,
50 [[maybe_unused]]
float* C,
51 [[maybe_unused]]
size_t ldc) {
52 #ifdef EGBLAS_HAS_SCONV1_VALID 54 egblas_sconv1_valid(n, k, alpha, A, lda, B, ldb, C, ldc);
56 cpp_unreachable(
"Invalid call to egblas::conv1_valid");
60 #ifdef EGBLAS_HAS_DCONV1_VALID 61 static constexpr
bool has_dconv1_valid =
true;
63 static constexpr
bool has_dconv1_valid =
false;
76 [[maybe_unused]]
size_t k,
77 [[maybe_unused]]
double alpha,
78 [[maybe_unused]]
const double* A,
79 [[maybe_unused]]
size_t lda,
80 [[maybe_unused]]
const double* B,
81 [[maybe_unused]]
size_t ldb,
82 [[maybe_unused]]
double* C,
83 [[maybe_unused]]
size_t ldc) {
84 #ifdef EGBLAS_HAS_DCONV1_VALID 86 egblas_dconv1_valid(n, k, alpha, A, lda, B, ldb, C, ldc);
88 cpp_unreachable(
"Invalid call to egblas::conv1_valid");
92 #ifdef EGBLAS_HAS_SCONV1_SAME 93 static constexpr
bool has_sconv1_same =
true;
95 static constexpr
bool has_sconv1_same =
false;
111 [[maybe_unused]]
size_t k,
112 [[maybe_unused]]
float alpha,
113 [[maybe_unused]]
const float* A,
114 [[maybe_unused]]
size_t lda,
115 [[maybe_unused]]
const float* B,
116 [[maybe_unused]]
size_t ldb,
117 [[maybe_unused]]
float* C,
118 [[maybe_unused]]
size_t ldc) {
119 #ifdef EGBLAS_HAS_SCONV1_SAME 121 egblas_sconv1_same(n, k, alpha, A, lda, B, ldb, C, ldc);
123 cpp_unreachable(
"Invalid call to egblas::conv1_same");
127 #ifdef EGBLAS_HAS_DCONV1_SAME 128 static constexpr
bool has_dconv1_same =
true;
130 static constexpr
bool has_dconv1_same =
false;
143 [[maybe_unused]]
size_t k,
144 [[maybe_unused]]
double alpha,
145 [[maybe_unused]]
const double* A,
146 [[maybe_unused]]
size_t lda,
147 [[maybe_unused]]
const double* B,
148 [[maybe_unused]]
size_t ldb,
149 [[maybe_unused]]
double* C,
150 [[maybe_unused]]
size_t ldc) {
151 #ifdef EGBLAS_HAS_DCONV1_SAME 153 egblas_dconv1_same(n, k, alpha, A, lda, B, ldb, C, ldc);
155 cpp_unreachable(
"Invalid call to egblas::conv1_same");
159 #ifdef EGBLAS_HAS_SCONV1_FULL 160 static constexpr
bool has_sconv1_full =
true;
162 static constexpr
bool has_sconv1_full =
false;
177 inline void conv1_full([[maybe_unused]]
size_t n,
178 [[maybe_unused]]
size_t k,
179 [[maybe_unused]]
float alpha,
180 [[maybe_unused]]
const float* A,
181 [[maybe_unused]]
size_t lda,
182 [[maybe_unused]]
const float* B,
183 [[maybe_unused]]
size_t ldb,
184 [[maybe_unused]]
float* C,
185 [[maybe_unused]]
size_t ldc) {
186 #ifdef EGBLAS_HAS_SCONV1_FULL 188 egblas_sconv1_full(n, k, alpha, A, lda, B, ldb, C, ldc);
190 cpp_unreachable(
"Invalid call to egblas::conv1_full");
194 #ifdef EGBLAS_HAS_DCONV1_FULL 195 static constexpr
bool has_dconv1_full =
true;
197 static constexpr
bool has_dconv1_full =
false;
209 inline void conv1_full([[maybe_unused]]
size_t n,
210 [[maybe_unused]]
size_t k,
211 [[maybe_unused]]
double alpha,
212 [[maybe_unused]]
const double* A,
213 [[maybe_unused]]
size_t lda,
214 [[maybe_unused]]
const double* B,
215 [[maybe_unused]]
size_t ldb,
216 [[maybe_unused]]
double* C,
217 [[maybe_unused]]
size_t ldc) {
218 #ifdef EGBLAS_HAS_DCONV1_FULL 220 egblas_dconv1_full(n, k, alpha, A, lda, B, ldb, C, ldc);
222 cpp_unreachable(
"Invalid call to egblas::conv1_full");
void conv1_same([[maybe_unused]] size_t n, [[maybe_unused]] size_t k, [[maybe_unused]] float alpha, [[maybe_unused]] const float *A, [[maybe_unused]] size_t lda, [[maybe_unused]] const float *B, [[maybe_unused]] size_t ldb, [[maybe_unused]] float *C, [[maybe_unused]] size_t ldc)
Wrappers for single-precision egblas conv1_same operation.
Definition: conv_1d.hpp:110
void inc_counter([[maybe_unused]] const char *name)
Increase the given counter.
Definition: counters.hpp:25
void conv1_valid([[maybe_unused]] size_t n, [[maybe_unused]] size_t k, [[maybe_unused]] float alpha, [[maybe_unused]] const float *A, [[maybe_unused]] size_t lda, [[maybe_unused]] const float *B, [[maybe_unused]] size_t ldb, [[maybe_unused]] float *C, [[maybe_unused]] size_t ldc)
Wrappers for single-precision egblas conv1_valid operation.
Definition: conv_1d.hpp:43