From fab419a484853f418721a39a501f4ed4dc6421e8 Mon Sep 17 00:00:00 2001 From: CSBVision Date: Fri, 20 Sep 2024 10:44:21 +0200 Subject: [PATCH] Update op_cuda.hpp --- modules/dnn/src/op_cuda.cpp | 15 +++++++++++++++ modules/dnn/src/op_cuda.hpp | 8 +------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/modules/dnn/src/op_cuda.cpp b/modules/dnn/src/op_cuda.cpp index 46e68f7689..09efa52c87 100644 --- a/modules/dnn/src/op_cuda.cpp +++ b/modules/dnn/src/op_cuda.cpp @@ -107,3 +107,18 @@ void Net::Impl::initCUDABackend(const std::vector& blobsToKeep_) CV__DNN_INLINE_NS_END }} // namespace cv::dnn #endif // HAVE_CUDA + +namespace cv { namespace dnn { + +bool haveCUDA() +{ +#ifdef HAVE_CUDA + int dev = 0; + static bool ret = (cudaGetDevice(&dev) == cudaSuccess); + return ret; +#else + return false; +#endif +} + +}} // namespace cv::dnn diff --git a/modules/dnn/src/op_cuda.hpp b/modules/dnn/src/op_cuda.hpp index 0ce4d469fc..781ebaeddf 100644 --- a/modules/dnn/src/op_cuda.hpp +++ b/modules/dnn/src/op_cuda.hpp @@ -29,13 +29,7 @@ namespace cv { namespace dnn { return id == DNN_TARGET_CUDA_FP16 || id == DNN_TARGET_CUDA; } - constexpr bool haveCUDA() { -#ifdef HAVE_CUDA - return true; -#else - return false; -#endif - } + bool haveCUDA(); #ifdef HAVE_CUDA namespace cuda4dnn { namespace csl {