Ubuntu18.04下安装深度学习框架Pytorch(GPU加速)

前面我们已经在windows10环境下成功安装了CPU版本的Pytorch,推荐的是利用Anaconda安装。经过接近一天的奋战,博主成功在linux系统安装GPU加速的pytorch,博主使用的发行版是Ubuntu18.04。

感谢原博主的分享,安装大同小异,原文地址:

https://blog.csdn.net/wuzhiwuweisun/article/details/82753403

说一下CUDA和CUDNN都是啥吧。

CUDA(Compute Unified Device Architecture),是英伟达公司推出的一种基于新的并行编程模型和指令集架构的通用计算架构,它能利用英伟达GPU的并行计算引擎,比CPU更高效的解决许多复杂计算任务。

CUDNN是用于深度神经网络的GPU加速库。

具体参考博客:

https://blog.csdn.net/qq_28660035/article/details/80959752

https://blog.csdn.net/fangjin_kl/article/details/53906874

一、安装Anaconda

linux下安装Anaconda很简单,步骤和前一篇在windows下安装的步骤相似。

1.下载Anaconda

这个过程就不重新说一遍了,还是老话,去镜像源下载,去镜像源下载,去镜像源下载,因为官网太慢了!然后选择的版本是linux下的,根据自己的电脑操作位数选择32还是64位。

镜像下载地址和修改方法参考前一篇博客:https://blog.csdn.net/wuzhiwuweisun/article/details/82689151

这里我下载的是Anaconda3-5.0.1-Linux-x86_64.sh,自带的python的版本是3.6。百度云链接还有一个Anaconda是3.4.3的,自带的python版本是3.5的。

这里贴一下百度云的链接:https://pan.baidu.com/s/1W9DEbcMInIzVMerOI-JRTA 密码:x5jx

2.安装Anaconda

这个比windows简单,一条命令。

首先切换到anaconda安装包的路径,在该路径下执行指令:

sh Anaconda3-5.0.1-Linux-x86_64.sh   #后边的文件名称是你的安装包的名称
 
 

后边的话就很简单了。


 
 
  1. Welcome to Anaconda3 5.0 .1
  2. In order to continue the installation process, please review the license
  3. agreement.
  4. Please, press ENTER to continue
  5. >>> 按回车
  6. #然后一直按回车到协议完毕
  7. #出现:
  8. Do you accept the license terms? [yes|no]
  9. >>>输入yes
  10. #下面就是问你安装目录,建议就是默认的安装路径,直接按回车
  11. Anaconda3 will now be installed into this location:
  12. /home/mayunteng/anaconda3
  13. - Press ENTER to confirm the location
  14. - Press CTRL-C to abort the installation
  15. - Or specify a different location below
  16. [/home/mayunteng/anaconda3] >>> 按回车
  17. #接下来就是等待安装完成
  18. #注意安装完成以后会询问你是否把anaconda3的路径加到环境变量里去,一定要选yes,一定要选yes,一定要选yes。

安装完成以后,重启终端,依次输入下面的指令,如果显示的是anaconda版本的python,代表安装成功。


 
 
  1. 先输入:source ~/.bashrc
  2. 再输入:python
  3. 显示的python版本后面有Anaconda标识,代表安装成功
  4. Python 3.6 .3 |Anaconda, Inc.| ( default, Oct 13 2017, 12: 02: 49)
  5. [GCC 7.2 .0] on linux
  6. Type "help", "copyright", "credits" or "license" for more information.
  7. >>>
  8. #退出python的命令交互行输入 exit()回车就可以了。

我们也可以输入conda list 查看安装的库。


 
 
  1. 输入:conda list
  2. 显示(已经安装好的库):
  3. # packages in environment at /home/mayunteng/anaconda3:
  4. #
  5. # Name Version Build Channel
  6. _ipyw_jlab_nb_ext_conf 0.1 .0 py36he11e457_0 defaults
  7. alabaster 0.7 .10 py36h306e16b_0 defaults
  8. anaconda 5.0 .1 py36hd30a520_1 defaults
  9. anaconda-client 1.6 .5 py36h19c0dcd_0 defaults
  10. anaconda-navigator 1.6 .9 py36h11ddaaa_0 defaults
  11. anaconda-project 0.8 .0 py36h29abdf5_0 defaults
  12. asn1crypto 0.22 .0 py36h265ca7c_1 defaults
  13. astroid 1.5 .3 py36hbdb9df2_0 defaults
  14. astropy 2.0 .2 py36ha51211e_4 defaults
  15. babel 2.5 .0 py36h7d14adf_0 defaults
  16. backports 1.0 py36hfa02d7e_1 defaults
  17. backports.shutil_get_terminal_size 1.0 .0 py36hfea85ff_2 defaults
  18. beautifulsoup4 4.6 .0 py36h49b8c8c_1 defaults
  19. bitarray 0.8 .1 py36h5834eb8_0 defaults
  20. bkcharts 0.2 py36h735825a_0 defaults
  21. blas 1.0 mkl https: //mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  22. blaze 0.11 .3 py36h4e06776_0 defaults
  23. bleach 2.0 .0 py36h688b259_0 defaults
  24. bokeh 0.12 .10 py36hbb0e44a_0 defaults
  25. boto 2.48 .0 py36h6e4cd66_1 defaults
  26. bottleneck 1.2 .1 py36haac1ea0_0 defaults
  27. bzip2 1.0 .6 h0376d23_1 defaults

输入下面的指令可以启动Spyder, IPython, Jupyter Notebook,Anaconda Navigator 。


 
 
  1. spyder #打开Spyder
  2. ipython #打开IPython
  3. jupyter notebook #打开Jupyter notebook
  4. anaconda-navigator #打开Anaconda Navigator

PS:若在前边没有把Anaconda3的路径加到环境变量中,可以这么修改:


 
 
  1. 在命令行输入:
  2. sudo gedit ~/.bashrc
  3. 打开bashrc文件后在末尾输入下面的语句:
  4. export PATH= "/home/mayunteng/anaconda3/bin:$PATH" #/home/mayunteng/anaconda3/替换成你的安装路径
  5. 关闭bashrc文件后,在命令行输入:
  6. source .bashrc #使更新的环境变量立即生效

 

二、安装CUDA和CUDNN

1. 检测NVIDIA图形卡是否支持GPU运算

在安装之前你要先查看你的电脑是否支持GPU运算,否则你也不用安装了。

先查看自己电脑的显卡型号。

可以去终端输入命令查看:


 
 
  1. 输入:
  2. ubuntu-drivers devices
  3. 输出显示:
  4. == /sys/devices/pci0000: 00/ 0000: 00: 01.0/ 0000: 01: 00.0 ==
  5. modalias : pci:v000010DEd00001380sv00001B4Csd0000105Fbc03sc00i00
  6. vendor : NVIDIA Corporation
  7. model : GM107 [GeForce GTX 750 Ti]#这个就是图形卡类型
  8. driver : nvidia -340 - distro non- free
  9. driver : nvidia-driver -390 - distro non- free recommended
  10. driver : xserver-xorg-video-nouveau - distro free builtin

这里可以看到我的图形卡是GTX 750 Ti。

拿着这个图形卡驱动到NAVIDIA官网去查是不是支持GPU运算。

网址是:https://developer.nvidia.com/cuda-gpus

打开后的界面大致如下,只要里边有你的型号就可以用GPU运算:

2. 安装推荐的显卡驱动程序

第一种方法(推荐):

首先打开linux系统(Ubuntu18.04)设置中的"软件和更新"部分,然后打开,找到“附加驱动”,打开后安装系统推荐的驱动。

找到“附加驱动”,安装推荐的驱动,最后点击应用。

然后就是静静等待安装完成就可以了。安装完成后记得重启电脑!重启电脑!重启电脑!

这种方法的好处就是不易出错,配置的话电脑都给你做好了。

最后验证是否安装成功,输入 sudo nvidia-smi


 
 
  1. 输入:sudo nvidia-smi
  2. 显示下面的信息代表图形显卡驱动安装成功:
  3. Tue Sep 18 16 : 40 : 36 2018
  4. +-----------------------------------------------------------------------------+
  5. | NVIDIA-SMI 390.48 Driver Version: 390.48 |
  6. |-------------------------------+----------------------+----------------------+
  7. | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
  8. | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
  9. |===============================+======================+====================== |
  10. | 0 GeForce GTX 750 Ti Off | 00000000:01:00.0 On | N/A |
  11. | 38% 32C P8 1W / 38W | 254MiB / 1999MiB | 0% Default |
  12. +-------------------------------+----------------------+----------------------+
  13. +-----------------------------------------------------------------------------+
  14. | Processes: GPU Memory |
  15. | GPU PID Type Process name Usage |
  16. |============================================================================= |
  17. | 0 1126 G /usr/lib/xorg/Xorg 11MiB |
  18. | 0 1217 G /usr/bin/gnome-shell 49MiB |
  19. | 0 1399 G /usr/lib/xorg/Xorg 69MiB |
  20. | 0 1529 G /usr/bin/gnome-shell 116MiB |
  21. | 0 2946 G /usr/lib/firefox/firefox 1MiB |
  22. +-----------------------------------------------------------------------------+

最好找到系统设置的“详细信息”部分,查看一下自己的图形卡是否已经是GTX 750 Ti。

 

第二种方法(我没尝试过):

参考博客:

https://blog.csdn.net/u012328159/article/details/80959454

https://blog.csdn.net/flowrush/article/details/80744787

3.给GCC手动降级

这里参考博客:

https://blog.csdn.net/u010801439/article/details/80483036

由于CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,手动降级:


 
 
  1. sudo apt-get install gcc -4.8
  2. sudo apt- get install g++ -4.8

注意如果装caffe,gcc一定要5.0以上

装完后进入到/usr/bin目录下,执行 ls -l gcc*


 
 
  1. 输入:
  2. ls -l gcc*
  3. 显示(我这里由于已经改过了,所以第一行是链接到4 .8了,原来的是链接到7 .3):
  4. lrwxrwxrwx 1 root root 7 9月 12 20 :43 gcc -> gcc-4 .8
  5. -rwxr-xr-x 1 root root 772280 3月 19 2018 gcc-4 .8
  6. lrwxrwxrwx 1 root root 22 4月 15 12 :52 gcc-7 -> x86_64-linux-gnu-gcc-7
  7. lrwxrwxrwx 1 root root 8 4月 7 02 :04 gcc-ar -> gcc-ar-7
  8. -rwxr-xr-x 1 root root 27088 3月 19 2018 gcc-ar-4 .8
  9. lrwxrwxrwx 1 root root 25 4月 15 12 :52 gcc-ar-7 -> x86_64-linux-gnu-gcc-ar-7
  10. lrwxrwxrwx 1 root root 5 4月 7 02 :04 gcc .bak -> gcc-7
  11. lrwxrwxrwx 1 root root 8 4月 7 02 :04 gcc-nm -> gcc-nm-7
  12. -rwxr-xr-x 1 root root 27088 3月 19 2018 gcc-nm-4 .8
  13. lrwxrwxrwx 1 root root 25 4月 15 12 :52 gcc-nm-7 -> x86_64-linux-gnu-gcc-nm-7
  14. lrwxrwxrwx 1 root root 12 4月 7 02 :04 gcc-ranlib -> gcc-ranlib-7
  15. -rwxr-xr-x 1 root root 27088 3月 19 2018 gcc-ranlib-4 .8
  16. lrwxrwxrwx 1 root root 29 4月 15 12 :52 gcc-ranlib-7 -> x86_64-linux-gnu-gcc-ranlib-7

发现gcc链接到gcc-7.3, 需要将它改为链接到gcc-4.8,方法如下:


 
 
  1. sudo mv gcc gcc.bak #备份
  2. sudo ln -s gcc -4.8 gcc #重新链接

对g++做同样的修改:

ls -l g++*
 
 

 
 
  1. sudo mv g++ g++ .bak
  2. sudo ln -s g++ -4 .8 g++

最后看gcc和g++版本号,如果是4.8代表修改成功:


 
 
  1. mayunteng@mayunteng-OptiPlex- 7040 :/usr/bin$ gcc --version
  2. gcc (Ubuntu 4.8. 5- 4ubuntu8) 4.8. 5
  3. Copyright (C) 2015 Free Software Foundation, Inc.
  4. This is free software; see the source for copying conditions. There is NO
  5. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  6. mayunteng@mayunteng-OptiPlex- 7040 :/usr/bin$ g++ --version
  7. g++ (Ubuntu 4.8. 5- 4ubuntu8) 4.8. 5
  8. Copyright (C) 2015 Free Software Foundation, Inc.
  9. This is free software; see the source for copying conditions. There is NO
  10. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

4. 安装CUDA

这里重点参考这两篇博客进行:

https://www.jianshu.com/p/ea169536850f(推荐)

https://blog.csdn.net/flowrush/article/details/80744787

我是选择的CUDA 9.0和CUDNN 7.05

只要记住CUDA的选择要根据CUDNN的型号来选,即CUDA的版本一定要和CUDNN的版本对应,必须是CUDNN支持的版本!

 

首先去官网下载CUDA安装包,注意根据你的系统选,最后一项选择runfile(local)。

CUDA最新版下载地址:https://developer.nvidia.com/cuda-downloads

以前版本的CUDA:https://developer.nvidia.com/cuda-toolkit-archive

找到我要下载的CUDA 9.0版本下载,时间有点长,下完安装就好了,几个小的更新包可以不安装。

这里提供我搭建的环境需要的安装包,即Ubuntu18.04,64位系统的CUDA安装包,以及对应的CUDNN,Pytorch安装包。

百度云链接: https://pan.baidu.com/s/1wLqMuAAxu7vnCCgA2fr3PA 密码:6uau

进入刚刚下载的CUDA包的路径,执行命令:

sudo sh cuda_9.0.176_384.81_linux.run
 
 

然后按照下面的执行:


 
 
  1. Do you accept the previously read EULA? ( accept/decline/quit): accept You are attemptingto install on an unsupported configuration. Do you wish to continue? ((y)es/(n)o) [ default is no ]: y
  2. Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39? ((y)es/(n)o/(q)uit): n
  3. Install the CUDA 8.0 Toolkit? ((y)es/(n)o/(q)uit): y
  4. Enter Toolkit Location [ default is /usr/ local/cuda -8.0 ]:
  5. Do you want to install a symbolic link at /usr/ local/cuda? ((y)es/(n)o/(q)uit): y Install the CUDA 8.0 Samples? ((y)es/(n)o/(q)uit): y Enter CUDA Samples Location [ default is /home/kyle ]:

其实就是除了第二个安装图形驱动因为之前安装过选择no,其他就是yes或者默认。

安装完成在倒数几行出现警告,不用管:


 
 
  1. ***WARNING: Incomplete installation!

5 配置CUDA的环境变量

打开.bashrc文件,在终端输入:

sudo gedit ~/.bashrc
 
 

在文件的末尾添加下面两行,注意修改成你的安装路径:


 
 
  1. export PATH= "/usr/local/cuda-9.0/bin:$PATH" #这里添加路径出错的话最好加上双引号把路径括起来,这里已经加上了双引号
  2. export LD_LIBRARY_PATH= "/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"

测试一下CUDA是否安装成功:


 
 
  1. 输入:
  2. nvcc -V
  3. 显示:、
  4. nvcc: NVIDIA ( R) Cuda compiler driver
  5. Copyright ( c) 2005 -2017 NVIDIA Corporation
  6. Built on Fri_Sep__1_21 :08 :03_CDT_2017
  7. Cuda compilation tools, release 9 .0, V9 .0 .176

6 编译 CUDA Samples

进入samples的安装目录,选择一个看看是否可以成功编译。


 
 
  1. mayunteng@mayunteng-OptiPlex- 7040 :~$ cd NVIDIA_CUDA- 9.0_Samples/ 0_Simple/vectorAdd
  2. mayunteng@mayunteng-OptiPlex- 7040 :~/NVIDIA_CUDA- 9.0_Samples/ 0_Simple/vectorAdd$ make
  3. mayunteng@mayunteng-OptiPlex- 7040 :~/NVIDIA_CUDA- 9.0_Samples/ 0_Simple/vectorAdd$ ./vectorAdd
  4. [Vector addition of 50000 elements]
  5. Copy input data from the host memory to the CUDA device
  6. CUDA kernel launch with 196 blocks of 256 threads
  7. Copy output data from the CUDA device to the host memory
  8. Test PASSED
  9. Done

出现上面的Test PASSED代表CUDA安装成功。

7 安装CUDNN

首先是下载CUDNN,前面在下载CUDA的时候就已经说过,CUDA要对应CUDNN的版本,我选择的是CUDA9.0+CUDNN7.05的版本。

下载的话要先注册一个账号,然后才能下载。不过重点提醒的是注册和登陆的时候要科学上网(fanqiang)才可以!否则进不去!

官网:https://developer.nvidia.com/cudnn

这里我的cudnn文件百度云链接: https://pan.baidu.com/s/1wLqMuAAxu7vnCCgA2fr3PA 密码:6uau

CUDNN下载可参考博客https://blog.csdn.net/u010801439/article/details/80483036里边的步骤。

首先解压压缩包,然后执行:


 
 
  1. 先进入压缩包解压后的路径,再执行下面的指令
  2. cd cuda
  3. sudo cp lib64/* /usr/ local/cuda/lib64/
  4. sudo cp include/* /usr/ local/cuda/include/
  5. sudo chmod a+r /usr/ local/cuda/include/cudnn.h /usr/ local/cuda/lib64/libcudnn*

到此,CUDNN安装完成!

8 安装Pytorch

可以参考博客:https://blog.csdn.net/red_stone1/article/details/78727096

 

这里推荐使用离线安装,不易出错,一劳永逸。

安装包下载地址:https://pytorch.org/previous-versions/

 

这里我下载的是cu90/torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl版本的,0.3.0代表torch的版本,cp36代表支持的python版本,我的是python是3.6所以选择了cp36,linux_x86_64代表linux系统下的64位版本,cu90代表支持cuda9.0版本。

我的安装包百度云链接: https://pan.baidu.com/s/1wLqMuAAxu7vnCCgA2fr3PA 密码:6uau

进入安装包的路径,执行:

 pip install torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl 
 
 

接着执行:

pip install torchvision
 
 

然后验证pytorch和torchvision是否安装成功,在python命令行输入import torch,无警告代表成功。


 
 
  1. mayunteng@mayunteng-OptiPlex- 7040 :~/Newpack$ python
  2. Python 3.6. 3 |Anaconda, Inc.| (default, Oct 13 2017, 12 : 02 : 49)
  3. [GCC 7.2. 0] on linux
  4. Type "help", "copyright", "credits" or "license" for more information.
  5. >>> import torch
  6. >>>

至此,Pytorch安装成功!

最后,我们测试一下安装完这些能不能使用GPU加速:

打开Jupyter Notebook或者IPython,输入以下命令:


 
 
  1. import torch as t
  2. x = t.rand( 5, 3)
  3. y = t.rand( 5, 3)
  4. if t.cuda.is_available():
  5. x = x.cuda()
  6. y = y.cuda()
  7. print(x+y)

最后输出下面的界面代表成功调用GPU加速,否则没有成功调用。


 
 
  1. 0 .0624 1 .3100 1 .0462
  2. 1 .3511 1 .1635 1 .1907
  3. 0 .8890 1 .0524 1 .0477
  4. 1 .5921 1 .0428 0 .6046
  5. 0 .3175 0 .9421 1 .4520
  6. [torch.cuda.FloatTensor of size 5x3 (GPU 0)]

 

真心好累,后续有问题会补充......

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值