WINDOWS下的工具
windows下可以使用 VS 或者 QTCreator实现cuda编程,实现方法以及介绍如下
QTCreator实现cuda编程
参考链接:CUDA编程(一):QT中编写cuda代码
修改pro文件
在已有的工程下面添加如下配置信息:
#在已有的工程上添加以下内容
####cuda库########
LIBS += -L"/usr/local/lib"
-L"/usr/local/cuda/lib64"
-lcudart
-lcufft
DEPENDPATH += .
#你所编写的cuda文件#######
OTHER_FILES += bilinear.cu
CUDA_SOURCES += bilinear.cu
CUDA_SDK = “/usr/local/cuda-8.0/” # Path to cuda SDK install
CUDA_DIR = “/usr/local/cuda-8.0/” # Path to cuda toolkit install
#####系统类型,计算能力###########
SYSTEM_NAME = linux # Depending on your system either ‘Win32’, ‘x64’, or ‘Win64’
SYSTEM_TYPE = 64 # ‘32’ or ‘64’, depending on your system
CUDA_ARCH = sm_21 # Type of CUDA architecture, for example ‘compute_10’, ‘compute_11’, ‘sm_10’
NVCC_OPTIONS = --use_fast_math
INCLUDEPATH += $$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’, ‘’)
CONFIG(debug, debug|release) {
# Debug mode
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 {
# Release mode
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
}
2.需要注意的问题
每添加一个cu文件,需要在 .pro 配置文件中添加对应的文件。否则会报在函数调用处找不到函数名的问题。
上面的配置是 linux 下的配置信息,如果是 windows ,根据每一项目标的所在路径修改就行。
进行编译的时候,有时候代码界面只是会报错,不会显示编译出错在什么位置,编译结果可以通过 编译输出 查看编译信息。
在这里插入图片描述
2. 将qt转成vs工程进行调试
qt工程可以很方便的转换成vs工程。因为qt的调试功能实在时拉跨,所以一般转换到vs工程下面进行调试。调试步骤一般如下:
执行步骤:
找到qt的命令行工具,打开:
qt命令行工具
2. 进入到qt工程配置文件目录下,就是pro文件目录下,输入命令:
qmake -tp vc xxx.pro
这样就生成了vs的工程,工程会按照你qt 工程中的配置,基本不需要修改了。