CUDA编程:(一)代码编写工具使用以及配置

WINDOWS下的工具

windows下可以使用 VS 或者 QTCreator实现cuda编程,实现方法以及介绍如下

1. QTCreator实现cuda编程

参考链接:CUDA编程(一):QT中编写cuda代码

1. 修改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工程下面进行调试。调试步骤一般如下:

执行步骤:

  1. 找到qt的命令行工具,打开:
    qt命令行工具
    2. 进入到qt工程配置文件目录下,就是pro文件目录下,输入命令:
    qmake -tp vc xxx.pro
    
    这样就生成了vs的工程,工程会按照你qt 工程中的配置,基本不需要修改了。

    1. 踩坑记录

    1. 在实现过程中,可能会报 'C:\Program' 不是内部或外部命令,也不是可运行的程序的错误。具体原因就是在生成的vcxproj文件中,最下面会有命令行中输入的命令,有编译等操作。在本例中,会用到 nvcc 编译工具,在这个文件中,会有nvcc的路径,因为默认安装,在路径C:\Program Files... 路径中会有空格,在读取时会产生中断, 这里需要将这个完整路径使用" "包裹起来,这样再执行生成命令就不会报错了。
      同样在其他地方看见 C:\Program 不是内部或外部命令等类似的报错,可以在有执行命令行的地方查找这个关键字,就可以找到答案了。

3.使用vscode编写cuda代码

编写代码可以使用vscode。相比vs以及qtcreator来说,响应速度更快,智能提示效果还是挺好的。
只是编写的话,只需要安装C++插件以及配置C_CPP_properties.json这个文件,在include中添加cuda的头文件目录即可。写起来还是很方便的。
windows平台下,调试和编译的话还是推荐vs

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值