先决条件
要开始使用 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 上,可以使用其他编译器,包括 gcc
或 g++
。官方 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
如果程序成功没有错误,那么让我们开始编码!