记录自己ubuntu18.04安装pytorch的心得,anaconda3-5.2已经安装好,这里不再详述。
目录
1.CPU版本Pytorch安装
2.GPU版本Pytorch安装
3.相关网址及总结
1.CPU版本Pytorch安装
CPU版本的pytoch安装比较简单,在Pytorch官网中选择python版本,运行conda或者pip命令即可,如下图所示。注意,为了方便多个Python版本的管理,通常需要在anaconda中创建新的环境空间。
2.GPU版本Pytorch安装
GPU版本的pytorch安装比较复杂,在安装pytorch之前,通常需要安装显卡驱动,cuda和cudnn,CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行;cuDNN(CUDA Deep Neural Network library):是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。如果你要用GPU训练模型,cuDNN不是必须的,但是一般会采用这个加速库。CUDA是必须的,cudnn是可选的。
通常需要考虑:
(1)检查显卡型号是否支持GPU运算
检查方法:终端输入
ubuntu-drivers devices
得到以下结果:
图中,“model”对应的就是电脑显卡型号,“driver”中后面带有“recommanded”就是推荐的显卡驱动型号。根据显卡型号到英伟达官网查询是否支持GPU。
网站显示如下:
先选择“CUDA GeForce and TITAN Products”,再看具体型号,电脑GPU为GTX 1050,支持GPU 运算。
(2)安装显卡驱动
确定显卡支持GPU 运算后,接下来需要安装显卡驱动,目前尝试过两种安装方法,都成功了。
安装方法一:
系统“软件和更新”,“附加驱动”,选择推荐的驱动安装。
安装方法二:
运行以下命令,安装所有驱动
sudo ubuntu-drivers autoinstall
或者只安装推荐的驱动
sudo apt install nvidia-435
判断驱动是否安装成功
方法一:
终端输入命令
sudo nvidia-smi
显示以下信息则表示安装成功
方法二:
系统设置查看“图形”信息,变为英伟达的显卡类型即可。
(3)GCC降级
CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,需要手动降级。
安装4.8版本的g++和gcc,命令如下:
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
装完后进入到/usr/bin目录下,链接到低版本,命令如下:
sudo mv gcc gcc.bak #备份
sudo ln -s gcc-4.8 gcc #重新链接
sudo mv g++ g++.bak
sudo ln -s g++-4.8 g++
检查是否修改成功,命令:
gcc --version
g++ --version
显示结果如下,则修改成功。
(4)安装cuda
cuda和cudnn、pytorch版本之间要保证对应,能够支持。以下网址中有之前各版本的cuda下载(https://developer.nvidia.com/cuda-toolkit-archive),本文选择的是cuda9.0,根据系统环境选择合适的版本下载,有补丁的连补丁一同下载。关于Ubuntu系统一项,记住一个原则:高版本兼容低版本。即cuda9.0只有14.04和16.04两个选项,但18.04版本兼容这两个版本,所以cuda9.0也可以用于18.04版本的Ubuntu。
下载完成后,在下载路径下执行命令
sudo sh cuda_9.0.176_384.81_linux.run
安装过程中,以下选项选择no,其余选择yes或者默认。
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39? ((y)es/(n)o/(q)uit): n
此外,安装结束前,会出现warning:In complete Installation,可以忽略。
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 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 /tmp/cuda_install_4242.log
随后执行以下命令安装补丁:
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
安装完成后,打开.bashrc文件,在终端输入:
sudo gedit ~/.bashrc
在文件的末尾添加下面两行,注意修改成你的安装路径:
export PATH="/usr/local/cuda-9.0/bin:$PATH" #这里添加路径出错的话最好加上双引号把路径括起来,这里已经加上了双引号
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
测试cuda是否安装成功:
先重启终端,随后执行命令:
nvcc -V
之后,编译 CUDA Samples,注意改为自己的安装路径和版本:
cd NVIDIA_CUDA-9.0_Samples/0_Simple/vectorAdd
make
./vectorAdd
出现下面的Test PASSED代表CUDA安装成功。
(5)安装cudnn
安装的cudnn版本要与cuda版本对应,注册英伟达账号后,登陆以下网站选择相应的版本下载,这里选择的是cudnn-9.0-linux-x64-v7.6.0.64。
由于下载的是.solitairetheme8格式的压缩文件,在下载路径下执行命令:
cp cudnn-9.0-linux-x64-v7.6.0.64.solitairetheme8 cudnn-9.0-linux-x64-v7.6.0.64.tgz
tar -xvf cudnn-9.0-linux-x64-v7.6.0.64.tgz
先转化为tgz格式,再解压。随后进入解压路径,执行:
cd cuda
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp include/* /usr/local/cuda/include/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
注:在安装过程中,我将所有的下载文件剪切到主文件夹中,再运行指令,避免频繁切换路径。安装完成后,这些文件可以删除。
(6)安装pytorch
安装pytorch的时候,同样需要考虑与cuda版本对应,以下网址中(https://pytorch.org/get-started/previous-versions/)有历史版本的pytorch,选择合适的版本,并执行conda或者pip命令即可。这里选择的是v1.1.0。
注:安装pytorch时,和CPU版本一样,新建python环境空间。
3.相关网址及总结
(1)自己安装过程中及本博客,主要参考以下博客:
Ubuntu18.04下安装深度学习框架Pytorch(GPU加速)
解压.solitairetheme8文件
CUDA 版本,显卡驱动,Ubuntu版本,GCC版本之间的对应关系
GPU,CUDA,cuDNN的理解
(2)安装思路
安装anaconda,显卡是否支持,安装显卡驱动,GCC 降级,安装cuda,安装cudnn,新建python环境,安装pytorch
版本对应:系统版本(高兼容低),cuda版本、cudnn版本、pytorch版本
关于版本对应关系,可以到上文提到的网址中查看。
(3)下载网址
cuda最新版下载:
https://developer.nvidia.com/cuda-downloads
cuda历史版本下载:
https://developer.nvidia.com/cuda-toolkit-archive
pytorch最新版下载:
https://pytorch.org/
pytorch历史版本下载:
https://pytorch.org/get-started/previous-versions/
cudnn最新版下载:
https://developer.nvidia.com/cudnn
cudnn历史版本下载:
https://developer.nvidia.com/rdp/cudnn-archive
anaconda最新版下载:
https://www.anaconda.com/distribution/
anaconda历史版本下载:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/