#include "kernel_selector_helper.h"
#include "activation/activation_kernel_selector.h"
#include "activation/activation_kernel_base.h"
-#include "api/CPP/activation_grad.hpp"
+#include "api/activation_grad.hpp"
+#include "register_gpu.hpp"
namespace cldnn {
namespace gpu {
activation_grad_params.gradient = true;
activation_grad_params.inputs.push_back(convert_data_tensor(arg.get_dependency(1).get_output_layout()));
- activation_grad_params.activation.function =
- get_kernel_selector_activation_grad_param(primitive->activation_grad_func);
- activation_grad_params.activation.m = primitive->additional_params.a;
- activation_grad_params.activation.n = primitive->additional_params.b;
-
+ convert_new_activation_grad_func(primitive, activation_grad_params.activations);
if (arg.is_parameterized()) {
const auto& slope_layout = arg.slope_input().get_output_layout();
const auto& output_layout = arg.get_output_layout();
const auto params_num =
- kernel_selector::GetActivationAdditionalParamsNumber(activation_grad_params.activation.function);
+ kernel_selector::GetActivationAdditionalParamsNumber(activation_grad_params.activations[0].function);
CLDNN_ERROR_LESS_THAN(arg.id(),
"Slope layout size count",
}
};
-namespace {
-struct attach {
- attach() {
- auto val_fw = activation_grad_gpu::create;
-
- implementation_map<activation_grad>::add({
- {std::make_tuple(engine_types::ocl, data_types::f32, format::yxfb), val_fw},
- {std::make_tuple(engine_types::ocl, data_types::f16, format::yxfb), val_fw},
- {std::make_tuple(engine_types::ocl, data_types::f32, format::bfyx), val_fw},
- {std::make_tuple(engine_types::ocl, data_types::f16, format::bfyx), val_fw},
- {std::make_tuple(engine_types::ocl, data_types::f32, format::byxf), val_fw},
- {std::make_tuple(engine_types::ocl, data_types::f16, format::byxf), val_fw},
- });
- }
- ~attach() {}
-};
-attach attach_impl;
-} // namespace
+namespace detail {
+
+attach_activation_grad_gpu::attach_activation_grad_gpu() {
+ auto val_fw = activation_grad_gpu::create;
+
+ implementation_map<activation_grad>::add({
+ {std::make_tuple(engine_types::ocl, data_types::f32, format::yxfb), val_fw},
+ {std::make_tuple(engine_types::ocl, data_types::f16, format::yxfb), val_fw},
+ {std::make_tuple(engine_types::ocl, data_types::f32, format::bfyx), val_fw},
+ {std::make_tuple(engine_types::ocl, data_types::f16, format::bfyx), val_fw},
+ {std::make_tuple(engine_types::ocl, data_types::f32, format::byxf), val_fw},
+ {std::make_tuple(engine_types::ocl, data_types::f16, format::byxf), val_fw},
+ });
+}
+
+} // namespace detail
} // namespace gpu
} // namespace cldnn