在Linux中编译基本C语言CUDA代码(Ubuntu)

时间:2012-09-04 17:16:41

标签: linux ubuntu makefile cuda nvidia

我花了很多时间在运行Ubuntu Linux(11.04)的机器上设置CUDA工具链。该装备有两个NVIDIA Tesla GPU,我可以从NVIDIA GPU计算SDK编译和运行测试程序,如deviceQuery,deviceQueryDrv和bandwidthTest。

当我尝试从书籍和在线资源中编译基本样本程序时,我的问题出现了。我知道你应该用NVCC编译,但每当我使用它时我都会遇到编译错误。基本上任何涉及CUDA库的include语句都会丢失文件/库错误。一个例子是:

#include <cutil.h>

我是否需要某种makefile来将编译器指向这些库,或者在使用NVCC编译时是否需要设置其他标志?

我遵循了这些指南:

http://hdfpga.blogspot.com/2011/05/install-cuda-40-on-ubuntu-1104.html http://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc/CUDA_C_Getting_Started_Linux.pdf

2 个答案:

答案 0 :(得分:4)

要解决包含问题,请将cuda include目录添加到编译选项中(假设它是/ usr / local / cuda / include):

nvcc -I/usr/local/cuda/include -L/usr/local/cuda/lib test.cu -o test

答案 1 :(得分:1)

cutil不是CUDA工具包的一部分。它是CUDA SDK的一部分。因此,假设您已按照说明操作并将PATH和LIB目录添加到环境变量中,则仍需指向CUDA SDK包含和库目录。

为了手动包含该lib,您必须将路径传递给编译器:

nvcc -I/CUDA_SDK_PATH/C/common/inc -L/CUDA_SDK_PATH/C/lib ...

虽然我个人不想使用CUDA SDK库,但您可能会发现从CUDA SDK示例中更容易启动项目。