在配置好 Linux 环境并顺利装上 RTX2060 的显卡驱动后(见上一篇),接下来就是安装 CUDA 和 PyTorch 了。
打开英伟达官方网页,按照相关的环境下载合适的文件,我基本上用的都是 runfile,因此这次也不例外,如下图
按照提示在 terminal 中输入以下命令下载 runfile 文件,
$ wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
然后用
$ sudo sh cuda_10.1.243_418.87.00_linux.run
进行安装。在安装过程中,它会检查你的驱动程序,并建议你重装驱动。但是不用理它,选择 continue 继续,在选择接受一些条款后会出现可选择的安装组件,第一个选项即为驱动程序,因为我记得看到的驱动程序是 410 版本,比我安装的 430 低,所以我选择不勾选它,而是直接安装其他全部 CUDA 的 tools 与 libaray。
安装完成后由如下提示
Please make sure that
- PATH includes /usr/local/cuda-10.1/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-10.1/lib64, or, add /usr/local/cuda-10.1/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-10.1/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-10.1/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 418.00 is required for CUDA 10.1 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run --silent --driver
Logfile is /var/log/cuda-installer.log
WARNING 部分不用管,我们的驱动 430 比 418 更高。比较重要的是 PATH 和 LD_LIBRARY_PATH 的设定。
参考官方文档,我在 .bashrc 末尾加上了如下代码(虽然可能不太好,but it works)
$ export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.1/nsight-compute-2019.4.0${PATH:+:${PATH}}
和官方参考有些差别,这要看在 /usr/local/ 下实际安装的文件。
对于 LD_LIBRARY_PATH 的设定,我则考虑使用了 ldconfig,具体如下,在 /etc/ld.so.conf.d/cuda-10-1.conf 文件中添加一行
/usr/local/cuda-10.1/lib64
然后使用命令 sudo ldconfig
使之生效。
为了确认一切准备就绪,我重启计算机后先简单用 which nvcc
确认相关 tools 被装上,然后在 Nvidia 官方给的 NVIDIA_CUDA-10.1_Samples 文件夹中用 make
命令生成可执行文件。可执行文件在 ./bin/x86_64/linux/release
文件夹下。我们试着运行几个文件看看,常规的,首先测试 ./deviceQuery
,结果如下,
一切看起来似乎都不错,我们也可以继续测试一些其他的例子。不过对于我来说最重要的是配置 PyTorch 的 GPU 版本。
我先去 Miniconda 下载了最新版的 Miniconda Linux 64-bit,然后创建一个专门用于 PyTorch 的环境,
conda create -n pytorch-env
按照提示用 conda activate pytorch-env
激活该环境,再接下去就是按照 pytorch 的官方提示选择合适的配置环境,如下图
利用命令 conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
完成安装。
最后测试 PyTorch 的 GPU 版是否可用,我使用了经典的 mnist 来做这个测试。我去到 pytorch 的 Github 例子页,下载 mnist 的 main.py 文件,完成后在 pytorch-env 环境中执行 `python main.py` 即可。
该命令将首先下载需要的数据,需要等待一会儿,然后就会开始训练神经网络了,如下图
为了确定我确实用到了 GPU,在测试过程中,我们打开 GPU 的监视器查看 GPU 的使用率,如下
可以看到 python 的确使用了 883M GPU 的内存。
至此全部配置完成。
Everything seems to work.