前不久,国际计算机学会(ACM)决定将2018年度的图灵奖授予Geoffrey Hinton、Yann LeCun,以及Yoshua Bengio,以表彰他们在深度学习领域所做出的开创性贡献。事实上,在此前的三十年里,这三人一直在神经网络理论及其应用领域深耕,但他们早先的工作并未引起很大关注。直到近些年来,深度学习才突然变得异常火爆。这其中一个很大的原因正是由于当前硬件设备(尤其是GPU技术)的发展,使得深层神经网络的超大计算量不再是洪水猛兽。
现在,要想进行深度学习方面的研究,就必不可少地要搭建GPU环境。但对于很多人来说,或者由于经验的不足,或者由于软硬件的更新换代,凡此种种,都使得配置GPU环境变得耗时费力。本文主要演示在Ubuntu 18.04系统上配置GPU环境(主要是安装CUDA)的基本过程与注意事项。
在此前的文章中,我们已经演示了如何在Ubuntu 18.04系统上安装英伟达显卡驱动的过程。彼时,我们所安装的驱动版本是390.116,而Nvidia官方网站上表明与之相兼容的CUDA版本应该是9.0,因此本文主要以此为例来进行演示。
通常,Ubuntu 18.04系统上安装的GCC和G++ 版本比较高,例如你可以用下面的命令来查看你电脑上的GCC和G++版本:
$ gcc --version
$ g++ --version
执行结果如下所示,可见系统上安装的GCC和G++版本是7.4,因此我们要先设法把它们的版本降下来,这是安装相应版本的CUDA所必须的。
给GCC降级不能降得太低,否则可能会出现一些意想不到的问题,我们这里推荐降级到GCC5.5。方法是依次在命令行里输入两行命令就行了。(这两个命令就是分别来安装相应版本的gcc和g++)
$ sudo apt install gcc-5
$ sudo apt install g++-5
然后试着查看一下版本,发现还是默认的gcc 7.4,这是因为没有修改soft link。 进入到/usr/bin目录下, 运行一下:
$ ls -l gcc*
如下图所示,可以看到gcc是指向gcc-7的, 所以我们要修改soft link,使gcc 指向 gcc-5。
为了把gcc链接到gcc-5,运行下面的命令:
$ sudo mv gcc gcc.bak #备份
$ sudo ln -s gcc-5 gcc #重新链接gcc
$ sudo mv g++ g++.bak #备份
$ sudo ln -s g++-5 g++ #重新链接g++
再查看一下版本,你会发现已经变成5.5了。
接下来,要去Nvidia的网站上下载CUDA。如下所示,选择操作系统的版本。CUDA 9.0 只能支持17.04和16.04的Ubuntu 下载安装。但实际上,在18.04版本的系统也能够安装16.04版本对应的CUDA。因此,我们选择16.04,然后选择【runfile(local)】。
下载的内容包括一个主安装程序,和4个补丁包,把它们都下载到本机上,例如Downloads文件中。
进入到存储着刚刚下好之安装文件的路径下,输入命令安装Base Installer:
$ sudo sh cuda_9.0.176_384.81_linux.run
如下图所示。注意,根据你下载的CUDA安装文件的版本差异,上面这个命令可能会有些许的调整。这一点,你可以从上面的下载页面上直接复制Nvidia网站给出的命令,确保万无一失。
接下来,安装程序会显示安装协议,一路按回车键跳到最后。你会看到如下所示的一些问题。需要注意的是,我们之前已经安装过显卡驱动程序了,故在提问是否安装显卡驱动时选择no,其他选择默认路径或者yes即可。
安装完成后会出现以下界面,提示CUDA 安装不完整,这是因为显卡驱动没有安装,直接忽略掉。
然后用同样的方法安装四个补丁包:
$ sudo sh cuda_9.0.176.1_linux.run
$ sudo sh cuda_9.0.176.2_linux.run
$ sudo sh cuda_9.0.176.3_linux.run
$ sudo sh cuda_9.0.176.4_linux.run
每一个补丁吧安装完成后都会得到如下界面。
到这里,你已经安装成功CUDA了,最后,还要多配置一下环境变量。方法就是编辑 ~/.bashrc 文件。由于.bashrc文件通常都是隐藏文件,如果你无法在~目录下看到它,你可以使用【Ctrl+H】来强制显示隐藏文件。用一个文件编辑软件打开它,然后在文件的末尾加上如下语句:
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH
如下图所示,保存文件并关闭。
现在重启一下计算机。然后,继续安装cuDNN,它提供了一些用于深度学习加速的库。同样,你需要到英伟达的官网上去下载相应的安装文件。注意,这一步,你需要注册一个账户。然后,如下图所示,选择与CUDA 9.0相匹配的cuDNN,并下载其中的cuDNN Library for Linux。
下载的时候发现是一个压缩包,下完之后解压。解压出来是一个cuda文件夹,进去有两个文件夹,一个include和一个lib64。进入刚刚解压得到的cuda文件夹,并在命令行中执行如下命令:
执行完之后,cuDNN算是安装完成了。最后,你可以安装一下GPU版的Tensorflow,并运行一些简单的神经网络训练例子来测试一下你的GPU环境。
(本文完)