1.安裝 Visual Studio 2017
勾選適用於桌面的 VC++ 2015.3 v14.00(v140) 工具集
2.安裝 CUDA 9.2
先安裝 Base Installer
再安裝 Patch 1 (Released Aug 16, 2018)
設置環境變量
CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2
CUDA_PATH_V9_2 = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.2
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
檢查環境變量 set cuda
驗證安裝,進入 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\extras\demo_suite
目錄,執行 deviceQuery.exe
執行 bandwidthTest.exe
Result = PASS 說明安裝成功
3.安裝 cuDNN 7.5, for CUDA 9.2
解壓 cudnn-9.2-windows10-x64-v7.5.0.56.zip
,將 cudnn-9.2-windows10-x64-v7.5.0.56\cuda\bin\cudnn64_7.dll
複製到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\bin
將 cudnn-9.2-windows10-x64-v7.5.0.56\cuda\include\cudnn.h
複製到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include
將 cudnn-9.2-windows10-x64-v7.5.0.56\cuda\lib\x64\cudnn.lib
複製到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\lib\x64
檢查環境變量
Variable Name: CUDA_PATH
Variable Value: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2
4.安裝 OpenCV 3.4.5
下載完成後解壓
5.使用 CMake 編譯 OpenCV
勾選 WITH_CUDA
,否則使用 GPU 模塊時會出現問題
重新生成解決方案
選擇僅生成 INSTALL
添加環境變量 D:\Programming\OpenCV\opencv\build\install\x64\vc15\bin
6.測試 CUDA
進入 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64
執行 cl.exe
:
看到 cl.exe
的版本爲 19.16.27027.1
進入 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64>cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\crt
查看 host_config.h
,發現第 131 行爲:
將 1913 修改爲 1916
7.配置 Visual Studio
新建空項目,配置項目屬性:
在屬性 - 配置屬性 - VC++目錄 - 包含目錄中添加路徑:D:\Programming\OpenCV\opencv\build\install\include
D:\Programming\OpenCV\opencv\build\install\include\opencv
D:\Programming\OpenCV\opencv\build\install\include\opencv2
在屬性 - 配置屬性 - VC++目錄 - 庫目錄中添加路徑:D:\Programming\OpenCV\opencv\build\install\x64\vc15\lib
在屬性 - 配置屬性 - 鏈接器 - 輸入 - 附加依賴項中添加:opencv_calib3d345d.lib opencv_core345d.lib opencv_cudaarithm345d.lib opencv_cudabgsegm345d.lib opencv_cudacodec345d.lib opencv_cudafeatures2d345d.lib opencv_cudafilters345d.lib opencv_cudaimgproc345d.lib opencv_cudalegacy345d.lib opencv_cudaobjdetect345d.lib opencv_cudaoptflow345d.lib opencv_cudastereo345d.lib opencv_cudawarping345d.lib opencv_cudev345d.lib opencv_dnn345d.lib opencv_features2d345d.lib opencv_flann345d.lib opencv_highgui345d.lib opencv_imgcodecs345d.lib opencv_imgproc345d.lib opencv_ml345d.lib opencv_objdetect345d.lib opencv_photo345d.lib opencv_shape345d.lib opencv_stitching345d.lib opencv_superres345d.lib opencv_video345d.lib opencv_videoio345d.lib opencv_videostab345d.lib
右鍵項目 - 生成依賴項 - 生成自定義 - CUDA 9.2(.targets, .props)
在屬性 - 配置屬性 - VC++目錄 - 包含目錄中添加路徑:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include
在屬性 - 配置屬性 - 鏈接器 - 常規 - 附加庫目錄中添加路徑:$(CUDA_PATH_V9_2)\lib\$(Platform)
在屬性 - 配置屬性 - 鏈接器 - 輸入 - 附加依賴項中添加庫:cublas.lib;cublas_device.lib;cuda.lib;cudadevrt.lib;cudart.lib;cudart_static.lib;cufft.lib;cufftw.lib;curand.lib;cusolver.lib;cusparse.lib;nppc.lib;nppial.lib;nppicc.lib;nppicom.lib;nppidei.lib;nppif.lib;nppig.lib;nppim.lib;nppist.lib;nppisu.lib;nppitc.lib;npps.lib;nvblas.lib;nvcuvid.lib;nvgraph.lib;nvml.lib;nvrtc.lib;OpenCL.lib;
設置完成後右鍵源文件 - 添加 - 新建項 - CUDA C/C++ File
7.導出模板
8.執行程序
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/cuda.hpp>
using namespace std;
using namespace cv;
using namespace cuda;
int main() {
DeviceInfo deviceInfo;
bool isDeviceOK = deviceInfo.isCompatible();
cout << "Is GPU OK:" << isDeviceOK << endl;
system("pause");
return 0;
}
作者:_酒釀芋圓
鏈接:https://www.jianshu.com/p/b3da8508f301