Ubuntu下的CUDA编程(二)

本文介绍了在Ubuntu环境下进行CUDA编程的基本步骤,包括程序运行、调试、错误查找和使用Makefile进行编译。通过添加路径和使用特定的查错函数,如CUT_CHECK_ERROR和CUDA_SAFE_CALL,来帮助开发者更有效地进行GPU编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu下cuda编程的基本过程
一:运行程序

    按照上一篇文章所述,安装好cuda软件以后,就可以使用”nvcc -V“命令查看所用到的编译器版本,本人用版本信息来自:“Cuda compilation tools, release 3.2, V0.2.1221”。

    自己创建一个目录,在里面新建 cu 文件,写入代码,保存,即可使用终端切换到相应目录下进行编译了,编译命令:nvcc -o filename filename.cu,即可将 .cu 文件编译成可执行文件,如果有语法错误,此时将会报错,如果没有,其他错误将会在运行时报错,使用 ./filename 运行程序,即可。

二:调试程序

    如果程序有误但是没能看到结果或者相关信息,不妨加入调试信息:nvcc -o filename filename.cu -g,即可添加调试信息,之后使用gdb运行:gdb ./filename 即可进入可执行文件,输入命令:r,即可运行具有调试信息的程序,看到错误结果的相关信息,再找出错误之处,修改再编译。

三:错误查找

    在CUDA里面,有很好的查错函数,本人一般用其中两个:CUT_CHECK_ERROR(),CUDA_SAFE_CALL(),前者可以接受最近一次 的cudaerror_t异常,且输出相应的错误类型,比如像检测一个核函数是否正确执行,可以在执行语句之后加 入:CUT_CHECK_ERROR(“Kernel execution failed”);运行时如果出错,将会报告并且输出错误类型;而后者直接输出错误类型,例如想要知道某复制语句是否成功,可以在将语句改写 成:CUDA_SAFE_CALL(cudaMemcpy(d_data, data, size, cudaMemcpyHostToDevice));运行时如果出错,将会直接输出错误类型。

    上述函数使用时必须包含头文件 cutil.h,添加方法见第四点。

四:添加路径

    如何添加路径呢?使用 "-I path" 参数输入,例如想要添加的头文件为 cutil.h,则在 .cu 文件将其包括进去,查看其属性可以知道其位置,为:/home/user/NVIDIA_GPU_Computing_SDK/C/common/inc,那么编译的时候命令可以写成:nvcc -I /home/user/NVIDIA_GPU_Computing_SDK/C/common/inc -o filename filename.cu,这样编译器就会找到该文件并调用了,其他路径的添加类似。

五:利用Makefile编程

    创建一个Makefile,然后输入命令就可以了:
filename : filename.cu
    nvcc -o filename filename.cu

    在终端使用命令:make filename,即可编译生成可执行文件,如果有多个 .cu 文件要编译,也可以写在同一个Makefile里面,改变 “make filename” 中的 “filename” 即可编译生成不同的可执行文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值