Browse Source

Enable building with CUDA 12.8; Remove DnnInvoke.HaveCUDA

pull/768/merge
Canming Huang 2 months ago
parent
commit
da2ce491d0
  1. 4
      Emgu.CV.Extern/dnn/dnn_c.cpp
  2. 2
      Emgu.CV.Extern/dnn/dnn_c.h
  3. 2
      Emgu.CV/Dnn/DnnInvoke.cs
  4. 2
      opencv
  5. 13
      platforms/windows/Build_Binary_x86.bat

4
Emgu.CV.Extern/dnn/dnn_c.cpp

@ -917,6 +917,7 @@ void cveDnnSegmentationModelSegment(
#endif
}
/*
bool cveDnnHaveCUDA()
{
#ifdef HAVE_OPENCV_DNN
@ -924,4 +925,5 @@ bool cveDnnHaveCUDA()
#else
throw_no_dnn();
#endif
}
}
*/

2
Emgu.CV.Extern/dnn/dnn_c.h

@ -239,5 +239,5 @@ CVAPI(void) cveDnnSegmentationModelSegment(
cv::_InputArray* frame,
cv::_OutputArray* mask);
CVAPI(bool) cveDnnHaveCUDA();
//CVAPI(bool) cveDnnHaveCUDA();
#endif

2
Emgu.CV/Dnn/DnnInvoke.cs

@ -729,6 +729,7 @@ namespace Emgu.CV.Dnn
[MarshalAs(CvInvoke.BoolMarshalType)]
bool isDiagnosticsMode);
/*
/// <summary>
/// Checks if the current system has CUDA (Compute Unified Device Architecture) support enabled for DNN.
/// </summary>
@ -744,5 +745,6 @@ namespace Emgu.CV.Dnn
[DllImport(CvInvoke.ExternLibrary, CallingConvention = CvInvoke.CvCallingConvention)]
[return: MarshalAs(CvInvoke.BoolMarshalType)]
private static extern bool cveDnnHaveCUDA();
*/
}
}

2
opencv

@ -1 +1 @@
Subproject commit 1d18ac725eecef62cb9914e68b889c95f23c88f7
Subproject commit 8a26122f6ce306c8c4589e8688579b2b12c9d81d

13
platforms/windows/Build_Binary_x86.bat

@ -449,6 +449,13 @@ REM If you are using CUDA 9 with Open CV 3.3 release you will need to create an
REM https://stackoverflow.com/questions/45525377/installing-opencv-3-3-0-with-contrib-modules-using-cmake-cuda-9-0-rc-and-visual
SET CUDA_SDK_DIR=%CUDA_PATH%
REM prefer CUDA 12.8
IF EXIST "%CUDA_PATH_V12_8%" SET CUDA_SDK_DIR=%CUDA_PATH_V12_8%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V12_9%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V12_8%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V12_6%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V12_0%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V11_8%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V11_6%
@ -504,6 +511,8 @@ IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V11_6%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V11_8%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6 8.9 9.0"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V12_0%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6 8.9 9.0"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V12_6%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6 8.9 9.0"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V12_8%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6 8.9 9.0 12.0"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V12_9%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6 8.9 9.0 12.0"
GOTO END_GPU_ARCH_BIN
:GPU_ARCH_BIN_SPECIFIED
@ -521,7 +530,9 @@ IF EXIST "%CUDA_SDK_DIR%" SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_F
-DBUILD_SHARED_LIBS:BOOL=TRUE ^
-DOPENCV_SKIP_DLLMAIN_GENERATION=ON ^
-DCUDA_ARCH_BIN:STRING=%CUDA_ARCH_BIN_OPTION% ^
-DBUILD_opencv_world:BOOL=TRUE
-DBUILD_opencv_world:BOOL=TRUE ^
-DCUDA_NVCC_FLAGS:STRING="--expt-relaxed-constexpr --std=c++17" ^
-DCMAKE_CXX_STANDARD:STRING=17
GOTO END_OF_GPU

Loading…
Cancel
Save