先决条件

要开始使用 CUDA 进行编程,请下载并安装 CUDA Toolkit 和开发人员驱动程序 。该工具包包括 nvcc,NVIDIA CUDA 编译器以及开发 CUDA 应用程序所需的其他软件。该驱动程序可确保 GPU 程序在支持 CUDA 的硬件上正确运行,你也需要这些硬件

你可以通过从命令行运行 nvcc --version 来确认你的计算机上已正确安装 CUDA Toolkit。例如,在 Linux 机器上,

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jul_12_18:28:38_CDT_2016
Cuda compilation tools, release 8.0, V8.0.32

输出编译器信息。如果上一个命令不成功,则可能未安装 CUDA Toolkit,或者 nvcc(Windows 机器上的 C:\CUDA\bin,POSIX 操作系统上的/usr/local/cuda/bin)的路径不是 PATH 环境变量的一部分。

此外,你还需要一个与 nvcc 配合使用的主编译器来编译和构建 CUDA 程序。在 Windows 上,这是微软编译器 cl.exe,它随 Microsoft Visual Studio 一起提供。在 POSIX OS 上,可以使用其他编译器,包括 gccg++。官方 CUDA 快速入门指南可以告诉你特定平台支持哪些编译器版本。

为确保一切设置正确,让我们编译并运行一个简单的 CUDA 程序,以确保所有工具正确地协同工作。

__global__ void foo() {}

int main()
{
  foo<<<1,1>>>();

  cudaDeviceSynchronize();
  printf("CUDA error: %s\n", cudaGetErrorString(cudaGetLastError()));

  return 0;
}

要编译此程序,请将其复制到名为 test.cu 的文件中,然后从命令行进行编译。例如,在 Linux 系统上,以下应该可以工作:

$ nvcc test.cu -o test
$ ./test
CUDA error: no error

如果程序成功没有错误,那么让我们开始编码!