[GPU] Apply hsigmoid decomposition in oneDNN post-opt (#11603)

* [GPU] Apply hsigmoid decomposition in oneDNN post-opt

Signed-off-by: hyunback <hyunback.kim@intel.com>
This commit is contained in:
hyunback kim
2022-05-11 10:07:02 +09:00
committed by GitHub
parent 01a08c0a97
commit a7368d2e35

View File

@@ -1127,10 +1127,20 @@ void program_node::init_onednn_primitive_attributes() {
for (size_t i = 0; i < get_fused_activations_funcs().size(); i++) {
auto activation_type = get_fused_activations_funcs()[i];
auto params = get_fused_activations_params()[i];
dnnl::algorithm alg = onednn::convert_activation_func(activation_type);
post_ops.append_eltwise(1.0f, alg, params.a, params.b);
update_onednn_post_op_list(onednn_post_op_type::eltwise_act, empty_mem);
if (activation_type == cldnn::activation_func::hsigmoid) {
// Unsupported hsigmoid oneDNN gpu, splits hsigmoid activation min(max(val + 3, 0), 6) / 6
post_ops.append_eltwise(1.0f, dnnl::algorithm::eltwise_linear, 1.f, 3.f);
post_ops.append_eltwise(1.0f, dnnl::algorithm::eltwise_clip, 0.f, 6.f);
post_ops.append_eltwise(1.0f, dnnl::algorithm::eltwise_linear, 1/6.f, 0.f);
update_onednn_post_op_list(onednn_post_op_type::eltwise_linear, empty_mem);
update_onednn_post_op_list(onednn_post_op_type::eltwise_clip, empty_mem);
update_onednn_post_op_list(onednn_post_op_type::eltwise_linear, empty_mem);
} else {
auto params = get_fused_activations_params()[i];
dnnl::algorithm alg = onednn::convert_activation_func(activation_type);
post_ops.append_eltwise(1.0f, alg, params.a, params.b);
update_onednn_post_op_list(onednn_post_op_type::eltwise_act, empty_mem);
}
}
// Trying to optimize more than 1 post-ops