diff --git a/include/armnn/INetwork.hpp b/include/armnn/INetwork.hpp
index 6efc84f..647f072 100644
--- a/include/armnn/INetwork.hpp
+++ b/include/armnn/INetwork.hpp
@@ -95,6 +95,8 @@
 
     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.
@@ -540,6 +542,7 @@
     virtual Status PrintGraph() = 0;
     virtual Status SerializeToDot(std::ostream& stream) const = 0;
 
+    virtual profiling::ProfilingGuid GetGuid() const = 0;
 
 protected:
     ~IOptimizedNetwork() {}
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index b1cb5a8..573f6a1 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -22,6 +22,8 @@
 #include <armnn/TypesUtils.hpp>
 #include <armnn/BackendRegistry.hpp>
 
+#include <ProfilingService.hpp>
+
 #include <fcntl.h>
 #include <algorithm>
 #include <fstream>
@@ -53,12 +55,6 @@
     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);
@@ -925,7 +921,8 @@
 }
 
 Network::Network()
-: m_Graph(std::make_unique<Graph>())
+: m_Graph(std::make_unique<Graph>()),
+  m_Guid(profiling::ProfilingService::Instance().NextGuid())
 {
 }
 
@@ -933,6 +930,12 @@
 {
 }
 
+Status Network::PrintGraph()
+{
+    m_Graph->Print();
+    return Status::Success;
+}
+
 IConnectableLayer* Network::AddInputLayer(LayerBindingId id, const char* name)
 {
     return m_Graph->AddLayer<InputLayer>(id, name);
@@ -1563,7 +1566,8 @@
 }
 
 OptimizedNetwork::OptimizedNetwork(std::unique_ptr<Graph> graph)
-    : m_Graph(std::move(graph))
+    : m_Graph(std::move(graph)),
+      m_Guid(profiling::ProfilingService::Instance().NextGuid())
 {
 }
 
diff --git a/src/armnn/Network.hpp b/src/armnn/Network.hpp
index 49cf4da..0a11941 100644
--- a/src/armnn/Network.hpp
+++ b/src/armnn/Network.hpp
@@ -34,6 +34,8 @@
 
     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,
@@ -248,6 +250,7 @@
         const char* name);
 
     std::unique_ptr<Graph> m_Graph;
+    profiling::ProfilingGuid m_Guid;
 };
 
 class OptimizedNetwork final : public IOptimizedNetwork
@@ -259,10 +262,13 @@
     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;
 };
 
 
