17#ifndef LUCI_INTERPRETER_INTERPRETER_H
18#define LUCI_INTERPRETER_INTERPRETER_H
20#include "luci_interpreter/core/Tensor.h"
30#include <unordered_map>
74 std::unique_ptr<IMemoryManager> _default_memory_manager =
nullptr;
75 std::unique_ptr<class RuntimeModule> _runtime_module;
78 std::unique_ptr<struct RuntimeToIR> _runtime_to_ir;
79 std::unordered_map<const loco::Node *, Tensor *> _node_to_tensor;
80 std::unique_ptr<class EventNotifier> _event_notifier;
81 std::vector<ExecutionObserver *> _observers;
Logical unit of computation.
CircleNode for Output of the Graph.
Collection of 'loco::Graph's.
virtual void postOperatorExecute(const luci::CircleNode *node)
virtual ~ExecutionObserver()
virtual void preOperatorExecute(const luci::CircleNode *node)
virtual void postTensorWrite(const luci::CircleNode *node, const Tensor *tensor)
const Tensor * getTensor(const loco::Node *node)
void attachObserver(ExecutionObserver *observer)
size_t getOutputTensorSize(const luci::CircleOutput *output_node)
void writeInputTensor(const luci::CircleInput *input_node, const void *data, size_t data_size)
void readOutputTensor(const luci::CircleOutput *output_node, void *data, size_t data_size)
const T * data(const std::vector< T, Alloc > &v)
CircleOutput * output_node(loco::Graph *g, const loco::GraphOutputIndex &index)
Find a CircleOutput node with a given output index.
CircleInput * input_node(loco::Graph *g, const loco::GraphInputIndex &index)
Find a Pull node with a given input index.