4

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

当我尝试从书籍和在线资源中编译基本示例程序时,我的问题就出现了。我知道您应该使用 NVCC 进行编译,但每当我使用它时都会出现编译错误。基本上任何涉及 CUDA 库的包含语句都会导致缺少文件/库错误。一个例子是:

#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

4

2 回答 2

5

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

nvcc -I/usr/local/cuda/include -L/usr/local/cuda/lib test.cu -o test
于 2012-09-04T17:20:40.377 回答
1

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

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

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

虽然我个人不喜欢使用 CUDA SDK 库,但您可能会发现从 CUDA SDK 示例开始一个项目更容易。

于 2012-09-05T14:31:28.187 回答