使用conda在linux搭建pytorch和tensorflow的GPU运行环境

Tips: 本文使用的服务器为ubuntu18.04(1080ti x2)

文章目录

步骤总览:

  1. 安装显卡驱动
  2. 下载conda
  3. 配置pytorch环境
  4. 配置tensorflow环境
  5. 国内换源相关

安装显卡驱动

按简单顺序可分为3种,推荐第二种PPA安装。

第一种:在可视化的界面中可以直接安装系统推荐的驱动

ubuntu详见

第二种:命令行安装

可以通过命令行,安装PPA里面的nvidia驱动:

sudo add-apt-repository ppa:graphics-drivers/ppa --yes
sudo apt update
sudo apt search nvidia
sudo apt install xxx

第三种:官网驱动安装(不推荐)

可以参考nvidia 510.60.02 版本的官方教程,下文是对官方文档的一个简单概括:

  1. 下载驱动
  2. 安装前准备工作:下载编译基本环境、关闭所有OpenGL应用、X Server以及屏蔽Nouveau、关闭bios的secure boot
  3. 安装驱动

下载驱动

(1) 百度搜索”nvidia driver”或者”英伟达显卡驱动”(如果是在需要装环境的设备上搜索的记为情况一,通过远程ssh登陆的为情况二)

使用conda在linux搭建pytorch和tensorflow的GPU运行环境
(2) 选择你的显卡类型和操作系统,我是装有1080ti的ubuntu amd64位的操作系统,所以选择的是:GeForce 10series, GeForece GTX 1080ti; Linux 64-bit, 保险起见语言选择English.之后点击搜索,点击download(这里要点击download一次)

使用conda在linux搭建pytorch和tensorflow的GPU运行环境
(3) 进入下面界面,情况一直接点击下载,情况二拷贝下载链接,在远程连接的终端上输入 wget +拷贝的链接,注意链接应含有 .run (如:https://www.nvidia.com/content/DriverDownload-March2009/confirmation.php?url=/XFree86/Linux-x86_64/510.60.02/NVIDIA-Linux-x86_64-510.60.02.run&lang=us&type=TITAN)
使用conda在linux搭建pytorch和tensorflow的GPU运行环境

; 安装前准备工作

下载编译基本环境

sudo apt update
apt install build-essential

屏蔽Nouveau

Nouveau是”Accelerated Open Source driver for nVidia cards”,需要在装官网的驱动之前屏蔽.

(1) 修改Nouveau的配置文件,下述代码使用的是here doc的技巧修改配置文件的,也可以以管理员权限使用 vim :在 /etc/modprobe.d/blacklist-nouveau.conf 文件末尾添加下面第二、三行的内容。

cat <<EOF | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
EOF

(2) 更新配置并重启

sudo update-initramfs -u
sudo reboot

(3) 重启后确认一下, 重启的时候进入bios,并关闭secure boot(只是为了方便,才在这一步关闭,只要在安装驱动前关闭即可),如果看见 Successs表示成功屏蔽

lsmod | grep "nouveau" > /dev/null && echo "WARNING: nouveau still active" || echo "Success"

关闭 X server

这里注意,请使用远程ssh操作,关闭X server会关闭图形化界面,不能保证关闭后电脑能够进入图形化界面(似乎与显示器是否接在显卡上有关),所以使用ssh操作比较保险

sudo init 3

安装驱动

cd directory_of_driver_download
sudo bash NVIDIA-Linux-x86_64-*.run --dkms
sudo reboot

之后一路确认即可后重启,最后用 nvidia-smi 确认一下

下载安装conda

下载conda

推荐使用国内镜像(如果服务器在国内的话),根据服务器选择合适的镜像源,比如我在南京且在高校内,所以选择了南京大学的镜像,类似的有清华、中科大、阿里、腾讯等等。
以南京大学镜像为例,百度搜索”南京大学mirror”,看一看地址: https://mirror.nju.edu.cn/,是南京大学的域名(nju.edu.cn),不是广告。

使用conda在linux搭建pytorch和tensorflow的GPU运行环境
进去后点击 anaconda,我喜欢用miniconda,当然也可以选择archive,点击后选择符合系统的最新版本,这里和下载驱动一样,分情况一二。比如我是ubuntu amd64位,选”Miniconda3-py39_4.11.0-Linux-x86_64.sh”
使用conda在linux搭建pytorch和tensorflow的GPU运行环境
类似的,如果想下载archive版本,我就会选择:
使用conda在linux搭建pytorch和tensorflow的GPU运行环境

; 安装conda

sudo bash *conda3*.sh

一路下一步,即可,这里将conda的安装路径记为 CondaPath (方便之后表述,下文中的CondaPath需要替换成实际安装的路径)

使用conda时可能遇到的问题

(1) 当出现 NoWritableEnvsDirError 的报错时:

sudo chmod -R 777 CondaPath

(2) 关闭自动初始化base环境
使用某些版本的vscode + remote ssh的时候建议关闭

conda config --set auto_activate_base false

配置pytorch环境

pytorch安装最为简单,可完全参考官网的conda安装.

  1. 创建新的环境
  2. 安装cudatoolkit和pytorch相关包

创建新的环境

nameofenv 替换为自己想设定的名字,比如这里可以设置成 pytorchenv

conda create -n nameofenv python=3.9

激活该环境

conda activate nameofenv

安装cudatoolkit和pytorch相关包

这里在官网选择好后复杂代码运行即可:

使用conda在linux搭建pytorch和tensorflow的GPU运行环境
复制Run this Command对应的this command在终端运行:
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

测试pytorch的gpu

python -c "import torch;print(torch.cuda.is_available())"

返回True则说明安装成功,torch是自带cudnn的,所以只需要再设备安装驱动后再conda安装cudatoolkit和pytorch即可。

配置tensorflow环境

本文基于tensorflow官方软件要求进行安装:

必须在系统中安装以下 NVIDIA® 软件:

  1. NVIDIA® GPU 驱动程序 – CUDA® 11.2 要求 450.80.02 或更高版本。
  2. CUDA® 工具包:TensorFlow 支持 CUDA® 11.2(TensorFlow 2.5.0 及更高版本)
  3. CUDA® 工具包附带的 CUPTI。
  4. cuDNN SDK 8.1.0 cuDNN 版本。
  5. (可选)TensorRT 6.0,可缩短用某些模型进行推断的延迟时间并提高吞吐量。

CUDA、cuDNN的conda安装

cuda

cudatoolkit,其实在pytorch的安装时也安装了cudatoolkit11.3,是可以直接套用的: conda install -c pytorch cudatoolkit=11.3 在里的 -c pytorch 可以在 cudatoolkit=11.3 之前或之后,表示在名为 pytorch 的包频道(channel)中下载。(cuda 11.1及之后的版本才支持30系显卡)
当然更加通用的方法是在anaconda包官网上进行检索:
输入关键词”cuda”:

使用conda在linux搭建pytorch和tensorflow的GPU运行环境
检索结果如下:
使用conda在linux搭建pytorch和tensorflow的GPU运行环境
挑选一个,这里可以选择下载量最高的 conda-forge 的cudatoolkit,点击后页面会自动生成安装的命令:
使用conda在linux搭建pytorch和tensorflow的GPU运行环境
可以通过在 cudatoolkit 后加 =11.3 来限定下载版本。

; cuDNN

方法与cudatoolkit雷同,写本文时不推荐使用nvidia的,目前nvidia的频道版本不是最高的,其实包括cudatoolkit也不推荐下载nvidia版本。
此外推荐下载的还有TensorRT,也可以用类似的方法通过conda下载,但是笔者没有下载。

设置环境变量

在设置之前,根据自己的情况定义一些需要替换的名词:

[En]

Before setting up, define some nouns that need to be replaced according to your own situation:

  1. 将Tensorflow的conda虚拟环境记住 envoftf(可以和torch同环境,在torch环境搭建后仅需安装cuDNN即可)
  2. conda 的安装目前 CondaPath,miniconda的默认安装目录是: ~/miniconda3,这里使用绝对路径。

完成上述步骤后仍然是不可以使用tensorflow的gpu的,在官方教程中提到需要设置一个环境变量:

使用conda在linux搭建pytorch和tensorflow的GPU运行环境
(1) 找真正的lib路径
不能直接使用官网提供的,因为使用的是conda,实际这些包并不在 /usr/local/cuda/extras/CUPTI/lib64,可以通过两种方式找到:
(a) 根据规律拼接出目录: CondaPath/envs/envoftf/lib 这里的 CondaPathenvoftf 需要自行替换
(b) 利用 find 命令:
find CondaPath -name libcu*.so* | xargs dirname | head -n 1

(2) 设置conda环境变量,并重新激活环境(conda activate envoftf)

conda env config vars set LD_LIBRARY_PATH=(1)中获得路径

测试tensorflow

python -c "import tensorflow as tf;print(tf.config.list_physical_devices('GPU'))"

返回设备列表,检测GPU数量是否和实际安装的一直。

国内换源相关

和选择conda的镜像一样,选择离稳定且离自己近的镜像源,这里仍然是使用南京大学的镜像.

这里讲解如何获得换源的设置,以ubuntu18.04的apt包源替换为例。

apt 换源

进入mirror的帮助界面:

使用conda在linux搭建pytorch和tensorflow的GPU运行环境
不同的镜像站点有助于放置在不同的位置,南京大学位于主页顶部,清华大学位于主页右下角的相关链接中:
[En]

Different mirror sites help to be placed in different locations, with Nanjing University at the top and Tsinghua University in the relevant links at the bottom right of the home page:

使用conda在linux搭建pytorch和tensorflow的GPU运行环境
进入帮助界面后选择ubuntu,按照里面的描述进行修改即可,清华的比较方便,支持ubuntu版本的选择,而南大需要自己手动修改对应版本名。
最好在修改配置之前备份以前的配置:
[En]

It is best to back up the previous configuration before modifying the configuration:

sudo mv /etc/apt/sources.list /etc/apt/backup.sources.list

如果是其他发行版本的linux,则需选择对应的即可,conda换源也是如此,已经在macos常用的homebrew也是有的.

Original: https://blog.csdn.net/weixin_48387678/article/details/124432105
Author: 孙策伯符
Title: 使用conda在linux搭建pytorch和tensorflow的GPU运行环境

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/497548/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球