Publishing 2019 R3 content
[platform/upstream/dldt.git] / inference-engine / thirdparty / clDNN / src / gpu / activation_grad_gpu.cpp
index b8d3a03..eef28f6 100644 (file)
@@ -21,7 +21,8 @@
 #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 {
@@ -50,17 +51,13 @@ struct activation_grad_gpu : typed_primitive_gpu_impl<activation_grad> {
 
         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",
@@ -85,23 +82,21 @@ struct activation_grad_gpu : typed_primitive_gpu_impl<activation_grad> {
     }
 };
 
-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