Skip to content

Commit

Permalink
[DRAFT][tflchef] Support multiple subgraphs
Browse files Browse the repository at this point in the history
This draft adds supporting of multiple subgraphs and While operation.

ONE-DCO-1.0-Signed-off-by: Artem Balyshev <[email protected]>
  • Loading branch information
Artem Balyshev committed Jan 23, 2024
1 parent 9890845 commit 0eb1989
Show file tree
Hide file tree
Showing 236 changed files with 1,827 additions and 555 deletions.
2 changes: 1 addition & 1 deletion compiler/souschef/include/souschef/TensorFiller.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ class TensorFiller
return false;
}

private:
protected:
std::map<uint32_t, bool> _tensor_filler{};
std::map<uint32_t, std::vector<int32_t>> _tensor_filler_vint32{};
std::map<uint32_t, std::vector<float>> _tensor_filler_vfloat{};
Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/Abs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,18 @@ void TFliteOpAbs::filler(const tflite::Operator *op, TFliteImport *import,
}

tflchef::Operation *TFliteOpAbs::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("Abs");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/Add.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,21 @@ void TFliteOpAdd::filler(const tflite::Operator *op, TFliteImport *import,
}

tflchef::Operation *TFliteOpAdd::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto op_params = op->builtin_options_as_AddOptions();
assert(op_params != nullptr);

auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("Add");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/AddN.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,18 @@ void TFliteOpAddN::filler(const tflite::Operator *op, TFliteImport *import,
}

tflchef::Operation *TFliteOpAddN::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("AddN");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/ArgMax.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,21 @@ void TFliteOpArgMax::filler(const tflite::Operator *op, TFliteImport *import,
}

tflchef::Operation *TFliteOpArgMax::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto op_params = op->builtin_options_as_ArgMaxOptions();
assert(op_params != nullptr);

auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("ArgMax");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/ArgMin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,21 @@ void TFliteOpArgMin::filler(const tflite::Operator *op, TFliteImport *import,
}

tflchef::Operation *TFliteOpArgMin::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto op_params = op->builtin_options_as_ArgMinOptions();
assert(op_params != nullptr);

auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("ArgMin");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/AveragePool2D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,21 @@ void TFliteOpAveragePool2D::filler(const tflite::Operator *op, TFliteImport *imp
}

tflchef::Operation *TFliteOpAveragePool2D::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto op_params = op->builtin_options_as_Pool2DOptions();
assert(op_params != nullptr);

auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("AveragePool2D");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/BatchMatMul.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,18 @@ void TFliteOpBatchMatMul::filler(const tflite::Operator *op, TFliteImport *impor
}

tflchef::Operation *TFliteOpBatchMatMul::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("BatchMatMul");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/BatchToSpaceND.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,18 @@ void TFliteOpBatchToSpaceND::filler(const tflite::Operator *op, TFliteImport *im
}

tflchef::Operation *TFliteOpBatchToSpaceND::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("BatchToSpaceND");

Expand Down
17 changes: 13 additions & 4 deletions compiler/tflchef/tflite/src/Op/BidirectionalSequenceLSTM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,23 @@ void TFliteOpBidirectionalSequenceLSTM::filler(const tflite::Operator *op, TFlit
}
}

tflchef::Operation *
TFliteOpBidirectionalSequenceLSTM::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::Operation *TFliteOpBidirectionalSequenceLSTM::build(const tflite::Operator *op,
TFliteImport *import,
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto op_params = op->builtin_options_as_BidirectionalSequenceLSTMOptions();
assert(op_params != nullptr);

auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("BidirectionalSequenceLSTM");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/BroadcastTo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,18 @@ void TFliteOpBroadcastTo::filler(const tflite::Operator *op, TFliteImport *impor
}

tflchef::Operation *TFliteOpBroadcastTo::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("BroadcastTo");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/Cast.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,21 @@ void TFliteOpCast::filler(const tflite::Operator *op, TFliteImport *import,
}

tflchef::Operation *TFliteOpCast::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto op_params = op->builtin_options_as_CastOptions();
assert(op_params != nullptr);

auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("Cast");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/Ceil.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,18 @@ void TFliteOpCeil::filler(const tflite::Operator *, TFliteImport *, tflchef::Mod
}

tflchef::Operation *TFliteOpCeil::build(const tflite::Operator *, TFliteImport *,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("Ceil");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/Concatenation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,21 @@ void TFliteOpConcatenation::filler(const tflite::Operator *op, TFliteImport *imp
}

tflchef::Operation *TFliteOpConcatenation::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto op_params = op->builtin_options_as_ConcatenationOptions();
assert(op_params != nullptr);

auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("Concatenation");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/Conv2D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,21 @@ void TFliteOpConv2D::filler(const tflite::Operator *op, TFliteImport *import,
}

tflchef::Operation *TFliteOpConv2D::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto op_params = op->builtin_options_as_Conv2DOptions();
assert(op_params != nullptr);

auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("Conv2D");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/Cos.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,18 @@ void TFliteOpCos::filler(const tflite::Operator *op, TFliteImport *import,
}

tflchef::Operation *TFliteOpCos::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("Cos");

Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/CumSum.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,21 @@ void TFliteOpCumsum::filler(const tflite::Operator *op, TFliteImport *import,
}

tflchef::Operation *TFliteOpCumsum::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto op_params = op->builtin_options_as_CumsumOptions();
assert(op_params != nullptr);

auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("CumSum");
auto op_options = operation->mutable_cumsum_options();
Expand Down
13 changes: 11 additions & 2 deletions compiler/tflchef/tflite/src/Op/DepthToSpace.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,18 @@ void TFliteOpDepthToSpace::filler(const tflite::Operator *op, TFliteImport *impo
}

tflchef::Operation *TFliteOpDepthToSpace::build(const tflite::Operator *op, TFliteImport *import,
tflchef::ModelRecipe *model_recipe) const
tflchef::ModelRecipe *model_recipe,
tflchef::Graph *model_graph) const
{
auto operation = model_recipe->add_operation();
tflchef::Operation *operation = nullptr;
if (model_graph)
{
operation = model_graph->add_operation();
}
else
{
operation = model_recipe->add_operation();
}

operation->set_type("DepthToSpace");

Expand Down
Loading

0 comments on commit 0eb1989

Please sign in to comment.