diff --git a/include/armnn/Types.hpp b/include/armnn/Types.hpp
index b2aa52e..3d3ab65 100644
--- a/include/armnn/Types.hpp
+++ b/include/armnn/Types.hpp
@@ -209,8 +209,10 @@
     SizeType m_NumDimMappings;
 };
 
+namespace profiling { class ProfilingGuid; }
+
 /// Define LayerGuid type.
-using LayerGuid = unsigned int;
+using LayerGuid = profiling::ProfilingGuid;
 
 class ITensorHandle;
 
@@ -312,4 +314,4 @@
         return hash<uint64_t>()(uint64_t(guid));
     }
 };
-}
+} // namespace std
diff --git a/src/armnn/Layer.cpp b/src/armnn/Layer.cpp
index dbeda22..1efe7e4 100644
--- a/src/armnn/Layer.cpp
+++ b/src/armnn/Layer.cpp
@@ -5,6 +5,7 @@
 #include "Layer.hpp"
 
 #include "Graph.hpp"
+#include <ProfilingService.hpp>
 #include <backendsCommon/WorkloadData.hpp>
 #include <backendsCommon/CpuTensorHandle.hpp>
 
@@ -184,15 +185,6 @@
     return m_EdgeStrategies[connectionIdx];
 }
 
-namespace {
-LayerGuid GenerateLayerGuid()
-{
-    // Note: Not thread safe.
-    static LayerGuid newGuid=0;
-    return newGuid++;
-}
-} // namespace
-
 Layer::Layer(unsigned int numInputSlots,
              unsigned int numOutputSlots,
              LayerType type,
@@ -202,7 +194,7 @@
 , m_LayerName(name ? name : "")
 , m_Type(type)
 , m_BackendId()
-, m_Guid(GenerateLayerGuid())
+, m_Guid(profiling::ProfilingService::Instance().NextGuid())
 {
     m_InputSlots.reserve(numInputSlots);
     for (unsigned int i = 0; i < numInputSlots; ++i)
diff --git a/src/armnn/QuantizerVisitor.cpp b/src/armnn/QuantizerVisitor.cpp
index 8a3d4f2..4b80b02 100644
--- a/src/armnn/QuantizerVisitor.cpp
+++ b/src/armnn/QuantizerVisitor.cpp
@@ -109,8 +109,8 @@
 
 void QuantizerVisitor::RecordLayer(const IConnectableLayer* srcLayer, IConnectableLayer* quantizedLayer)
 {
-    m_OriginalToQuantizedGuidMap[srcLayer->GetGuid()] = quantizedLayer->GetGuid();
-    m_QuantizedGuidToLayerMap[quantizedLayer->GetGuid()] = quantizedLayer;
+    m_OriginalToQuantizedGuidMap.insert(std::make_pair(srcLayer->GetGuid(), quantizedLayer->GetGuid()));
+    m_QuantizedGuidToLayerMap.insert(std::make_pair(quantizedLayer->GetGuid(), quantizedLayer));
 }
 
 void QuantizerVisitor::VisitAbsLayer(const IConnectableLayer* layer, const char* name)
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index 81091bc..5d06958 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -61,18 +61,17 @@
     }
 }
 
-uint32_t SerializerVisitor::GetSerializedId(unsigned int guid)
+uint32_t SerializerVisitor::GetSerializedId(armnn::LayerGuid guid)
 {
-    std::pair<unsigned int, uint32_t> guidPair(guid, m_layerId);
-
     if (m_guidMap.empty())
     {
-        m_guidMap.insert(guidPair);
+        m_guidMap.insert(std::make_pair(guid, m_layerId));
     }
     else if (m_guidMap.find(guid) == m_guidMap.end())
     {
-        guidPair.second = ++m_layerId;
-        m_guidMap.insert(guidPair);
+        ++m_layerId;
+        m_guidMap.insert(std::make_pair(guid, m_layerId));
+
         return m_layerId;
     }
     return m_guidMap[guid];
@@ -88,7 +87,7 @@
     auto flatBufferInputBindableBaseLayer = serializer::CreateBindableLayerBase(m_flatBufferBuilder,
                                                                                 flatBufferInputBaseLayer,
                                                                                 id);
-    // Push layer Guid to outputIds.
+    // Push layer index to outputIds.
     m_inputIds.push_back(GetSerializedId(layer->GetGuid()));
 
     // Create the FlatBuffer InputLayer
@@ -108,7 +107,7 @@
     auto flatBufferOutputBindableBaseLayer = serializer::CreateBindableLayerBase(m_flatBufferBuilder,
                                                                                  flatBufferOutputBaseLayer,
                                                                                  id);
-    // Push layer Guid to outputIds.
+    // Push layer index to outputIds.
     m_outputIds.push_back(GetSerializedId(layer->GetGuid()));
 
     // Create the FlatBuffer OutputLayer
diff --git a/src/armnnSerializer/Serializer.hpp b/src/armnnSerializer/Serializer.hpp
index 1fd507a..7dfd534 100644
--- a/src/armnnSerializer/Serializer.hpp
+++ b/src/armnnSerializer/Serializer.hpp
@@ -13,6 +13,8 @@
 
 #include <ArmnnSchema_generated.h>
 
+#include <armnn/Types.hpp>
+
 namespace armnnSerializer
 {
 
@@ -27,12 +29,12 @@
         return m_flatBufferBuilder;
     }
 
-    std::vector<unsigned int>& GetInputIds()
+    std::vector<uint32_t>& GetInputIds()
     {
         return m_inputIds;
     }
 
-    std::vector<unsigned int>& GetOutputIds()
+    std::vector<uint32_t>& GetOutputIds()
     {
         return m_outputIds;
     }
@@ -277,7 +279,7 @@
     flatbuffers::Offset<flatbuffers::Vector<T>> CreateDataVector(const void* memory, unsigned int size);
 
     ///Function which maps Guid to an index
-    uint32_t GetSerializedId(unsigned int guid);
+    uint32_t GetSerializedId(armnn::LayerGuid guid);
 
     /// Creates the serializer InputSlots for the layer.
     std::vector<flatbuffers::Offset<armnnSerializer::InputSlot>> CreateInputSlots(
@@ -293,14 +295,14 @@
     /// AnyLayers required by the SerializedGraph.
     std::vector<flatbuffers::Offset<armnnSerializer::AnyLayer>> m_serializedLayers;
 
-    /// Guids of all Input Layers required by the SerializedGraph.
-    std::vector<unsigned int> m_inputIds;
+    /// Vector of indexes of all Input Layers required by the SerializedGraph.
+    std::vector<uint32_t> m_inputIds;
 
-    /// Guids of all Output Layers required by the SerializedGraph.
-    std::vector<unsigned int> m_outputIds;
+    /// Vector of indexes of all Output Layers required by the SerializedGraph.
+    std::vector<uint32_t> m_outputIds;
 
     /// Mapped Guids of all Layers to match our index.
-    std::unordered_map<unsigned int, uint32_t > m_guidMap;
+    std::unordered_map<armnn::LayerGuid, uint32_t > m_guidMap;
 
     /// layer within our FlatBuffer index.
     uint32_t m_layerId;
diff --git a/src/armnnUtils/DotSerializer.cpp b/src/armnnUtils/DotSerializer.cpp
index 1f36cf7..7416ff6 100644
--- a/src/armnnUtils/DotSerializer.cpp
+++ b/src/armnnUtils/DotSerializer.cpp
@@ -116,7 +116,7 @@
     return *this;
 }
 
-DotEdge::DotEdge(std::ostream& stream, unsigned int fromNodeId, unsigned int toNodeId)
+DotEdge::DotEdge(std::ostream& stream, LayerGuid fromNodeId, LayerGuid toNodeId)
     : DotBase(stream)
 {
     std::stringstream ss;
@@ -176,7 +176,7 @@
     GetStream() << s;
 }
 
-DotNode::DotNode(std::ostream& stream, unsigned int nodeId, const char* label)
+DotNode::DotNode(std::ostream& stream, LayerGuid nodeId, const char* label)
     : DotBase(stream)
 {
     std::stringstream ss;
diff --git a/src/armnnUtils/DotSerializer.hpp b/src/armnnUtils/DotSerializer.hpp
index dfb8c7f..253fb76 100644
--- a/src/armnnUtils/DotSerializer.hpp
+++ b/src/armnnUtils/DotSerializer.hpp
@@ -5,6 +5,8 @@
 
 #pragma once
 
+#include <armnn/Types.hpp>
+
 #include <ostream>
 #include <vector>
 #include <memory>
@@ -75,7 +77,7 @@
 class DotEdge : public DotBase
 {
 public:
-    explicit DotEdge(std::ostream& stream, unsigned int fromNodeId, unsigned int toNodeId);
+    explicit DotEdge(std::ostream& stream, LayerGuid fromNodeId, LayerGuid toNodeId);
     ~DotEdge();
 
     DotAttributeSet& GetAttributeSet() { return *m_Attributes.get(); }
@@ -99,7 +101,7 @@
 class DotNode : public DotBase
 {
 public:
-    explicit DotNode(std::ostream& stream, unsigned int nodeId, const char* label);
+    explicit DotNode(std::ostream& stream, LayerGuid nodeId, const char* label);
     ~DotNode();
 
     NodeContent& GetContents()         { return *m_Contents.get(); }
diff --git a/src/backends/backendsCommon/WorkloadData.hpp b/src/backends/backendsCommon/WorkloadData.hpp
index b45a171..6a96a4a 100644
--- a/src/backends/backendsCommon/WorkloadData.hpp
+++ b/src/backends/backendsCommon/WorkloadData.hpp
@@ -439,6 +439,8 @@
 
 struct DebugQueueDescriptor : QueueDescriptor
 {
+    DebugQueueDescriptor() : m_Guid(0) {}
+
     void Validate(const WorkloadInfo& workloadInfo) const;
 
     LayerGuid m_Guid;
diff --git a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
index 594fd45..67c3e2c 100644
--- a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
@@ -25,11 +25,11 @@
         {
             case LayerType::Input:
                 ++m_inputLayerCount;
-                if (layer->GetGuid() == 0)
+                if (layer->GetGuid() == profiling::ProfilingGuid(0))
                 {
                     BOOST_TEST(layer->GetName() == "inLayer0");
                 }
-                else if (layer->GetGuid() == 1)
+                else if (layer->GetGuid() == profiling::ProfilingGuid(1))
                 {
                     BOOST_TEST(layer->GetName() == "inLayer1");
                 }
