#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
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;
if (device_name == "MYRIAD") {