CUDA工具包与CUDA SDK有何区别?

10

我正在Ubuntu 14.04上安装CUDA,拥有一张Maxwell显卡(GTX 9**系列),并且认为我已经正确地安装了工具包,因为我可以编译我的示例。然而,我读到一些地方说我应该安装SDK(这似乎是在谈论sdk 4)。我不确定工具包和SDK是否不同?由于我拥有更新的9系列显卡,这是否意味着我正在运行CUDA 6?这里是我的nvcc版本。

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2014 NVIDIA Corporation
Built on Wed_Aug_27_10:36:36_CDT_2014
Cuda compilation tools, release 6.5, V6.5.16

我在跟随一本书做项目,需要包含<cutil.h>头文件,但无论我在哪里安装,都找不到这个文件。

我按照NVIDIA提供的指南进行操作,但是我已经按照他们说的做了,所以我很困惑。http://developer.download.nvidia.com/compute/cuda/6_5/rel/docs/CUDA_Getting_Started_Linux.pdf

谢谢帮助。


2
那个名字不太恰当的SDK实际上只是CUDA 4.0之前的示例集合。它已经不存在了。工具包一直包含CUDA(和OpenCL)编程的编译器和实用程序。 - talonmies
1个回答

7
CUDA Toolkit是一个软件包,它有许多组成部分。主要组成部分包括:
  1. CUDA SDK(编译器NVCC、开发CUDA软件的库和CUDA示例)
  2. GUI工具(如Linux/OS X上的Eclipse Nsight或Windows上的Visual Studio Nsight)
  3. Nvidia驱动程序(用于驱动显卡的系统驱动程序)
此外,还有许多其他组件,如CUDA调试器、分析器、内存检查器等。
如果您能编译和运行示例,则说明您可能已完整安装了Toolkit,并且至少拥有SDK、驱动程序和示例。
至于cutil.h,在我的CUDA 6.5安装中使用find -L . -iname "cutil.h"搜索没有结果。此外,在Stack Overflow上查看其他相关问题时,似乎自CUDA 5.0以来就不存在这个头文件。但是,在示例中,可以找到一些新的实用程序标头,例如使用helper_cuda.h。像这样的辅助程序应该位于操作系统中的某个位置,例如/usr/local/cuda/samples/common/inchelper_cuda.h是我几乎总是在CUDA程序中包含的标头,因为我发现实用程序函数(例如checkCudaErrors())非常有用。
如果您正在跟着书本学习,请尝试编译代码,并在出现缺少实用程序函数的错误时,在samples/common/inc中包含的头文件中进行grep搜索。您很可能会在那里找到缺失的实用程序函数,然后相应地包含必要的标头。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接