Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / thirdparty / clDNN / kernel_selector / core / kernel_base.h
index 80b501e..28450a5 100644 (file)
@@ -40,7 +40,17 @@ namespace kernel_selector
             return GetKernelsData(params, options);
         }
 
-        virtual ParamsKey GetSupportedKey() const = 0;
+        virtual bool Supports(const Params& params, const optional_params& options) const
+        {
+            const ParamsKey requireKey = params.GetParamsKey().Merge(options.GetSupportedKey());
+            return GetSupportedKey().Support(requireKey);
+        }
+
+        bool SupportsTuning() const
+        {
+            return GetSupportedKey().TuningSupport();
+        }
+
         virtual const std::string GetName() const { return kernelName; }
 
         static const primitive_db& get_db() { return db; }
@@ -50,8 +60,9 @@ namespace kernel_selector
         const std::string kernelName;
 
         static size_t UniqeID() { return counter++; } // TODO: use interlocked
+        virtual ParamsKey GetSupportedKey() const = 0;
         
     private:
         static size_t counter;
     };
-}
\ No newline at end of file
+}