message: dnn(ie): implicit usage of IE::GPU OpenCL kernels cache
diff: #include <opencv2/core/utils/configuration.private.hpp>
  #include <opencv2/core/utils/logger.hpp>
  +#include "opencv2/core/utils/filesystem.hpp"
  +#include "opencv2/core/utils/filesystem.private.hpp"
  +
  namespace cv { namespace dnn {
  #ifdef HAVE_DNN_NGRAPH
  @@ -680,6 +683,23 @@ void InfEngineNgraphNet::initPlugin(InferenceEngine::CNNNetwork& net)
  ie.SetConfig({{
  InferenceEngine::PluginConfigParams::KEY_CPU_THREADS_NUM, format("%d", getNumThreads()),
  }}, device_name);
  +#endif
  +#if INF_ENGINE_VER_MAJOR_GE(INF_ENGINE_RELEASE_2021_2)
  + if (device_name.find("GPU") == 0)
  + {
  +#if OPENCV_HAVE_FILESYSTEM_SUPPORT
  + std::string cache_path = utils::fs::getCacheDirectory((std::string("dnn_ie_cache_") + device_name).c_str(), "OPENCV_DNN_IE_GPU_CACHE_DIR");
  +#else
  + std::string cache_path = utils::getConfigurationParameterString("OPENCV_DNN_IE_GPU_CACHE_DIR", "");
  +#endif
  + if (!cache_path.empty() && cache_path != "disabled")
  + {
  + CV_LOG_INFO(NULL, "OpenCV/nGraph: using GPU kernels cache: " << cache_path);
  + ie.SetConfig({{
  + InferenceEngine::PluginConfigParams::KEY_CACHE_DIR, cache_path,
  + }}, device_name);
  + }
  + }
  #endif
  }
  std::map<std::string, std::string> config;
  