#include "gpu/gpu_impl_list.hpp"
#if DNNL_GPU_VENDOR == DNNL_VENDOR_INTEL
#include "gpu/intel/reduction/atomic.hpp"
#include "gpu/intel/reduction/combined.hpp"
#include "gpu/intel/reduction/ref.hpp"
#include "gpu/intel/reduction/reusable_ref.hpp"
#ifdef DNNL_DEV_MODE
#include "gpu/intel/reduction/jit.hpp"
#endif
#endif
#if DNNL_GPU_VENDOR == DNNL_VENDOR_NVIDIA
#include "gpu/nvidia/cudnn_reduction.hpp"
#endif
#if DNNL_GPU_VENDOR == DNNL_VENDOR_AMD
#include "gpu/amd/miopen_reduction.hpp"
#endif
#ifdef GENERIC_SYCL_KERNELS_ENABLED
#include "gpu/generic/sycl/ref_reduction.hpp"
#include "gpu/generic/sycl/simple_reduction.hpp"
#endif
namespace dnnl {
namespace impl {
namespace gpu {
namespace {
constexpr impl_list_item_t impl_list[] = REG_REDUCTION_P({
GPU_INSTANCE_INTEL_DEVMODE(intel::reduction::gen_t)
GPU_INSTANCE_INTEL(intel::reduction::atomic_t)
GPU_INSTANCE_INTEL(intel::reduction::combined_t)
GPU_INSTANCE_INTEL(intel::reduction::ref_t)
GPU_INSTANCE_INTEL(intel::reduction::reusable_ref_t)
GPU_INSTANCE_NVIDIA(nvidia::cudnn_reduction_t)
GPU_INSTANCE_AMD(amd::miopen_reduction_t)
GPU_INSTANCE_GENERIC_SYCL(generic::sycl::ref_reduction_t)
GPU_INSTANCE_GENERIC_SYCL(generic::sycl::simple_reduction_t)
nullptr,
});
}
const impl_list_item_t *get_reduction_impl_list(const reduction_desc_t *desc) {
UNUSED(desc);
return impl_list;
}
} } }