CUDA之大规模GPU并行系列教程(一)—— 先决条件

 

Introduction (简介):

     CUDA是一个并行计算的平台,是由NVIDIA发明的编程模型,CUDA通过使用图形处理单元(GPU)能够极大的增加计算能力。

  CUDA被研发主要出于以下几个设计目标:

  1.   为标准程序语言(例如: C)提供一个扩展的小集合,能够允许直接实现并行算法,如果使用CUDA C/C++, 程序员就可以把注意力集中在算法的并行化上,而不是花大量的时间在它们的实现上。
  2.   支持异构(不均匀)计算,从而应用程序能同时使用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 工具包中来安装驱动。

  你可以从下面的包中来选择安装:

  

  1.   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 了!!!

 

 

 

 

 

posted on 2012-11-05 00:39  greenhat  阅读(3788)  评论(0编辑  收藏  举报

导航