QT| QT配置CUDA

前言:最近想把写的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/)中的表格。

cpp 复制代码
INCLUDEPATH +=E:/CUDASDK/v10.2/include
LIBS +=-LE:/CUDASDK/v10.2/lib/x64 \
-lcublas  -lcuda -lcudadevrt \
-lcudart -lopengl32 -lcudart_static -lcufft \
-lcufftw -lcurand -lcusolver -lcusparse

OTHER_FILES +=$$PWD/process.cu

CUDA_SOURCES +=$$PWD/process.cu
CUDA_SDK ="E:/CUDASDK/v10.2"
CUDA_DIR ="E:/CUDASDK/v10.2"
QMAKE_LIBDIR += $$CUDA_DIR/lib/x64
SYSTEM_TYPE = 64

CUDA_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 mode
    cuda.input = CUDA_SOURCES
    cuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}process.obj
    cuda.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_DEBUG
    cuda.dependency_type = TYPE_C
    QMAKE_EXTRA_COMPILERS += cuda
}
else {
    # Release mode
    cuda.input = CUDA_SOURCES
    cuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}process.obj
    cuda.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_RELEASE
    cuda.dependency_type = TYPE_C
    QMAKE_EXTRA_COMPILERS += cuda
}
相关推荐
一个小坑货6 分钟前
Cargo Rust 的包管理器
开发语言·后端·rust
bluebonnet2711 分钟前
【Rust练习】22.HashMap
开发语言·后端·rust
古月居GYH11 分钟前
在C++上实现反射用法
java·开发语言·c++
在下不上天36 分钟前
Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复
大数据·开发语言·python
tatasix1 小时前
MySQL UPDATE语句执行链路解析
数据库·mysql
陌小呆^O^1 小时前
Cmakelist.txt之win-c-udp-client
c语言·开发语言·udp
南城花随雪。1 小时前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库
儿时可乖了1 小时前
使用 Java 操作 SQLite 数据库
java·数据库·sqlite
懒是一种态度1 小时前
Golang 调用 mongodb 的函数
数据库·mongodb·golang
天海华兮1 小时前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql