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

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

文章目录

  • 步骤总览:
  • 安装显卡驱动
    • 第一种:在可视化的界面中可以直接安装系统推荐的驱动
    • 第二种:命令行安装
    • 第三种:官网驱动安装(不推荐)
      • 下载驱动
      • 安装前准备工作
        • 下载编译基本环境
        • 屏蔽Nouveau
        • 关闭 X server
      • 安装驱动
  • 下载安装conda
    • 下载conda
    • 安装conda
    • 使用conda时可能遇到的问题
  • 配置pytorch环境
    • 创建新的环境
    • 安装cudatoolkit和pytorch相关包
    • 测试pytorch的gpu
  • 配置tensorflow环境
    • CUDA、cuDNN的conda安装
      • cuda
      • cuDNN
    • 设置环境变量
    • 测试tensorflow
  • 国内换源相关
    • apt 换源

步骤总览:

  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 # 找到自己想安装的版本xxx
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运行环境_第1张图片
(2) 选择你的显卡类型和操作系统,我是装有1080ti的ubuntu amd64位的操作系统,所以选择的是:GeForce 10series, GeForece GTX 1080ti; Linux 64-bit, 保险起见语言选择English.之后点击搜索,点击download(这里要点击download一次)

使用conda在linux搭建pytorch和tensorflow的GPU运行环境_第2张图片
(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运行环境_第3张图片

安装前准备工作

下载编译基本环境

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

安装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运行环境_第7张图片
复制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运行环境_第8张图片
检索结果如下:
使用conda在linux搭建pytorch和tensorflow的GPU运行环境_第9张图片
挑选一个,这里可以选择下载量最高的 conda-forge 的cudatoolkit,点击后页面会自动生成安装的命令:
使用conda在linux搭建pytorch和tensorflow的GPU运行环境_第10张图片
可以通过在 cudatoolkit 后加 =11.3 来限定下载版本。

cuDNN

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

设置环境变量

在设置之前先定义一些需要结合自己情况替换的名词:

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

完成上述步骤后仍然是不可以使用tensorflow的gpu的,在官方教程中提到需要设置一个环境变量:
使用conda在linux搭建pytorch和tensorflow的GPU运行环境_第11张图片
(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运行环境_第12张图片
进入帮助界面后选择ubuntu,按照里面的描述进行修改即可,清华的比较方便,支持ubuntu版本的选择,而南大需要自己手动修改对应版本名。
修改配置前最好备份原先配置:

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

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

你可能感兴趣的:(Linux,python,ubuntu,python,linux,tensorflow,pytorch)