From 8a2903c190fd41b2ac4255c436fddf1dd58dacde Mon Sep 17 00:00:00 2001 From: ruisv <27017322+ruisv@users.noreply.github.com> Date: Tue, 6 May 2025 23:47:12 +0800 Subject: [PATCH 1/2] =?UTF-8?q?CUDA=E2=80=AF12.9=20support:=20build?= =?UTF-8?q?=E2=80=AFNppStreamContext=E2=80=AFmanually?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/include/opencv2/core/private.cuda.hpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/modules/core/include/opencv2/core/private.cuda.hpp b/modules/core/include/opencv2/core/private.cuda.hpp index 39f2ddcdeb3d..a9029131fbfa 100644 --- a/modules/core/include/opencv2/core/private.cuda.hpp +++ b/modules/core/include/opencv2/core/private.cuda.hpp @@ -147,7 +147,23 @@ namespace cv { namespace cuda inline explicit NppStreamHandler(cudaStream_t newStream) { nppStreamContext = {}; - nppSafeCall(nppGetStreamContext(&nppStreamContext)); + #if CUDA_VERSION < 12090 + nppSafeCall(nppGetStreamContext(&nppStreamContext)); + #else + int device = 0; + cudaSafeCall(cudaGetDevice(&device)); + + cudaDeviceProp prop{}; + cudaSafeCall(cudaGetDeviceProperties(&prop, device)); + + nppStreamContext.nCudaDeviceId = device; + nppStreamContext.nMultiProcessorCount = prop.multiProcessorCount; + nppStreamContext.nMaxThreadsPerMultiProcessor = prop.maxThreadsPerMultiProcessor; + nppStreamContext.nMaxThreadsPerBlock = prop.maxThreadsPerBlock; + nppStreamContext.nSharedMemPerBlock = prop.sharedMemPerBlock; + nppStreamContext.nCudaDevAttrComputeCapabilityMajor = prop.major; + nppStreamContext.nCudaDevAttrComputeCapabilityMinor = prop.minor; + #endif nppStreamContext.hStream = newStream; cudaSafeCall(cudaStreamGetFlags(nppStreamContext.hStream, &nppStreamContext.nStreamFlags)); } From 9ab3a249c2509e969ae12190400b22ded775108d Mon Sep 17 00:00:00 2001 From: ruisv <27017322+ruisv@users.noreply.github.com> Date: Wed, 7 May 2025 11:46:43 +0800 Subject: [PATCH 2/2] remove private.cuda.hpp:158 space --- modules/core/include/opencv2/core/private.cuda.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/core/include/opencv2/core/private.cuda.hpp b/modules/core/include/opencv2/core/private.cuda.hpp index a9029131fbfa..4250f6103302 100644 --- a/modules/core/include/opencv2/core/private.cuda.hpp +++ b/modules/core/include/opencv2/core/private.cuda.hpp @@ -155,7 +155,7 @@ namespace cv { namespace cuda cudaDeviceProp prop{}; cudaSafeCall(cudaGetDeviceProperties(&prop, device)); - + nppStreamContext.nCudaDeviceId = device; nppStreamContext.nMultiProcessorCount = prop.multiProcessorCount; nppStreamContext.nMaxThreadsPerMultiProcessor = prop.maxThreadsPerMultiProcessor;