27 template <
typename I,
typename K,
typename C>
28 static void apply(
const I& input,
const K& kernel, C& conv) {
29 constexpr_select
auto impl = select_conv2_impl_new<conv_type::FULL, I, K, C>();
62 cpp_unreachable(
"Invalid conv implementation selection");
77 template <
typename I,
typename K,
typename C>
78 static void apply(
const I& input,
const K& kernel, C& conv) {
79 constexpr_select
auto impl = select_conv2_impl_new<conv_type::FULL, I, K, C>();
112 cpp_unreachable(
"Invalid conv implementation selection");
127 template <
typename I,
typename K,
typename C>
128 static void apply(
const I& input,
const K& kernel, C& conv) {
129 constexpr_select
auto impl = select_conv2_impl_new<conv_type::SAME, I, K, C>();
142 cpp_unreachable(
"Invalid conv implementation selection");
157 template <
typename I,
typename K,
typename C>
158 static void apply(
const I& input,
const K& kernel, C& conv) {
159 constexpr_select
auto impl = select_conv2_impl_new<conv_type::SAME, I, K, C>();
172 cpp_unreachable(
"Invalid conv implementation selection");
180 template <
size_t S1,
size_t S2,
size_t P1,
size_t P2>
188 template <
typename I,
typename K,
typename C>
189 static void apply(
const I& input,
const K& kernel, C& conv) {
190 constexpr_select
auto impl = select_conv_impl<conv_type::VALID, I, K, C>();
206 cpp_unreachable(
"Invalid conv implementation selection");
214 template <
size_t S1,
size_t S2,
size_t P1,
size_t P2>
222 template <
typename I,
typename K,
typename C>
223 static void apply(
const I& input,
const K& kernel, C& conv) {
224 constexpr_select
auto impl = select_conv_impl<conv_type::VALID, I, K, C>();
240 cpp_unreachable(
"Invalid conv implementation selection");
255 template <
typename I,
typename K,
typename C>
256 static void apply(
const I& input,
const K& kernel, C& conv,
size_t s1,
size_t s2,
size_t p1,
size_t p2) {
257 constexpr_select
auto impl = select_conv_impl<conv_type::VALID, I, K, C>();
273 cpp_unreachable(
"Invalid conv implementation selection");
288 template <
typename I,
typename K,
typename C>
289 static void apply(
const I& input,
const K& kernel, C& conv,
size_t s1,
size_t s2,
size_t p1,
size_t p2) {
290 constexpr_select
auto impl = select_conv_impl<conv_type::VALID, I, K, C>();
306 cpp_unreachable(
"Invalid conv implementation selection");
FFT reduction (with MKL impl)
The functor impl for 2D same conv.
Definition: conv_2d.hpp:150
static void apply(const I &input, const K &kernel, C &conv)
Apply the convolution.
Definition: conv_2d.hpp:223
static void apply(const I &input, const K &kernel, C &conv)
Apply the convolution.
Definition: conv_2d.hpp:28
The functor impl for 2D full conv.
Definition: conv_2d.hpp:20
Definition: expression_builder.hpp:699
static void apply(const I &input, const K &kernel, C &conv)
Apply the convolution.
Definition: conv_2d.hpp:158
The functor impl for 2D same conv.
Definition: conv_2d.hpp:120
static void apply(const I &input, const K &kernel, C &conv)
Apply the convolution.
Definition: conv_2d.hpp:78
FFT reduction (with STD impl)
static void apply(const I &input, const K &kernel, C &conv, size_t s1, size_t s2, size_t p1, size_t p2)
Apply the convolution.
Definition: conv_2d.hpp:256
The functor impl for 2D valid conv.
Definition: conv_2d.hpp:181
The functor impl for 2D valid conv.
Definition: conv_2d.hpp:215
The functor impl for 2D valid conv.
Definition: conv_2d.hpp:281
decltype(auto) smart_forward_gpu(E &expr)
Smart forwarding for a temporary expression that will be computed in GPU.
Definition: helpers.hpp:343
The functor impl for 2D full conv.
Definition: conv_2d.hpp:70
decltype(auto) smart_forward(E &expr)
Smart forwarding for a temporary expression.
Definition: helpers.hpp:323
static void apply(const I &input, const K &kernel, C &conv)
Apply the convolution.
Definition: conv_2d.hpp:128
void inc_counter([[maybe_unused]] const char *name)
Increase the given counter.
Definition: counters.hpp:25
static void apply(const I &input, const K &kernel, C &conv)
Apply the convolution.
Definition: conv_2d.hpp:189
The functor impl for 2D valid conv.
Definition: conv_2d.hpp:248
static void apply(const I &input, const K &kernel, C &conv, size_t s1, size_t s2, size_t p1, size_t p2)
Apply the convolution.
Definition: conv_2d.hpp:289
FFT reduction (with CUFFT impl)