Ubuntu18.04下安装Pytorch-GPU(超详细自己安装全过程)「建议收藏」

2022-11-10 11:30:41 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

硬件环境: 自己的笔记本电脑 CPU:i5-4210M GPU:NVIDIA Geforce 940M

1 Anaconda3的安装与配置

1.1 下载

可以到Anaconda官网下载 历史版本:https://repo.anaconda.com/archive/ 国内的下载速度可能比较慢,选择到清华大学开源软件镜像站下载。 我使用的python 3.6.9,下载对于的Anaconda版本是5.1.0版本

1.2 安装

下载完之后是后缀.sh文件

在终端输入:

代码语言:javascript复制
bash Anaconda3-5.1.0-Linux-x86_64.sh
代码语言:javascript复制
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。
1.3 切换默认Python版本

查看Python版本(此步为管理员操作,普通用户请跳过) 终端输入python查看版本,如果默认不是python3,则在终端输入:

代码语言:javascript复制
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

执行完上述两行命令之后在终端输入python,如果第一行信息是3.6,则成功。效果图如下:

如果要切换到Python2,执行:

代码语言:javascript复制
sudo update-alternatives --config python
1.4 添加环境变量

将Python添加到环境变量中. 如果在安装Anaconda的过程中没有将安装路径添加到系统环境变量中,需要在安装后手工添加. 第一步:打开bashrc文件.

代码语言:javascript复制
vim ~/.bashrc

第二步:在文件末尾处添加以下语句

代码语言:javascript复制
export PATH=/home/XXX/anaconda3/bin:$PATH    XXX为自己的用户名

(我的用户名是lirui,实际中要按照自己的用户名,这个也就是anaconda的安装目录)

1.5 使环境变量生效

让etc/profile文件修改后立即生效, 在终端输入:

代码语言:javascript复制
source ~/.bashrc

至此,Anaconda安装成功! 如果没有成功,重启系统即可。 也可以在终端输入

代码语言:javascript复制
echo $PATH

查看已有的环境变量 ,确认输出是否已经有Anaconda路径了。 终端输入python,可以看到有Anaconda出现,安装成功。

2 安装CUDA和CUDNN

2.1 NVIDIA驱动安装

在安装之前你要先查看你的电脑是否支持GPU运算,否则你也不用安装了。 拿着这个图形卡驱动到NAVIDIA官网去查是不是支持GPU运算。

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

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

Ubuntu18.04自带了NVIDIA驱动,但是它没有安装完整,不能在终端使用nvidia-smi命令查看,在之后的CUDA编译测试里面也会出现问题,因此需要重新安装。重新安装的方式如下:

首先,检测你的NVIDIA图形卡和推荐的驱动程序的模型,在终端输入:

代码语言:javascript复制
ubuntu-drivers devices

从中可以看到,这里有一个设备是Geforce 940M,对应的驱动是NVIDIA -440,所以安装440版本的驱动。安装驱动有两种方法:

  • 方法一、选择安装所有推荐的驱动.
代码语言:javascript复制
sudo ubuntu-drivers autoinstall
  • 方法二、只安装其中一个驱动.
代码语言:javascript复制
sudo apt install nvidia-440

这里我们选择第一种方式,安装完成后记得重启电脑!重启电脑!重启电脑! 最后验证是否安装成功,输入 sudo nvidia-smi

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

2.2 GCC降级

因为Ubuntu18.04默认gcc7.0,而CUDA9.0只支持gcc6.0及以下版本,因此需要降级,这里选择降级到的版本是gcc5.5版本。 安装

代码语言:javascript复制
sudo apt-get install gcc-5 g  -5

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

可以看到gcc连接到gcc7,我们要更改gcc链接。方法如下:

代码语言:javascript复制
sudo mv gcc gcc.bak #备份
sudo ln -s gcc-5 gcc #重新链接

对g 做同样的修改:

代码语言:javascript复制
ls -l g  *
sudo mv g   g  .bak
sudo ln -s g  -5 g  

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

2.3 安装依赖库

在终端输入:

代码语言:javascript复制
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev
sudo apt-get install libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

成功安装完依赖库!

2.4 安装CUDA

我是选择的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版本下载,时间有点长,下完安装就好了,几个小的更新包可以不安装。

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

代码语言:javascript复制
sudo sh cuda_9.0.176_384.81_linux.run

一路按enter,结束协议后的设置如下,注意:第三个选项问是否安装NVIDIA Accelerated Graphics Driver驱动,选否

安装剩下的四个插件

代码语言:javascript复制
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

添加环境变量

代码语言:javascript复制
sudo gedit ~/.bashrc

在末尾添加:

代码语言:javascript复制
export PATH=/usr/local/cuda-9.0/bin${ 
   PATH: :${ 
   PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda9.0/lib64${ 
   LD_LIBRARY_PATH: :${ 
   LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda-9.0

测试CUDA 我在装的时候出现了Warning提示,然后就测试了一下:

代码语言:javascript复制
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery

显示 PASS,安装成功。

2.5 安装CUDNN

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

要先注册登录,填一个调查问卷方可下载

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

选择cudnn v7.05 for cuda9.0 linux 下载完毕后,切到默认的Downloads文件夹,可以看到 cudnn-9.1-linux-x64-v7.tgz 压缩包,先解压,然后将其中的内容复制到CUDA安装文件夹里面.

代码语言:javascript复制
sudo cp cuda/include/cudnn.h    /usr/local/cuda/include      #注意,解压后的文件夹名称为cuda ,将对应文件复制到 /usr/local中的cuda内
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安装就完成。

3 安装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版本。

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

代码语言:javascript复制
pip install torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl 

接着执行:

代码语言:javascript复制
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torchvision

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

代码语言:javascript复制
lirui@lirui:~/下载$ python
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> 

至此,Pytorch安装成功! 最后,我们测试一下安装完这些能不能使用GPU加速: 打开Python,输入以下命令:

代码语言:javascript复制
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加速,否则没有成功调用。

代码语言:javascript复制
 0.6720  0.8196  0.3007
 1.1233  0.4768  0.9952
 0.5416  0.4801  1.5302
 0.3140  0.8989  0.1525
 1.3961  1.2157  0.5667
[torch.cuda.FloatTensor of size 5x3 (GPU 0)]

装起来太难了,整个过程搞了快一天,真心好累

判断pytorch是否支持GPU加速

代码语言:javascript复制
import torch as t
print(t.cuda.is_available())

输出为:True,即安装成功

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/189062.html原文链接:https://javaforall.cn

0 人点赞