virtual Status PrintGraph() = 0;
+ virtual profiling::ProfilingGuid GetGuid() const = 0;
+
/// Adds an input layer to the network.
/// @param id - User generated id to uniquely identify a particular input. The same id needs to be specified.
/// when passing the inputs to the IRuntime::EnqueueWorkload() function.
virtual Status PrintGraph() = 0;
virtual Status SerializeToDot(std::ostream& stream) const = 0;
+ virtual profiling::ProfilingGuid GetGuid() const = 0;
protected:
~IOptimizedNetwork() {}
#include <armnn/TypesUtils.hpp>
#include <armnn/BackendRegistry.hpp>
+#include <ProfilingService.hpp>
+
#include <fcntl.h>
#include <algorithm>
#include <fstream>
delete boost::polymorphic_downcast<Network*>(network);
}
-Status Network::PrintGraph()
-{
- m_Graph->Print();
- return Status::Success;
-}
-
void IOptimizedNetwork::Destroy(IOptimizedNetwork* network)
{
delete boost::polymorphic_downcast<OptimizedNetwork*>(network);
}
Network::Network()
-: m_Graph(std::make_unique<Graph>())
+: m_Graph(std::make_unique<Graph>()),
+ m_Guid(profiling::ProfilingService::Instance().NextGuid())
{
}
{
}
+Status Network::PrintGraph()
+{
+ m_Graph->Print();
+ return Status::Success;
+}
+
IConnectableLayer* Network::AddInputLayer(LayerBindingId id, const char* name)
{
return m_Graph->AddLayer<InputLayer>(id, name);
}
OptimizedNetwork::OptimizedNetwork(std::unique_ptr<Graph> graph)
- : m_Graph(std::move(graph))
+ : m_Graph(std::move(graph)),
+ m_Guid(profiling::ProfilingService::Instance().NextGuid())
{
}
Status PrintGraph() override;
+ profiling::ProfilingGuid GetGuid() const final { return m_Guid; };
+
IConnectableLayer* AddInputLayer(LayerBindingId id, const char* name=nullptr) override;
IConnectableLayer* AddArgMinMaxLayer(const ArgMinMaxDescriptor& desc,
const char* name);
std::unique_ptr<Graph> m_Graph;
+ profiling::ProfilingGuid m_Guid;
};
class OptimizedNetwork final : public IOptimizedNetwork
Status PrintGraph() override;
Status SerializeToDot(std::ostream& stream) const override;
+ profiling::ProfilingGuid GetGuid() const final { return m_Guid; };
+
Graph& GetGraph() { return *m_Graph; }
private:
std::unique_ptr<Graph> m_Graph;
+ profiling::ProfilingGuid m_Guid;
};