2.2_开发环境

2.2 开发环境

在开始学习之前,首先要配置好编写CUDA C代码的开发环境。使用CUDA C来编写代码的前提条件包括:

  • 支持CUDA的图形处理器

  • NVIDIA设备驱动程序

  • CUDA开发工具箱

  • 标准C编译器

为了使本章的学习过程尽可能简单,我们首先介绍各个前提条件。

2.2.1 支持CUDA的图形处理器

我们很容易找到一款基于CUDA架构设计的图形处理器,因为自从2006年发布 GeForce 8800 GTX以来,NVIDIA推出的每款GPU都能支持CUDA。由于NVIDIA一直在不断地推出基于CUDA架构的新GPU,因此下面给出的只是所有支持CUDA的GPU中的一部分。当然,这些GPU都能支持CUDA。

完整的列表可以参考NVIDIA的网址www.nvidia.com/cuda上给出的信息,不过我们也可以假设所有新推出(从2007年开始)并且显存超过256MB的GPU都可以用于开发和运行基于CUDA C编写的代码。

表2.1 支持CUDA的GPU

2.2.2 NVIDIA设备驱动程序

NVIDIA提供了一些系统软件来实现应用程序与支持CUDA的硬件之间的通信。如果正确安装了NVIDIA GPU,那么在机器上将已经安装好了这些软件。要确保安装最新的驱动程序,可以访问网址www.nvidia.com/cuda并点击“Download Drivers”链接,然后选择与开发环境相符的图形卡和操作系统。根据所选平台的安装指令,在机器上将安装最新的NVIDIA系统软件。

2.2.3 CUDA开发工具箱

在有了一款支持CUDA的GPU和相应的NVIDIA设备驱动程序后,就可以运行编译好的CUDA C代码。这意味着,你可以下载基于CUDA编写的应用程序,并且这些应用程序能够在图形处理器上成功执行。然而,我们假设你想要做的不仅仅是运行代码,否则,本书也就没有意义了。如果想要使用CUDA C为NVIDIA GPU开发代码,那么还需要其他一些软件。但正如前面已经提到过的,任何一款软件都不需要花费一分钱。

下一章将介绍这些软件的详细信息,但由于CUDA C应用程序将在两个不同的处理器上执行计算,因此需要两个编译器。其中一个编译器为GPU编译代码,而另一个为CPU编译代码。NVIDIA提供了编译GPU代码的编译器。与NVIDIA设备驱动程序一样,可以在网址http://developer.nvidia.com/object/gpucomputing.html下载CUDA工具箱。点击“CUDA Toolkit”链接,将弹出如图2.1所示的下载页面。


图2.1 CUDA下载页面

在这个页面上选择相应的平台,包括32位/64位版本的Windows XP、Windows Vista、Windows 7、Linux和Mac OS等,然后下载CUDA工具箱来编译在本书中包含的代码示例。此外,你还可以下载GPU Computing SDK代码示例集,其中包含了大量非常有帮助的示例程序。本书不会介绍GPU Computing SDK代码示例集,但它们对于本书内容是一种非常好的补充,从该示例集中不仅可以学习到更多编程风格,还可以阅读更多的示例代码。需要注意的是,虽然本书的所有代码都可以在Linux,Windows以及Mac OS等平台上运行,但我们应用程序的目标运行平台为Linux和Windows。如果你正使用Mac OS X,那么有些代码示例可能得不到支持。

2.2.4 标准的C编译器

前面提到过,需要对GPU和CPU分别采用不同的编译器。如果按照之前的建议下载并安装CUDA工具箱,那么就会获得一个编译GPU代码的编译器。之后,唯一剩下的问题就是还需要一个CPU编译器,我们接下来将解决这个问题。

1. Windows

在Microsoft Windows平台上,包括Windows XP、Windows Vista、Windows Server 2008以及Windows 7,我们推荐使用Microsoft Visual Studio C编译器。NVIDIA当前同时支持Visual Studio 2005和Visual Studio 2008。当Microsoft发布新的版本时,NVIDIA也将增加对Visual Studio新版本的支持,同时去掉对一些旧版本的支持。许多C和C++开发人员都已经在机器上安装了Visual Studio 2005或Visual Studio 2008,因此如果你也是这种情况,那么可以跳过本节内容。

如果没有某个NVIDIA支持的Visual Studio版本,而且你也不准备购买一个新版本,那么可以使用Microsoft在其网址上免费提供的Visual Studio 2008 Express版本。虽然Visual Studio Express版本通常并不适合商业软件的开发,但由于不需要花钱购买软件许可就可以在Windows平台上编写CUDA C代码,因此这是一种非常好的方式。如果你需要Visual Studio 2008,那么直接到网址www.microsoft.com/visualstudio去购买吧。

2. Linux

大多数Linux发行版本通常都带有一个GNU C编译器(gcc)。从CUDA 3.0开始,在以下Linux版本中都包含一个支持的gcc版本:

Red Hat Enterprise Linux 4.8
Red Hat Enterprise Linux 5.3

  • OpenSUSE 11.1
    SUSE Linux Enterprise Desktop 11

  • Ubuntu 9.04

  • Fedora 10

如果你是一个忠实的Linux用户,那么可能已经注意到,许多Linux软件包并不仅仅只是在“所支持”的平台上工作。CUDA也不例外,因此即使在这里没有列出你喜欢使用的发行版本,但仍然值得一试。发行版本的内核,gcc以及glibc在很大程度上决定着该发行版本是否兼容。

3. Macintosh OS X

如果希望在Mac OS X上开发,那么需要确保机器上Mac OS X的最低版本不低于10.5.7。这其中包括10.6版本,即Mac OS X“雪豹(Snow Leopard)”。你需要通过下载并安装Apple的开发工具Xcode来安装gcc。这个软件对于苹果开发联盟(Apple Developer Connection,ADC)的成员来说是免费的,可以从http://developer.apple.com/tools/Xcode下载。虽然本书的代码都是在Linux和Windows等平台上开发的,但无需任何修改也应该可以在Mac OS X系统上运行。

2.2_开发环境 - CUDA by Example | OpenTech