本文适用于配置 《动手学深度学习》书中的 Linux + NVIDIA 显卡环境。因文中对于GPU的安装描述略显简单,故结合个人经验拾遗补缺。
参考文献:
https://blog.csdn.net/xunan003/article/details/81665835
https://blog.csdn.net/u010801439/article/details/80483036
https://www.jianshu.com/p/52a49bcb2fac
1. 准备一台带有GPU的电脑(废话)
2. 安装显卡驱动和CUDA, cuDNN。
Ubuntu18.04 默认安装,一路回车即可。后续步骤参照我的显卡(GTX 1060 3GB显存)安装驱动程序等。
2.1 驱动安装
首先,禁用第三方开源的驱动程序nouveau,避免安装时登录界面循环问题。
禁用之前先查看nouveau驱动是否存在:
lsmod | grep nouveau
若显示为空可直接跳过后续步骤直接下载新版驱动。否则,执行命令编辑 blacklist-nouveau.conf 文件。
sudo vi /etc/modprobe.d/blacklist-nouveau.conf
修改后的文件内容如下:
更新系统,然后重启(务必)
sudo update-initramfs -u
重启后,验证nouveau是否已禁用
lsmod | grep nouveau
然后,官网下载相应驱动并安装:
下载完毕后,将文件拷贝到任意目录下并赋予运行权限。
sudo chmod a+x NVIDIA-Linux-x86_64-xxx.run
图形界面下按“ctrl+alt+f1”进入命令行界面,在命令行界面下输入以下命令,关闭图形界面:
sudo service lightdm stop
如安装过其他版本驱动,则卸载掉原有驱动:
sudo apt-get remove nvidia-*
执行安装,附带以下参数:
sudo ./NVIDIA-Linux-x86_64-xxx.run -no-x-check -no-nouveau-check -no-opengl-files
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件
安装过程中的选项,建议选择如下(选错了也没关系,多试几次就行了):
1. DKMS:No
2. 32-bit 兼容:No
3. NVIDIA-xconfigutility :Yes
安装结束后,挂载驱动:
modprobe nvidia
执行命令检查驱动是否安装成功:
nvidia-smi
如果出现如下提示,则说明安装成功:
最后建议重启系统
2.2 安装CUDA和cuDNN
进入官网,选择CUDA版本并进行下载:
拷贝文件到任意路径,执行命令安装:
sudo sh ./cuda_10.xxx_linux.run
需要注意的是,因之前已经安装过显卡驱动程序,故在提问是否安装显卡驱动时选择No,其他默认即可。
安装完毕后,根据提示添加两条路径到 .bashrc 文件中(注意CUDA版本):
sudo vi ~/.bashrc
export PATH=/usr/local/cuda/bin${PATH:+:$PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
至此,CUDA安装完毕,可执行以下命令测试,若最后提示“pass”则安装成功,否则需要卸载后重新安装。
nvcc --version
cd /home/hyperly/NVIDIA_CUDA-10.0_Samples/1_Utilities/deviceQuery
make
./deviceQuery
之后安装cuDNN,需要注册后才可下载。
点击官网,注册账号后下载:
下载完毕后,进入文件夹,将 cudnn-10.1-linux-x64-v7.5.1.10.tgz 压缩包先解压,然后将其中的内容复制到 /usr/local 的CUDA安装文件夹里面。
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
至此,cuDNN的安装完成。
此外,若需要删除CUDA和cuDNN,可使用如下命令:
sudo /usr/local/cuda/bin/uninstall_cuda_10.0.pl
sudo rm -rf /usr/local/cuda
3. 配置GPU版本的运行环境
3.1 参照书中完成前两步的配置,即安装Miniconda和下载解压最新代码。
3.2 使用conda直接创建GPU版本的虚拟运行环境。
此处需根据显卡驱动版本,改变为依赖为GPU版本的MXNet。使用文本编辑器打开本书的代码所在根目录下的文件environment.yml,将里面的字符串“mxnet”替换成对应的GPU版本。例如,本机上装的是10.0版本的CUDA,则将该文件中的字符串“mxnet”改为“mxnet-cu100”。同时还需要更新MXNet的对应版本(若版本不对则会报错,直接从出错信息中选择一个最新的版本号然后修改environment.yml文件即可)。
保存文件后退出,例如本机最后的配置信息如下:
3.3 激活环境并使用Jypyter。
P.S. 如果重新下载了代码,则需要按照书中所述,卸载MXNet, 更新environment.yml文件并重新激活环境。