diff --git a/ArmnnDevice.cpp b/ArmnnDevice.cpp
index 60bfa74..216b010 100644
--- a/ArmnnDevice.cpp
+++ b/ArmnnDevice.cpp
@@ -57,7 +57,8 @@
         armnn::IRuntime::CreationOptions options;
         if (!m_Options.GetClTunedParametersFile().empty())
         {
-            m_ClTunedParameters = armnn::IGpuAccTunedParameters::Create(m_Options.GetClTunedParametersMode());
+            m_ClTunedParameters = armnn::IGpuAccTunedParameters::Create(m_Options.GetClTunedParametersMode(),
+                                                                        m_Options.GetClTuningLevel());
             try
             {
                 m_ClTunedParameters->Load(m_Options.GetClTunedParametersFile().c_str());
diff --git a/DriverOptions.cpp b/DriverOptions.cpp
index cd4b6bf..6615e51 100644
--- a/DriverOptions.cpp
+++ b/DriverOptions.cpp
@@ -32,6 +32,7 @@
     : m_Backends({computeDevice})
     , m_VerboseLogging(false)
     , m_ClTunedParametersMode(armnn::IGpuAccTunedParameters::Mode::UseTunedParameters)
+    , m_ClTuningLevel(armnn::IGpuAccTunedParameters::TuningLevel::Rapid)
     , m_EnableGpuProfiling(false)
     , m_fp16Enabled(fp16Enabled)
 {
@@ -41,6 +42,7 @@
     : m_Backends(backends)
     , m_VerboseLogging(false)
     , m_ClTunedParametersMode(armnn::IGpuAccTunedParameters::Mode::UseTunedParameters)
+    , m_ClTuningLevel(armnn::IGpuAccTunedParameters::TuningLevel::Rapid)
     , m_EnableGpuProfiling(false)
     , m_fp16Enabled(fp16Enabled)
 {
@@ -49,6 +51,7 @@
 DriverOptions::DriverOptions(int argc, char** argv)
     : m_VerboseLogging(false)
     , m_ClTunedParametersMode(armnn::IGpuAccTunedParameters::Mode::UseTunedParameters)
+    , m_ClTuningLevel(armnn::IGpuAccTunedParameters::TuningLevel::Rapid)
     , m_EnableGpuProfiling(false)
     , m_fp16Enabled(false)
 {
@@ -56,6 +59,7 @@
 
     std::string unsupportedOperationsAsString;
     std::string clTunedParametersModeAsString;
+    std::string clTuningLevelAsString;
 
     po::options_description optionsDesc("Options");
     optionsDesc.add_options()
@@ -89,6 +93,13 @@
          "If 'UpdateTunedParameters', will also find the optimum parameters when preparing new networks and update "
          "the file accordingly.")
 
+        ("cl-tuning-level,o",
+         po::value<std::string>(&clTuningLevelAsString)->default_value("rapid"),
+         "exhaustive: all lws values are tested "
+         "normal: reduced number of lws values but enough to still have the performance really close to the "
+         "exhaustive approach "
+         "rapid: only 3 lws values should be tested for each kernel ")
+
         ("gpu-profiling,p",
          po::bool_switch(&m_EnableGpuProfiling),
          "Turns GPU profiling on")
@@ -166,6 +177,24 @@
             ALOGW("Requested unknown cl-tuned-parameters-mode '%s'. Defaulting to UseTunedParameters",
                 clTunedParametersModeAsString.c_str());
         }
+
+        if (clTuningLevelAsString == "exhaustive")
+        {
+            m_ClTuningLevel = armnn::IGpuAccTunedParameters::TuningLevel::Exhaustive;
+        }
+        else if (clTuningLevelAsString == "normal")
+        {
+            m_ClTuningLevel = armnn::IGpuAccTunedParameters::TuningLevel::Normal;
+        }
+        else if (clTuningLevelAsString == "rapid")
+        {
+            m_ClTuningLevel = armnn::IGpuAccTunedParameters::TuningLevel::Rapid;
+        }
+        else
+        {
+            ALOGW("Requested unknown cl-tuner-mode '%s'. Defaulting to rapid",
+                  clTuningLevelAsString.c_str());
+        }
     }
 }
 
diff --git a/DriverOptions.hpp b/DriverOptions.hpp
index 637ccd6..895af57 100644
--- a/DriverOptions.hpp
+++ b/DriverOptions.hpp
@@ -28,6 +28,7 @@
     const std::set<unsigned int>& GetForcedUnsupportedOperations() const { return m_ForcedUnsupportedOperations; }
     const std::string& GetClTunedParametersFile() const { return m_ClTunedParametersFile; }
     armnn::IGpuAccTunedParameters::Mode GetClTunedParametersMode() const { return m_ClTunedParametersMode; }
+    armnn::IGpuAccTunedParameters::TuningLevel GetClTuningLevel() const { return m_ClTuningLevel; }
     bool IsGpuProfilingEnabled() const { return m_EnableGpuProfiling; }
     bool GetFp16Enabled() const { return m_fp16Enabled; }
 
@@ -38,6 +39,7 @@
     std::set<unsigned int> m_ForcedUnsupportedOperations;
     std::string m_ClTunedParametersFile;
     armnn::IGpuAccTunedParameters::Mode m_ClTunedParametersMode;
+    armnn::IGpuAccTunedParameters::TuningLevel m_ClTuningLevel;
     bool m_EnableGpuProfiling;
     bool m_fp16Enabled;
 };
