Commit 9c395596 authored by Louis Feng's avatar Louis Feng

fixed previous merge errors.

parent 4e9dae99
...@@ -106,7 +106,12 @@ size_t MKLDNNEmitter::build_convolution_forward(const mkldnn::memory::desc& inpu ...@@ -106,7 +106,12 @@ size_t MKLDNNEmitter::build_convolution_forward(const mkldnn::memory::desc& inpu
return conv_index; return conv_index;
} }
size_t MKLDNNEmitter::build_convolution_forward(const mkldnn::memory::desc& input_data_desc,
const mkldnn::memory::desc& weights_desc,
const mkldnn::memory::desc& bias_desc,
const mkldnn::memory::desc& result_desc, const mkldnn::memory::desc& result_desc,
const ngraph::Strides& strides,
const ngraph::Strides& dilation_strides,
const ngraph::CoordinateDiff& padding_below, const ngraph::CoordinateDiff& padding_below,
const ngraph::CoordinateDiff& padding_above) const ngraph::CoordinateDiff& padding_above)
...@@ -116,6 +121,7 @@ size_t MKLDNNEmitter::build_convolution_forward(const mkldnn::memory::desc& inpu ...@@ -116,6 +121,7 @@ size_t MKLDNNEmitter::build_convolution_forward(const mkldnn::memory::desc& inpu
const size_t bias_index = build_memory_primitive(bias_desc); const size_t bias_index = build_memory_primitive(bias_desc);
const size_t result_index = build_memory_primitive(result_desc); const size_t result_index = build_memory_primitive(result_desc);
const size_t conv_index = insert_primitive(new mkldnn::convolution_forward(
{{mkldnn::prop_kind::forward, {{mkldnn::prop_kind::forward,
mkldnn::algorithm::convolution_direct, mkldnn::algorithm::convolution_direct,
input_data_desc, input_data_desc,
...@@ -147,6 +153,9 @@ size_t MKLDNNEmitter::build_convolution_backward_data(const mkldnn::memory::desc ...@@ -147,6 +153,9 @@ size_t MKLDNNEmitter::build_convolution_backward_data(const mkldnn::memory::desc
const ngraph::CoordinateDiff &ng_padding_above) const ngraph::CoordinateDiff &ng_padding_above)
{ {
const size_t in_weights_index = build_memory_primitive(in_weights_desc);
const size_t in_delta_index = build_memory_primitive(in_delta_desc);
const size_t out_data_delta_index = build_memory_primitive(out_data_delta_desc);
mkldnn::memory::dims strides(ng_strides.begin(), ng_strides.end()); mkldnn::memory::dims strides(ng_strides.begin(), ng_strides.end());
mkldnn::memory::dims dilation(ng_dilation_strides.begin(), ng_dilation_strides.end()); mkldnn::memory::dims dilation(ng_dilation_strides.begin(), ng_dilation_strides.end());
...@@ -176,13 +185,18 @@ size_t MKLDNNEmitter::build_convolution_backward_data(const mkldnn::memory::desc ...@@ -176,13 +185,18 @@ size_t MKLDNNEmitter::build_convolution_backward_data(const mkldnn::memory::desc
mkldnn_utils::global_cpu_engine, mkldnn_utils::global_cpu_engine,
fwd_pd}; fwd_pd};
const size_t conv_index = insert_primitive(new mkldnn::convolution_backward_data(bwd_pd,
*mkldnn_primitives[in_delta_index], *mkldnn_primitives[in_delta_index],
*mkldnn_primitives[in_weights_index], *mkldnn_primitives[in_weights_index],
*mkldnn_primitives[out_data_delta_index]));
primitive_deps[conv_index] = {in_weights_index, in_delta_index, out_data_delta_index}; primitive_deps[conv_index] = {in_weights_index, in_delta_index, out_data_delta_index};
return conv_index; return conv_index;
} }
size_t MKLDNNEmitter::build_convolution_backward_filters_bias(const mkldnn::memory::desc &in_data_desc, size_t MKLDNNEmitter::build_convolution_backward_filters_bias(const mkldnn::memory::desc &in_data_desc,
const mkldnn::memory::desc &in_delta_desc,
const mkldnn::memory::desc &out_weights_delta_desc,
const mkldnn::memory::desc &out_bias_delta_desc, const mkldnn::memory::desc &out_bias_delta_desc,
const ngraph::Strides &ng_strides, const ngraph::Strides &ng_strides,
const ngraph::Strides &ng_dilation_strides, const ngraph::Strides &ng_dilation_strides,
...@@ -193,6 +207,7 @@ size_t MKLDNNEmitter::build_convolution_backward_filters_bias(const mkldnn::memo ...@@ -193,6 +207,7 @@ size_t MKLDNNEmitter::build_convolution_backward_filters_bias(const mkldnn::memo
const size_t in_delta_index = build_memory_primitive(in_delta_desc); const size_t in_delta_index = build_memory_primitive(in_delta_desc);
const size_t out_weights_delta_index = build_memory_primitive(out_weights_delta_desc); const size_t out_weights_delta_index = build_memory_primitive(out_weights_delta_desc);
const size_t out_bias_delta_index = build_memory_primitive(out_bias_delta_desc); const size_t out_bias_delta_index = build_memory_primitive(out_bias_delta_desc);
mkldnn::memory::dims strides(ng_strides.begin(), ng_strides.end()); mkldnn::memory::dims strides(ng_strides.begin(), ng_strides.end());
mkldnn::memory::dims dilation(ng_dilation_strides.begin(), ng_dilation_strides.end()); mkldnn::memory::dims dilation(ng_dilation_strides.begin(), ng_dilation_strides.end());
mkldnn::memory::dims padding_l(ng_padding_below.begin(), ng_padding_below.end()); mkldnn::memory::dims padding_l(ng_padding_below.begin(), ng_padding_below.end());
...@@ -225,6 +240,38 @@ size_t MKLDNNEmitter::build_convolution_backward_filters_bias(const mkldnn::memo ...@@ -225,6 +240,38 @@ size_t MKLDNNEmitter::build_convolution_backward_filters_bias(const mkldnn::memo
const size_t conv_index = insert_primitive(new mkldnn::convolution_backward_weights(bwd_pd, const size_t conv_index = insert_primitive(new mkldnn::convolution_backward_weights(bwd_pd,
*mkldnn_primitives[in_data_index], *mkldnn_primitives[in_data_index],
*mkldnn_primitives[out_bias_delta_index]); *mkldnn_primitives[in_delta_index],
*mkldnn_primitives[out_weights_delta_index],
*mkldnn_primitives[out_bias_delta_index]));
primitive_deps[conv_index] = {in_data_index, in_delta_index, out_weights_delta_index, out_bias_delta_index};
return conv_index;
}
size_t MKLDNNEmitter::build_elementwise_add(
const mkldnn::memory::desc& input0_data_desc,
const mkldnn::memory::desc& input1_data_desc,
const mkldnn::memory::desc& result_desc,
const std::vector<float>& scale_vector,
const std::vector<mkldnn::memory::primitive_desc>& inputs_pd)
{
std::vector<mkldnn::memory::primitive::at> inputs_primitive;
size_t input0_data_index = build_memory_primitive(input0_data_desc);
size_t input1_data_index = build_memory_primitive(input1_data_desc);
size_t result_index = build_memory_primitive(result_desc);
inputs_primitive.push_back(*mkldnn_primitives[input0_data_index]);
inputs_primitive.push_back(*mkldnn_primitives[input1_data_index]);
// elementwise sum primtive descriptor
mkldnn::sum::primitive_desc sum_pd =
mkldnn::sum::primitive_desc(result_desc, scale_vector, inputs_pd);
// sum primitive
size_t add_index = insert_primitive(
new mkldnn::sum(sum_pd, inputs_primitive, *mkldnn_primitives[result_index]));
primitive_deps[add_index] = {input0_data_index, input1_data_index, result_index};
return add_index;
} }
...@@ -101,6 +101,7 @@ namespace ngraph ...@@ -101,6 +101,7 @@ namespace ngraph
const mkldnn::memory::desc& result_desc, const mkldnn::memory::desc& result_desc,
const std::vector<float>& scale_vector, const std::vector<float>& scale_vector,
const std::vector<mkldnn::memory::primitive_desc>& input_pd); const std::vector<mkldnn::memory::primitive_desc>& input_pd);
private: private:
std::shared_ptr<CPU_ExternalFunction> external_function; std::shared_ptr<CPU_ExternalFunction> external_function;
std::vector<mkldnn::primitive*> mkldnn_primitives; std::vector<mkldnn::primitive*> mkldnn_primitives;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment