第一次在Qt中编译cuda(ubuntu平台)

77 篇文章 0 订阅

目录

1 扩展名

2 编译配置

3 在pro文件里把相关库的路径写上 


因工作需要,我要在ubuntu20.04上编译cuda,且用到Qt。编译过程的要点如下:

1 扩展名

cuda的头文件不需要是cuh为扩展名,普通的.h文件即可

2 编译配置

在pro文件里,你会看到这两句:

SYSTEM_TYPE = 64
CUDA_ARCH = compute_61

64表示64位程序;compute_61指的是nvidia显卡的compute capability,与显卡型号有关。

比如Tesla P40 和Tesla P4都对应6.1,那么CUDA_ARCH就是compute_61

此外,在安装了cuda驱动后你会在实例程序里面找到1_Utilities/deviceQuery。运行该程序,也可以看到其计算能力。详见[NVIDIA] Ububtu 获取 CUDA_ARCH_hanjialeOK的博客-CSDN博客

3 在pro文件里把相关库的路径写上 

QT     -= gui  #+= core gui


CONFIG += c++11
CONFIG -= app_bundle

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp

HEADERS += \
    bilinear.h

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target



LIBS += \
-L"/usr/local/lib" \
-L"/usr/local/cuda/lib64" \
-lcudart -lcufft \
-L"/usr/lib/gcc/x86_64-linux-gnu/7" \
-lgomp

CUDA_SOURCES += bilinear.cu


CUDA_SDK = "/usr/local/cuda/"
CUDA_DIR = "/usr/local/cuda/"
SYSTEM_NAME = linux
SYSTEM_TYPE = 64
CUDA_ARCH = compute_61
NVCC_OPTIONS = --use_fast_math
INCLUDEPATH += $$PWD/. \
    $$CUDA_DIR/include
QMAKE_LIBDIR += $$CUDA_DIR/lib64/
CUDA_OBJECTS_DIR = ./

CUDA_LIBS = cudart cufft
CUDA_INC = $$join(INCLUDEPATH, '" -I"', '-I"', '"')
NVCC_LIBS = $$join(CUDA_LIBS, ' -l', '-l', '')



DEPENDPATH += .


CONFIG(debug, debug|release) {
cuda_d.input = CUDA_SOURCES
cuda_d.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_cuda.o
cuda_d.commands = $$CUDA_DIR/bin/nvcc -D_DEBUG $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
cuda_d.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += cuda_d
}
else {
cuda.input = CUDA_SOURCES
cuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_cuda.o
cuda.commands = $$CUDA_DIR/bin/nvcc $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH -O3 -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
cuda.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += cuda
}

DISTFILES += \
    bilinear.cu

由于程序里还用到了omp,所以pro文件里也加入了-lgomp(后来omp部分的代码删掉了,但是pro文件的依赖还留着)

具体代码见我的资源ubuntu20.04下,采用Qt编译cuda的实例代码-C++文档类资源-CSDN下载

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值