CUDA工具包和CUDA sdk有什么区别

What is the difference between the CUDA tookit and the CUDA sdk

我正在 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

感谢帮助

CUDA Toolkit 是一个包含不同组件的软件包。主要作品有:

  1. CUDA SDK(编译器、NVCC、用于开发 CUDA 软件的库和 CUDA 示例)
  2. GUI 工具(例如 Linux/OS X 的 Eclipse Nsight 或 Windows 的 Visual Studio Nsight)
  3. Nvidia Driver(驱动卡的系统driver)

它还有许多其他组件,例如CUDA-debugger、分析器、内存检查器等

您能够编译和 运行 样本的事实意味着您可能已经完全安装了工具包并且至少拥有 SDK、driver 和样本。

至于 cutil.h,在我的 CUDA 6.5 安装中用 find -L . -iname "cutil.h" 搜索没有结果。同时查看关于 SO 的其他相关问题,CUDA 安装中似乎不再存在此 header 文件(自 CUDA 5.0 起)。但是,查看示例,您可以找到一些较新的实用程序 header,例如正在使用的 helper_cuda.h。像这样的助手应该位于 OS 中的 /usr/local/cuda/samples/common/inc 之类的地方。 helper_cuda.h 是一个 header 我几乎总是将其包含在我的 CUDA 程序中,因为我发现 checkCudaErrors() 等实用函数非常有用。

如果您正在关注一本书,我的建议是;尝试编译代码,每当您收到错误提示缺少实用程序函数时,请在 samples/common/inc 中包含的 header 文件中进行 grep 搜索。您很可能会在那里找到缺少的实用程序函数,然后您可以相应地包含必要的 headers。