前言:最近想把写的MFC项目改成QT,MFC项目中用了CUDA实现实时运算,所以QT也得要。
安装CUDA
具体看我的另一篇博客C++学习|CUDA安装和配置。
Qt Creator的.pro配置
在pro中添加如下代码,其中cuda安装地址相关的、cuda文件名以及CUDA_ARCH(显卡相关)要进行修改。
注意cuda默认安装路径会有空格,因为QT不支持路径有空格,可以把安装好的cuda内容新建到另一个文件下,来写入路径。
CUDA_ARCH可以根据显卡型号和CUDA版本查看网站(https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/)中的表格。
INCLUDEPATH +=E:/CUDASDK/v10.2/include
LIBS +=-LE:/CUDASDK/v10.2/lib/x64 \
-lcublas -lcuda -lcudadevrt \
-lcudart -lopengl32 -lcudart_static -lcufft \
-lcufftw -lcurand -lcusolver -lcusparseOTHER_FILES +=$$PWD/process.cuCUDA_SOURCES +=$$PWD/process.cu
CUDA_SDK ="E:/CUDASDK/v10.2"
CUDA_DIR ="E:/CUDASDK/v10.2"
QMAKE_LIBDIR += $$CUDA_DIR/lib/x64
SYSTEM_TYPE = 64CUDA_ARCH = sm_70
NVCCFLAGS = --use_fast_math
CUDA_INC = $$join("E:/CUDASDK/v10.2/include",'" -I"','-I"','"')
MSVCRT_LINK_FLAG_DEBUG = "/MDd"
MSVCRT_LINK_FLAG_RELEASE = "/MD" CUDA_OBJECTS_DIR = ./CONFIG(debug, debug|release) {# Debug modecuda.input = CUDA_SOURCEScuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}process.objcuda.commands = $$CUDA_DIR/bin/nvcc.exe -D_DEBUG $$NVCC_OPTIONS $$CUDA_INC $$CUDA_LIBS --machine $$SYSTEM_TYPE \-arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME} -Xcompiler $$MSVCRT_LINK_FLAG_DEBUGcuda.dependency_type = TYPE_CQMAKE_EXTRA_COMPILERS += cuda
}
else {# Release modecuda.input = CUDA_SOURCEScuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}process.objcuda.commands = $$CUDA_DIR/bin/nvcc.exe $$NVCC_OPTIONS $$CUDA_INC $$CUDA_LIBS --machine $$SYSTEM_TYPE \-arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME} -Xcompiler $$MSVCRT_LINK_FLAG_RELEASEcuda.dependency_type = TYPE_CQMAKE_EXTRA_COMPILERS += cuda
}