Linux安装Pytorch1.8GPU(CUDA11.1)的实现

 更新时间:2021年3月25日 10:00  点击:3418

先说下自己之前的环境(都是Linux系统,差别不大):

  • Centos7.6
  • NVIDIA Driver Version 440.33.01(等会需要更新驱动)
  • CUDA10.1
  • Pytorch1.6/1.7

提示,如果想要保留之前的PyTorch1.6或1.7的环境,请不要卸载CUDA环境,可以通过Anaconda管理不同的环境,互不影响。但是需要注意你的NVIDIA驱动版本是否匹配。

在这里能够看到官方给的对应CUDA版本所需使用驱动版本。

cuda-driver

通过上表可以发现,如果要使用CUDA11.1,那么需要将显卡的驱动更新至455.23或以上(Linux x86_64环境)。由于我之前的驱动版本是440.33.01,那么肯定不满足,所以需要更新下显卡的驱动。通过以下指令可以查看你电脑上的驱动版本:

nvidia-smi

如果你的驱动版本是满足的,那么可以直接跳到创建Pytorch1.8虚拟环境章节。

更新驱动

卸载旧驱动

我之前安装的是NVIDIA-440的版本,找到之前下载的安装程序,然后打开终端通过以下指令进行卸载:

sh ./NVIDIA-Linux-x86_64-440.33.01.run --uninstall

安装新驱动

1)下载驱动,直接去NVIDIA官网下载:https://www.nvidia.cn/Download/index.aspx?lang=cn

driver

根据你的GPU型号以及操作信息选择对应的驱动,注意CUDA Toolkit11版的当前可选的只有11.0和11.2,而我们要装的是11.1所以选择11.2即可。

2)关闭Xserver服务 (如果没有安装桌面系统可以跳过)
我的桌面系统是gdm(GNOME Display Manager)类型的,通过systemctl可以看到:

systemctl status gdm.service

显示结果:

● gdm.service - GNOME Display Manager
Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-01-22 09:27:06 CST; 1 months 22 days ago
Process: 32347 ExecStartPost=/bin/bash -c TERM=linux /usr/bin/clear > /dev/tty1 (code=exited, status=0/SUCCESS)
Main PID: 32344 (gdm)
Tasks: 22
CGroup: /system.slice/gdm.service
├─32344 /usr/sbin/gdm
└─32357 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-mBzawN/databa...

Jan 22 09:27:06 localhost.localdomain systemd[1]: Starting GNOME Display Manager...
Jan 22 09:27:06 localhost.localdomain systemd[1]: Started GNOME Display Manager.

关闭gdm服务:

systemctl stop gdm.service

注意,如果还开启了类似VNC远程桌面的服务也要记得关闭。

3)安装新版本驱动

sh ./NVIDIA-Linux-x86_64-460.32.03.run 

4)检查nvidia服务
通过以下指令能够看到当前主机上的nvidia驱动版本以及所有可用GPU设备信息。

nvidia-smi

5)再次开启桌面服务、VNC等
如果不是gdm或者不使用桌面环境可以跳过此步骤

systemctl start gdm.service

创建PyTorch1.8虚拟环境

为了不同版本之间的环境互相隔离,强烈建议使用Anaconda的虚拟环境。其实使用起来也非常简单:

创建虚拟环境,这里我创建了一个名为torch18的虚拟环境,并且创建python3.8的编译环境。

conda create -n torch18 python=3.8

安装完成后,激活虚拟环境

conda activate torch18

接着安装点常用的包,这里直接通过requirements.txt批量安装(不需要可以跳过)

pip install -r requirements.txt

requirements.txt文件里可以是你常用的一些包,例如:

numpy==1.17.0
matplotlib==3.2.1
lxml==4.6.2
tqdm==4.42.1

如果需要退出虚拟环境,执行以下指令即可:

conda deactivate

安装PyTorch1.8

在线安装

进入PyTorch官网:https://pytorch.org/

pytorch

我们通过选择自己的系统类型、安装方式以及CUDA的版本可以得到对应的安装指令。官方默认会顺带安装torchvision和torchaudio但我只需要torchvision所以通过以下指令安装 (注意,要进入对应的虚拟环境安装,例如上面的torch18环境)

pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html

安装完成后就可以使用了,不需要在单独安装CUDA,并且不会影响之前安装的CUDA版本。

下面进行简单的测试:

首先在终端输入python进入python环境:

pyhton

然后导入torch包,查看cuda是否可用:

import torch
torch.cuda.is_available()

如果打印的是True表示成功

cuda

离线安装

有些时候,可能你的设备无法连接外网,此时需要提前准备好需要安装的whl文件,那么我们这里就以torchtorchvision为例(注意安装torch前需要提前安装好numpy包)。刚刚我们在线安装时发现安装指令最后有个网址,https://download.pytorch.org/whl/torch_stable.html,没错就是官方存放所有的安装包,所以我们可以直接去那里下载。

torchandvison

我们在这里可以找到我们需要的torch-1.8.0+cu111-cp38-cp38-linux_x86_64.whl以及torchvision-0.9.0+cu111-cp38-cp38-linux_x86_64.whl两个文件即可。注意,cu111代表CUDA11.1,cp38表示python3.8的编译环境,linux_x86_64表示x86的平台64位操作系统。下载完成后,我们将这两个文件传入你的离线主机(服务器)中。接着在保存这两个文件夹的目录下打开终端:

进入对应虚拟环境

conda activate torch18

安装torch

pip install torch-1.8.0+cu111-cp38-cp38-linux_x86_64.whl

安装torchvison

pip install torchvision-0.9.0+cu111-cp38-cp38-linux_x86_64.whl

安装完成后进行简单的测试:

首先在终端输入python进入python环境:

pyhton

然后导入torch包,查看cuda是否可用:

import torch
torch.cuda.is_available()

如果打印的是True表示成功

cuda

通过docker安装

在有些情况下是需要使用docker来跑深度学习环境的(现在很多大公司都是使用paas平台来部署的)。那么我们就需要使用pytorch官方的docker镜像了。我们可以在docker hub上去搜索相关镜像,https://registry.hub.docker.com/。下图是我搜索的pytorch字段的结果(点击Tags后)。

docker

我们可以看到当前最新的docker 镜像有pytorch/pytorch:1.8.0-cuda11.1-cudnn8-develpytorch/pytorch:1.8.0-cuda11.1-cudnn8-runtime,对于普通开发者下载pytorch/pytorch:1.8.0-cuda11.1-cudnn8-runtime就行了。关于安装docker的过程这里不赘述。

1)我们直接通过以下指令就能pull这个镜像了

docker pull pytorch/pytorch:1.8.0-cuda11.1-cudnn8-runtime

2)注意,在启动镜像前需要确保已安装NVIDIA Container Toolkit,否则会报错(若已安装可直接跳过此步骤):

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
  && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

安装NVIDIA Container Toolkit,参考官方文档:https://github.com/NVIDIA/nvidia-docker
这里以Centos7为例:

首先根据你的系统类型以及版本下载对应.repo文件到/etc/yum.repos.d

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
  && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

清空yum的过期缓存数据(如果不是root用户需要加sudo)

yum clean expire-cache

安装NVIDIA Container Toolkit(如果不是root用户需要加sudo)

yum install -y nvidia-docker2

重启docker服务(如果不是root用户需要加sudo)

systemctl restart docker

3)通过docker启动pytorch1.8.0容器

docker run --gpus all --rm -it --ipc=host pytorch/pytorch:1.8.0-cuda11.1-cudnn8-runtime

4)进入容器后可以通过nvidia-smi看到所有的GPU设备信息

smi

5)接着进入python环境简单测试下pytorch能否正常调用GPU(打印True为成功)

import torch
torch.cuda.is_available()

test

到此这篇关于Linux安装Pytorch1.8GPU(CUDA11.1)的实现的文章就介绍到这了,更多相关Linux安装Pytorch GPU 内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

[!--infotagslink--]

相关文章

  • PHP7快速编译安装的步骤

    编译安装非常的简单了我们现在的php版本已经到了php7了,下文小编来为各位介绍一篇关于PHP7快速编译安装的步骤,希望文章能够帮助到各位。 一、安装必要一些依赖 yum...2016-11-25
  • Rstudio中安装package出现的问题及解决

    这篇文章主要介绍了Rstudio中安装package出现的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • pytorch nn.Conv2d()中的padding以及输出大小方式

    今天小编就为大家分享一篇pytorch nn.Conv2d()中的padding以及输出大小方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
  • PHP编译安装后PHP-FPM使用笔记

    PHP-FPM我们相信各位用高版本的php经常使用到了,下面整理了一些关于PHP-FPM的笔记,有兴趣的可进来看看。 今天赶上了123System OPenVZ VPS全场半价的机会,购入了一...2016-11-25
  • PyTorch一小时掌握之迁移学习篇

    这篇文章主要介绍了PyTorch一小时掌握之迁移学习篇,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-08
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • 在linux中使用包管理器安装node.js

    网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法。...2015-03-15
  • Linux安装Pytorch1.8GPU(CUDA11.1)的实现

    这篇文章主要介绍了Linux安装Pytorch1.8GPU(CUDA11.1)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-25
  • Linux中grep命令详解

    grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令,这篇文章主要介绍了Linux中grep详解,需要的朋友可以参考下...2023-02-15
  • vscode安装git及项目开发过程

    这篇文章主要介绍了vscode安装git及项目开发过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-19
  • Visual Studio 2015下载和安装图文教程

    这篇文章主要为大家详细介绍了Visual Studio 2015下载和安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • Pytorch之扩充tensor的操作

    这篇文章主要介绍了Pytorch之扩充tensor的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-05
  • Node调试工具JSHint的安装及配置教程

    现在我们介绍一种在Node下检查简单错误的JS代码验证工具JSHint。  JSHint的具体介绍参考http://www.jshint.com/about/,说直白点儿,JSHint就是一个检查JS代码规范与否的工具,它可以用来检查任何(包括server端和client端...2014-05-31
  • Centos中彻底删除Mysql(rpm、yum安装的情况)

    我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15
  • pytorch 自定义卷积核进行卷积操作方式

    今天小编就为大家分享一篇pytorch 自定义卷积核进行卷积操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-06
  • 详解Linux环境变量配置全攻略

    这篇文章主要介绍了Linux环境变量配置全攻略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-03-31
  • Ubuntu20.04安装cuda10.1的步骤(图文教程)

    这篇文章主要介绍了Ubuntu20.04安装cuda10.1的步骤(图文教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-30
  • Linux 下使用shell脚本定时维护数据库的案例

    这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • 解决pytorch 交叉熵损失输出为负数的问题

    这篇文章主要介绍了解决pytorch 交叉熵损失输出为负数的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-08
  • 在PyCharm中安装PaddlePaddle的方法

    这篇文章主要介绍了在PyCharm中安装PaddlePaddle的方法,本文给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-05