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
}
相关推荐
葡萄城技术团队36 分钟前
InfluxDB 2\.x 深度解析:核心架构、Flux 函数与制造业落地指南(三)
java·开发语言·架构
Super 含38 分钟前
Android 启动优化(五):线程、GC 与 IO 为什么会拖慢启动?
java·服务器·数据库
counting money39 分钟前
Java IO流详解:从InputStream到文件操作实战
java·开发语言·python
wuyk5551 小时前
98.C语言易混难点:字符数组与字符串指针的底层差异
c语言·开发语言·c++·stm32·嵌入式硬件·算法
ltl1 小时前
向量检索引擎选型:决策树、RAG 回链与开放问题
数据库
坚持学习前端日记1 小时前
Python SQLAlchemy ORM 从0到1精通实战手册(基础到复杂高阶)
数据库·python·oracle
灯澜忆梦1 小时前
【MySQL17】进阶篇 | InnoDB引擎
数据库·mysql
峥无1 小时前
从0到1手撕红黑树:封装实现 my_map 与 my_set(SGI-STL 源码级深度解析)
开发语言·c++·笔记·算法·stl
波特率1152001 小时前
C++新特性---属性说明符与标准属性
开发语言·c++
程序员小八7771 小时前
上海百度B端java后端日常实习一面
java·开发语言