Qt Creator cuda动态并行工程配置

动态并行允许从GPU端启动核函数,它要求显卡计算能力大于3.5.

动态并行Qt Creator的工程配置与不使用动态并行时有较大差别,以linux系统为例

QT    += core
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = test
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
INCLUDEPATH +=/usr/local/cuda-10.1/include 

SOURCES += main.cpp 
HEADERAS +=algorithm.h

LIBS +=-L/usr/local/cuda-10.1/lib64 \       
       -lcublas -lcuda -lcudadevrt \      
       -lcudart -lcudart_static -lcufft \       
       -lcufftw -lcurand -lcusolver -lcusparse
OTHER_FILES +=./algorithm.cu
CUDA_SOURCES+=./algorithm.cu
CUDA_SDK ="/usr/local/cuda-10.1"   
CUDA_DIR ="/usr/local/cuda-10.1"
QMAKE_LIBDIR += $$CUDA_DIR/lib64
SYSTEM_TYPE = 64
CUDA_ARCH = sm_60
NVCCFLAGS     = --use_fast_math
CUDA_INC = $$join(INCLUDEPATH,'" -I"','-I"','"')
CUDA_LIBS= -L/usr/local/cuda-10.1/lib64 \       
           -lcublas -lcuda -lcudadevrt \       
           -lcudart -lcudart_static -lcufft \       
           -lcufftw -lcurand -lcusolver -lcusparse

CUDA_OBJECTS_DIR = ./
#重点 为了支持动态并行化,使用两步分离编译和链接的过程
cudaIntr.input = CUDA_SOURCES
cudaIntr.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}.o
cudaIntr.commands = $$CUDA_DIR/bin/nvcc $$NVCC_OPTIONS $$CUDA_INC $$CUDA_LIBS --machine $$SYSTEM_TYPE \                  
                    -arch=$$CUDA_ARCH -std=c++11 -rdc=true -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}cudaIntr.dependency_type = TYPE_C
cudaIntr.variable_out = CUDA_OBJ
cudaIntr.variable_out += OBJECTS
cudaIntr.clean = cudaIntrObj/*.o
QMAKE_EXTRA_COMPILERS += cudaIntr
cuda.input = CUDA_OBJ
cuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_link.o
cuda.commands = $$CUDA_DIR/bin/nvcc -arch=$$CUDA_ARCH -std=c++11 -dlink ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}
cuda.dependency_type = TYPE_C
cuda.depend_command = $$CUDA_DIR/bin/nvcc -g -M $$CUDA_INC $$NVCCFLAGS   ${QMAKE_FILE_NAME}
QMAKE_EXTRA_COMPILERS += cuda

上述目前我也不知道具体原理,是通过网上很多资料搜集整理而成,自己测试是可以运行的,以后懂了再加。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值