Introduction (简介):
CUDA是一个并行计算的平台,是由NVIDIA发明的编程模型,CUDA通过使用图形处理单元(GPU)能够极大的增加计算能力。
CUDA被研发主要出于以下几个设计目标:
- 为标准程序语言(例如: C)提供一个扩展的小集合,能够允许直接实现并行算法,如果使用CUDA C/C++, 程序员就可以把注意力集中在算法的并行化上,而不是花大量的时间在它们的实现上。
- 支持异构(不均匀)计算,从而应用程序能同时使用CPU和GPU,程序的串行部分在CPU上运行,而并行部分则分配给GPU。同样的,CUDA能够应用在现存的应用程序上。 CPU和GPU被当作独立的设备,分别由各自的存储空间。这样的配置也允许同时在CPU和GPU上计算而不存在相互内存资源竞争关系。
CUDA-capable GPUs 拥有数百个核,能够运行数千个计算线程。这些核拥有的共享资源包括一个寄存器文件和共享内存。片上的共享内存(the on-chip shared memory)允许并行的任务运行在这些核上来共享数据,而没有通过系统内存总线来发送。
这个向导将会向你展示怎样安装以及检测CUDA开发工具的正确操作。
这个教程描述了怎样在C/C++之中,运用cuda来进行编程。cuda是一门语言用来对大规模的并行GPU进行编码,它需要读者有C/C++编程经验。
System Requirements(系统需求):
为了在你的电脑使用CUDA,你需要满足以下条件:
- CUDA -capable GPU
- Microsoft Windows XP, Vista, 7, or 8 or Windows Server 2003 or 2008
- NVIDIA CUDA Toolkit(available at no cost from http://www.nvidia.com/content/cuda/cuda-downloads.html)
- Microsoft Visual Studio 2008 or 2010, or a corresponding version of Microsoft Visual C++ Express
让我们首先确保满足CUDA编程的先决条件。
INSTALLING CUDA DEVELOPMENT TOOLS(安装CUDA开发工具):
安装CUDA开发工具运行在合适的Windows版本上主要由简单的几步组成:
- 验证系统是否有CUDA-capable GPU
- 下载 the NNIDIA CUDA 工具包
- 安装 NVIDIA CUDA 工具包
- 测试安装的软件运行正确,以及与硬件的通信
Verify You Have a CUDA-Capable GPU(验证是否为CUDA-Capable GPU)
为了验证你的GPU是CUDA-capable, 打开控制面板,双击系统选项,在打开的系统属性窗口上,点击硬件tab,然后设备管理器,展开显示适配器入口。在这里你将会找到供应商的名称和图形卡的模型。如果是一个NVIDIA卡,并且在 http://www.nvidia.com/object/cuda_gpus.html ,上被列出来了,那么你的GPU就是CUDA-capable.
Download the NVIDIA CUDA Toolkit(下载NVIDIA CUDA工具包):
准备开始cuda编程,需要下载并安装cuda toolkit and developer driver(https://developer.nvidia.com/cuda-downloads). 这个工具包包含nvcc,the NVIDIA CUDA Compiler,还有一些软件(开发cuda应用所必要的)。此外,下载的驱动确保了GPU程序能够正确的运行在CUDA-capable hardware之上,这也是不可缺少的。
Install the CUDA Software(安装CUDA软件):
安装工具包之前, 你应该阅读 Release Notes, 它提供详细的安装说明和软件功能。
点击CUDA工具包进行安装,接着在屏幕上出现如下提示:
大概意思就是: 为了CUDA的运作,驱动和工具包必须安装。如果你没有安装一个单独的驱动,就从NVIDIA CUDA 工具包中来安装驱动。
你可以从下面的包中来选择安装:
- CUDA 驱动
CUDA驱动的安装可以通过silent或者GUI,
- Silent: 仅有显示驱动将被安装
- GUI: 在CUDA 工具包安装之后,将会出现一个窗口,如果你在最后一个对话框允许它the full driver installation UI. 你可以选择你希望安装的某些特性。
2. CUDA 工具包
CUDA ToolKit 默认的安装路径是 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v#.#, #.#是版本号(例如3.2或者更高)。它的目录包含以下内容:
Bin\
编译器的可执行文件和运行时库
Include\
编译CUDA程序需要的头文件
Lib\
链接CUDA程序需要的库文件
Doc\
CUDA C程序向导, CUDA C Best Practices Guide, CUDA 函数库文档,还有一些CUDA 工具包有关的文档。
3. CUDA 样本
CUDA 样本包含许多例题和模版的源代码
对于XP,样本放在:
C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\CUDA Samples\v5.0
对于Vista,7,Server 2008,样本放在:
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0
Verify the Installation(验证安装):
在继续进行之前,验证CUDA程序能发现并且与CUDA-capable 硬件正确通信。为了验证它, 你需要编译并允许一些包含的样本程序。
在你的机器上通过运行命令行 nvcc --version 能够确认CUDA ToolKit 的安装是否正确。例如,在一台Mac OSX上,将会输出编译器信息。
$ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2009 NVIDIA Corporation Built on Thu_Mar_11_12:08:00_PST_2010 Cuda compilation tools, release 3.0, V0.2.1221
如果之前的命令不成功,CUDA ToolKit 可能没有安装成功或者nvcc的路径
C:\CUDA\bin on Windows machines, /usr/local/cuda/bin on POSIX OSes
不是PATH 环境变量的一部分。
此外,你也需要一个 host compiler, 它与nvcc协作来编译和构建cuda程序。 在Windows之中,它是c1.exe(微软编译器),过渡成了Microsoft Visual Studio。 对于在POSIX OSes,它是GCC 或者 G++。
官方的CUDA 开始向导(http://developer.download.nvidia.com/compute/cuda/5_0/rel/docs/CUDA_Getting_Started_Guide_For_Microsoft_Windows.pdf)会告诉你什么编辑器版本在你的特殊平台上被支持。
Compiling CUDA Programs(编译CUDA程序):
在CUDA样本中的工程文件已经设计成了例子,编译成32或64位Windows projects(release or debug mode),对于VS2008 or 2010或者2013使用后缀名*.sln 解决方案。
为了保证一切正确, 让我们编译和运行一个简单的CUDA程序来确保所有的工具能够一起正常工作。
1 #include <stdio.h> 2 3 __global__ void foo() 4 { 5 } 6 7 int main() 8 { 9 foo<<<1,1>>>(); 10 printf("CUDA error: %s\n", cudaGetErrorString(cudaGetLastError())); 11 return 0; 12 }
为了编译这个程序, 复制源代码到新建文件 test.cu ,然后通过命令行来编译它。例如,在一台Mac OSX系统上,正确将会出现以下提示:
$ nvcc test.cu -o test $ ./test CUDA error: no error
如果程序通过编译无错,嘿嘿,那我们就可以 Start Coding 了!!!