Commit 2bd9e144 authored by Jaikrishnan Menon's avatar Jaikrishnan Menon

CPU: Implement op::Divide

parent 0c5d5a65
master v0.29.0-rc.0 v0.28.0-rc.1 v0.28.0-rc.0 v0.27.1-rc.3 v0.27.1-rc.2 v0.27.1-rc.1 v0.27.1-rc.0 v0.27.0-rc.1 v0.27.0-rc.0 v0.26.1-rc.0 v0.26.0 v0.26.0-rc.8 v0.26.0-rc.7 v0.26.0-rc.6 v0.26.0-rc.5 v0.26.0-rc.4 v0.26.0-rc.3 v0.26.0-rc.2 v0.26.0-rc.0 v0.25.1-rc.11 v0.25.1-rc.10 v0.25.1-rc.9 v0.25.1-rc.8 v0.25.1-rc.7 v0.25.1-rc.6 v0.25.1-rc.5 v0.25.1-rc.4 v0.25.1-rc.3 v0.25.1-rc.2 v0.25.1-rc.1 v0.25.1-rc.0 v0.25.0 v0.25.0-rc.3 v0.25.0-rc.2 v0.25.0-rc.1 v0.25.0-rc.0 v0.25.0-dev.0 v0.24.0 v0.24.0-rc.3 v0.24.0-rc.2 v0.24.0-rc.1 v0.24.0-rc.0 v0.23.0-rc.7 v0.23.0-rc.6 v0.23.0-rc.5 v0.23.0-rc.4 v0.23.0-rc.3 v0.23.0-rc.2 v0.23.0-rc.1 v0.23.0-rc.0 v0.22.2-rc.0 v0.22.1 v0.22.1-rc.0 v0.22.0 v0.22.0-rc.2 v0.22.0-rc.0 v0.21.0 v0.21.0-rc.1 v0.21.0-rc.0 v0.20.1-rc.4 v0.20.1-rc.3 v0.20.1-rc.2 v0.20.1-rc.1 v0.20.1-rc.0 v0.20.0-rc.2 v0.20.0-rc.1 v0.20.0-rc.0 v0.20.0-dev.0 v0.19.1 v0.19.1-rc.0 v0.19.0 v0.19.0-rc.5 v0.19.0-rc.4 v0.19.0-rc.3 v0.19.0-rc.2 v0.19.0-rc.1 v0.19.0-rc.0 v0.18.1 v0.18.1-rc.1 v0.18.1-rc.0 v0.18.0 v0.18.0-rc.2 v0.18.0-rc.1 v0.18.0-rc.0 v0.17.0-rc.1 v0.17.0-rc.0 v0.16.0-rc.3 v0.16.0-rc.2 v0.16.0-rc.1 v0.16.0-rc.0 v0.15.1-rc.2 v0.15.1-rc.1 v0.15.0 v0.15.0-rc.2 v0.15.0-rc.1 v0.15.0-rc.0 v0.14.0 v0.14.0-rc.1 v0.14.0-rc.0 v0.13.0 v0.12.0 v0.12.0-rc.2 v0.12.0-rc.1 v0.12.0-rc.0 v0.11.1 v0.11.0 v0.11.0-rc.1 v0.11.0-rc.0 v0.10.1 v0.10.0 v0.10.0-rc.6 v0.10.0-rc.5 v0.10.0-rc.4 v0.10.0-rc.3 v0.10.0-rc.2 v0.10.0-rc.1 v0.10.0-rc.0 v0.9.1 v0.9.1-rc.0 v0.9.0 v0.9.0-rc.5 v0.9.0-rc.4 v0.9.0-rc.3 v0.9.0-rc.2 v0.9.0-rc.1 v0.9.0-rc.0 v0.8.2-rc.0 v0.8.1 v0.8.1-rc.0 v0.8.0 v0.8.0-rc.2 v0.8.0-rc.1 v0.8.0-rc.0 v0.7.0 v0.6.0 v0.6.0rc0 v0.6.0-rc.0 v0.6.0-rc0 v0.5.0 v0.4.0 v0.3.0 v0.2.1 v0.2.1-rc0 v0.2.0 v0.2.0-rc1 v0.2.0-rc0 v0.1.0 v0.1.0-rc2 v0.1.0-rc1 v0.1.0-rc0 v0.0.0
No related merge requests found
......@@ -233,3 +233,22 @@ void Emitter::EMITTER_DECL(EmitConcat)
TU += " }\n";
}
}
void Emitter::EMITTER_DECL(EmitDivide)
{
const element::Type& et = (dynamic_pointer_cast<const TensorViewType>(
n->get_arguments().at(0)->get_value_type()))
->get_element_type();
TU += " {\n"
" auto arg0 = call_frame->get_tensor_view_data<" + element_type_names[TI(et)] + ">(" + to_string(inputs[0].get_index()) + ");\n"
" auto arg1 = call_frame->get_tensor_view_data<" + element_type_names[TI(et)] + ">(" + to_string(inputs[1].get_index()) + ");\n"
" auto out = call_frame->get_tensor_view_data<" + element_type_names[TI(et)] + ">(" + to_string(outputs[0].get_index()) + ");\n"
" EigenArray1d<" + element_type_names[TI(et)] + ">(out, "
EIGEN_VECTOR_FORMAT(outputs[0].get_layout<DenseTensorViewLayout>()->get_size()) ") =\n"
" EigenArray1d<" + element_type_names[TI(et)] + ">(arg0, "
EIGEN_VECTOR_FORMAT(inputs[0].get_layout<DenseTensorViewLayout>()->get_size()) ") /\n"
" EigenArray1d<" + element_type_names[TI(et)] + ">(arg1, "
EIGEN_VECTOR_FORMAT(inputs[1].get_layout<DenseTensorViewLayout>()->get_size()) ");\n"
" }\n";
}
......@@ -51,6 +51,7 @@ namespace ngraph
void EMITTER_DECL(EmitTuple);
void EMITTER_DECL(EmitAbs);
void EMITTER_DECL(EmitConcat);
void EMITTER_DECL(EmitDivide);
};
}
......
......@@ -73,7 +73,8 @@ static const OpMap dispatcher{{TI(ngraph::op::Add), &Emitter::EmitAdd},
{TI(ngraph::op::GetTupleElement), &Emitter::EmitGetTupleElement},
{TI(ngraph::op::Tuple), &Emitter::EmitTuple},
{TI(ngraph::op::Abs), &Emitter::EmitAbs},
{TI(ngraph::op::Concat), &Emitter::EmitConcat}
{TI(ngraph::op::Concat), &Emitter::EmitConcat},
{TI(ngraph::op::Divide), &Emitter::EmitDivide}
};
#undef TI
......
......@@ -388,10 +388,9 @@ TEST(cpu, concat_vector)
ASSERT_EQ((vector<float>{2, 4, 8, 16, 1, 2, 4, 8, 16, 32, 18, 19}), result->get_vector());
}
/*
TEST(execute, divide)
TEST(cpu, divide)
{
auto manager = runtime::Manager::get("NGVM");
auto manager = runtime::Manager::get("CPU");
auto backend = manager->allocate_backend();
auto shape = Shape{2, 2};
......@@ -419,6 +418,7 @@ TEST(execute, divide)
ASSERT_EQ((vector<float>{2, 2, 2, 2}), result->get_vector());
}
/*
TEST(execute, equal)
{
auto shape = Shape{2, 2, 2};
......
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