前面我们已经在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 #后边的文件名称是你的安装包的名称
后边的话就很简单了。
-
Welcome
to Anaconda3
5.0
.1
-
-
In
order
to
continue the installation process, please review the license
-
agreement.
-
Please, press ENTER
to
continue
-
>>> 按回车
-
#然后一直按回车到协议完毕
-
#出现:
-
Do you accept the license terms? [yes|no]
-
>>>输入yes
-
#下面就是问你安装目录,建议就是默认的安装路径,直接按回车
-
Anaconda3 will now be installed
into this location:
-
/home/mayunteng/anaconda3
-
-
- Press ENTER
to confirm the location
-
- Press CTRL-C
to abort the installation
-
-
Or specify a different location below
-
-
[/home/mayunteng/anaconda3] >>> 按回车
-
#接下来就是等待安装完成
-
#注意安装完成以后会询问你是否把anaconda3的路径加到环境变量里去,一定要选yes,一定要选yes,一定要选yes。
安装完成以后,重启终端,依次输入下面的指令,如果显示的是anaconda版本的python,代表安装成功。
-
先输入:source ~/.bashrc
-
再输入:python
-
显示的python版本后面有Anaconda标识,代表安装成功
-
Python
3.6
.3 |Anaconda, Inc.| (
default,
Oct
13
2017,
12:
02:
49)
-
[GCC
7.2
.0]
on linux
-
Type
"help",
"copyright",
"credits"
or
"license"
for more information.
-
>>>
-
#退出python的命令交互行输入
exit()回车就可以了。
我们也可以输入conda list 查看安装的库。
-
输入:conda
list
-
显示(已经安装好的库):
-
# packages in environment at /home/mayunteng/anaconda3:
-
#
-
# Name Version Build Channel
-
_ipyw_jlab_nb_ext_conf
0.1
.0 py36he11e457_0 defaults
-
alabaster
0.7
.10 py36h306e16b_0 defaults
-
anaconda
5.0
.1 py36hd30a520_1 defaults
-
anaconda-client
1.6
.5 py36h19c0dcd_0 defaults
-
anaconda-navigator
1.6
.9 py36h11ddaaa_0 defaults
-
anaconda-project
0.8
.0 py36h29abdf5_0 defaults
-
asn1crypto
0.22
.0 py36h265ca7c_1 defaults
-
astroid
1.5
.3 py36hbdb9df2_0 defaults
-
astropy
2.0
.2 py36ha51211e_4 defaults
-
babel
2.5
.0 py36h7d14adf_0 defaults
-
backports
1.0 py36hfa02d7e_1 defaults
-
backports.shutil_get_terminal_size
1.0
.0 py36hfea85ff_2 defaults
-
beautifulsoup4
4.6
.0 py36h49b8c8c_1 defaults
-
bitarray
0.8
.1 py36h5834eb8_0 defaults
-
bkcharts
0.2 py36h735825a_0 defaults
-
blas
1.0 mkl https:
//mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
-
blaze
0.11
.3 py36h4e06776_0 defaults
-
bleach
2.0
.0 py36h688b259_0 defaults
-
bokeh
0.12
.10 py36hbb0e44a_0 defaults
-
boto
2.48
.0 py36h6e4cd66_1 defaults
-
bottleneck
1.2
.1 py36haac1ea0_0 defaults
-
bzip2
1.0
.6 h0376d23_1 defaults
输入下面的指令可以启动Spyder, IPython, Jupyter Notebook,Anaconda Navigator 。
-
spyder
#打开Spyder
-
ipython
#打开IPython
-
jupyter notebook
#打开Jupyter notebook
-
anaconda-navigator
#打开Anaconda Navigator
PS:若在前边没有把Anaconda3的路径加到环境变量中,可以这么修改:
-
在命令行输入:
-
sudo gedit ~/.bashrc
-
打开bashrc文件后在末尾输入下面的语句:
-
export PATH=
"/home/mayunteng/anaconda3/bin:$PATH"
#/home/mayunteng/anaconda3/替换成你的安装路径
-
关闭bashrc文件后,在命令行输入:
-
source .bashrc
#使更新的环境变量立即生效
二、安装CUDA和CUDNN
1. 检测NVIDIA图形卡是否支持GPU运算
在安装之前你要先查看你的电脑是否支持GPU运算,否则你也不用安装了。
先查看自己电脑的显卡型号。
可以去终端输入命令查看:
-
输入:
-
ubuntu-drivers devices
-
输出显示:
-
== /sys/devices/pci0000:
00/
0000:
00:
01.0/
0000:
01:
00.0 ==
-
modalias : pci:v000010DEd00001380sv00001B4Csd0000105Fbc03sc00i00
-
vendor : NVIDIA Corporation
-
model : GM107 [GeForce GTX
750 Ti]#这个就是图形卡类型
-
driver : nvidia
-340 - distro non-
free
-
driver : nvidia-driver
-390 - distro non-
free recommended
-
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
-
输入:sudo nvidia-smi
-
显示下面的信息代表图形显卡驱动安装成功:
-
Tue Sep
18
16
:
40
:
36
2018
-
+-----------------------------------------------------------------------------+
-
| NVIDIA-SMI 390.48 Driver Version: 390.48 |
-
|-------------------------------+----------------------+----------------------+
-
| GPU Name Persistence-M
| Bus-Id Disp.A | Volatile Uncorr. ECC
|
-
| Fan Temp Perf
Pwr:Usage/Cap
| Memory-Usage | GPU-Util Compute M.
|
-
|===============================+======================+======================
|
-
|
0 GeForce GTX
750 Ti Off
| 00000000:01:00.0 On | N/A
|
-
|
38%
32C P8
1W /
38W
| 254MiB / 1999MiB |
0% Default
|
-
+-------------------------------+----------------------+----------------------+
-
-
+-----------------------------------------------------------------------------+
-
|
Processes: GPU Memory
|
-
| GPU PID Type Process name Usage
|
-
|=============================================================================
|
-
|
0
1126 G /usr/lib/xorg/Xorg
11MiB
|
-
|
0
1217 G /usr/bin/gnome-shell
49MiB
|
-
|
0
1399 G /usr/lib/xorg/Xorg
69MiB
|
-
|
0
1529 G /usr/bin/gnome-shell
116MiB
|
-
|
0
2946 G /usr/lib/firefox/firefox
1MiB
|
-
+-----------------------------------------------------------------------------+
-
最好找到系统设置的“详细信息”部分,查看一下自己的图形卡是否已经是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,手动降级:
-
sudo apt-get
install gcc
-4.8
-
sudo apt-
get
install g++
-4.8
注意如果装caffe,gcc一定要5.0以上
装完后进入到/usr/bin目录下,执行 ls -l gcc*
-
输入:
-
ls
-l
gcc*
-
显示(我这里由于已经改过了,所以第一行是链接到4
.8了,原来的是链接到7
.3):
-
lrwxrwxrwx 1
root
root 7 9月 12 20
:43
gcc
->
gcc-4
.8
-
-rwxr-xr-x 1
root
root 772280 3月 19 2018
gcc-4
.8
-
lrwxrwxrwx 1
root
root 22 4月 15 12
:52
gcc-7
->
x86_64-linux-gnu-gcc-7
-
lrwxrwxrwx 1
root
root 8 4月 7 02
:04
gcc-ar
->
gcc-ar-7
-
-rwxr-xr-x 1
root
root 27088 3月 19 2018
gcc-ar-4
.8
-
lrwxrwxrwx 1
root
root 25 4月 15 12
:52
gcc-ar-7
->
x86_64-linux-gnu-gcc-ar-7
-
lrwxrwxrwx 1
root
root 5 4月 7 02
:04
gcc
.bak
->
gcc-7
-
lrwxrwxrwx 1
root
root 8 4月 7 02
:04
gcc-nm
->
gcc-nm-7
-
-rwxr-xr-x 1
root
root 27088 3月 19 2018
gcc-nm-4
.8
-
lrwxrwxrwx 1
root
root 25 4月 15 12
:52
gcc-nm-7
->
x86_64-linux-gnu-gcc-nm-7
-
lrwxrwxrwx 1
root
root 12 4月 7 02
:04
gcc-ranlib
->
gcc-ranlib-7
-
-rwxr-xr-x 1
root
root 27088 3月 19 2018
gcc-ranlib-4
.8
-
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,方法如下:
-
sudo mv gcc gcc.bak
#备份
-
sudo ln -s gcc
-4.8 gcc
#重新链接
对g++做同样的修改:
ls -l g++*
-
sudo
mv
g++
g++
.bak
-
sudo
ln
-s
g++
-4
.8
g++
最后看gcc和g++版本号,如果是4.8代表修改成功:
-
mayunteng@mayunteng-OptiPlex-
7040
:/usr/bin$ gcc --version
-
gcc (Ubuntu
4.8.
5-
4ubuntu8)
4.8.
5
-
Copyright (C)
2015 Free Software Foundation, Inc.
-
This is free software; see the source
for copying conditions. There is NO
-
warranty;
not even
for MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.
-
-
mayunteng@mayunteng-OptiPlex-
7040
:/usr/bin$ g++ --version
-
g++ (Ubuntu
4.8.
5-
4ubuntu8)
4.8.
5
-
Copyright (C)
2015 Free Software Foundation, Inc.
-
This is free software; see the source
for copying conditions. There is NO
-
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
然后按照下面的执行:
-
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
-
Install NVIDIA Accelerated Graphics Driver
for Linux-x86_64
352.39? ((y)es/(n)o/(q)uit): n
-
Install the CUDA
8.0 Toolkit? ((y)es/(n)o/(q)uit): y
-
Enter Toolkit Location [
default
is /usr/
local/cuda
-8.0 ]:
-
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或者默认。
安装完成在倒数几行出现警告,不用管:
***WARNING: Incomplete installation!
5 配置CUDA的环境变量
打开.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
-
显示:、
-
nvcc:
NVIDIA (
R)
Cuda
compiler
driver
-
Copyright (
c) 2005
-2017
NVIDIA
Corporation
-
Built
on
Fri_Sep__1_21
:08
:03_CDT_2017
-
Cuda
compilation
tools,
release 9
.0,
V9
.0
.176
6 编译 CUDA Samples
进入samples的安装目录,选择一个看看是否可以成功编译。
-
mayunteng@mayunteng-OptiPlex-
7040
:~$ cd NVIDIA_CUDA-
9.0_Samples/
0_Simple/vectorAdd
-
mayunteng@mayunteng-OptiPlex-
7040
:~/NVIDIA_CUDA-
9.0_Samples/
0_Simple/vectorAdd$ make
-
mayunteng@mayunteng-OptiPlex-
7040
:~/NVIDIA_CUDA-
9.0_Samples/
0_Simple/vectorAdd$ ./vectorAdd
-
[Vector addition of
50000 elements]
-
Copy input data from the host memory to the CUDA device
-
CUDA kernel launch with
196 blocks of
256 threads
-
Copy output data from the CUDA device to the host memory
-
Test PASSED
-
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里边的步骤。
首先解压压缩包,然后执行:
-
先进入压缩包解压后的路径,再执行下面的指令
-
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*
到此,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,无警告代表成功。
-
mayunteng@mayunteng-OptiPlex-
7040
:~/Newpack$ python
-
Python
3.6.
3
|Anaconda, Inc.| (default, Oct
13
2017,
12
:
02
:
49)
-
[GCC
7.2.
0] on linux
-
Type
"help",
"copyright",
"credits"
or
"license"
for more information.
-
>>> import torch
-
>>>
至此,Pytorch安装成功!
最后,我们测试一下安装完这些能不能使用GPU加速:
打开Jupyter Notebook或者IPython,输入以下命令:
-
import torch
as t
-
x = t.rand(
5,
3)
-
y = t.rand(
5,
3)
-
if t.cuda.is_available():
-
x = x.cuda()
-
y = y.cuda()
-
print(x+y)
最后输出下面的界面代表成功调用GPU加速,否则没有成功调用。
-
0
.0624 1
.3100 1
.0462
-
1
.3511 1
.1635 1
.1907
-
0
.8890 1
.0524 1
.0477
-
1
.5921 1
.0428 0
.6046
-
0
.3175 0
.9421 1
.4520
-
[torch.cuda.FloatTensor of size 5x3 (GPU 0)]
真心好累,后续有问题会补充......