#include "internal/Convert.h"
#include "graph/operand/Set.h"
-#include "codegen/IPlanBuilder.h"
#include "graph/operation/LowerInfo.h"
#include "logging.h"
namespace codegen
{
-void Planner::visit(const graph::operation::Conv2DNode &node)
+void Planner::visit(const graph::operation::Conv2DNode &)
{
- // backend
- auto backend = node.lower_info()->backend();
-
- // Generate Stage
- auto stage_gen = backend->stage_gen();
- _builder.addStage(stage_gen->generate(node));
+ // DO NOTHING
}
-void Planner::visit(const graph::operation::MaxPool2DNode &node)
+void Planner::visit(const graph::operation::MaxPool2DNode &)
{
- // backend
- auto backend = node.lower_info()->backend();
-
- // Generate Stage
- auto stage_gen = backend->stage_gen();
- _builder.addStage(stage_gen->generate(node));
+ // DO NOTHING
}
-void Planner::visit(const graph::operation::AvgPool2DNode &node)
+void Planner::visit(const graph::operation::AvgPool2DNode &)
{
- // backend
- auto backend = node.lower_info()->backend();
-
- // Generate Stage
- auto stage_gen = backend->stage_gen();
- _builder.addStage(stage_gen->generate(node));
+ // DO NOTHING
}
void Planner::visit(const graph::operation::ConcatNode &node)
{
+ (void)node; // NOTE To prevent from unused variable warning
+
// NOTE This implementation assumes concat over feature depth
// TODO Remove this assumption
assert(_ctx.at(::neurun::graph::operand::Index{node.param().axis_index}).asScalar<int32_t>() ==
3);
-
- // backend
- auto backend = node.lower_info()->backend();
-
- // Generate Stage
- auto stage_gen = backend->stage_gen();
- _builder.addStage(stage_gen->generate(node));
}
-void Planner::visit(const graph::operation::FullyConnectedNode &node)
+void Planner::visit(const graph::operation::FullyConnectedNode &)
{
- VERBOSE(FullyConnected) << "Configure FULLY_CONNECTED operation" << std::endl;
-
- // backend
- auto backend = node.lower_info()->backend();
-
- // Generate Stage
- auto stage_gen = backend->stage_gen();
- _builder.addStage(stage_gen->generate(node));
+ // DO NOTHING
}
void Planner::visit(const graph::operation::ReshapeNode &node)
{
+ (void)node; // NOTE To prevent from unused variable warning
+
const auto output_index{node.getOutputs().at(0)};
const auto input_index{node.getInputs().at(0)};
// input(4D)'s C * H * W == output(2D)'s W
assert((_ctx.at(input_index).shape().dim(3) * _ctx.at(input_index).shape().dim(1) *
_ctx.at(input_index).shape().dim(2)) == _ctx.at(output_index).shape().dim(1));
-
- // backend
- auto backend = node.lower_info()->backend();
-
- // Generate Stage
- auto stage_gen = backend->stage_gen();
- _builder.addStage(stage_gen->generate(node));
}
void Planner::visit(const graph::operation::SoftmaxNode &node)
{
+ (void)node; // NOTE To prevent from unused variable warning
+
VERBOSE(Softmax) << "Configure SOFTMAX operation" << std::endl;
const auto output_index{node.getOutputs().at(0)};
assert(_ctx.at(input_index).shape().dim(0) == 1);
assert(_ctx.at(input_index).shape().dim(0) == _ctx.at(output_index).shape().dim(0));
assert(_ctx.at(input_index).shape().dim(1) == _ctx.at(output_index).shape().dim(1));
-
- // backend
- auto backend = node.lower_info()->backend();
-
- // Generate Stage
- auto stage_gen = backend->stage_gen();
- _builder.addStage(stage_gen->generate(node));
}
-void Planner::visit(const graph::operation::NOPNode &node)
+void Planner::visit(const graph::operation::NOPNode &)
{
- // backend
- auto backend = node.lower_info()->backend();
-
- // Generate Stage
- auto stage_gen = backend->stage_gen();
- _builder.addStage(stage_gen->generate(node));
+ // DO NOTHING
}
void Planner::visit(const graph::operation::PermuteNode &node)
{
+ (void)node; // NOTE To prevent from unused variable warning
+
VERBOSE(Permute) << "Configure Permute operation" << std::endl;
const auto output_index{node.getOutputs().at(0)};
const auto input_index{node.getInputs().at(0)};
assert(_ctx.at(output_index).shape().rank() == _ctx.at(input_index).shape().rank());
-
- // backend
- auto backend = node.lower_info()->backend();
-
- // Generate Stage
- auto stage_gen = backend->stage_gen();
- _builder.addStage(stage_gen->generate(node));
}
-void Planner::visit(const graph::operation::AddNode &node)
+void Planner::visit(const graph::operation::AddNode &)
{
- VERBOSE(Add) << "Configure Add operation" << std::endl;
-
- // backend
- auto backend = node.lower_info()->backend();
-
- // Generate Stage
- auto stage_gen = backend->stage_gen();
- _builder.addStage(stage_gen->generate(node));
+ // DO NOTHING
}
} // namespace codegen