搭建个人深度学习工作站(环境篇)

前言

  • 硬件配置

    • 主板:华硕 TUF GAMING B560M-PLUS WIFI

    • CPU:Intel i7-11700 @ 2.50GHz 8核16线程

    • 内存:英睿达 美光32GB(16Gx2)套装 DDR4 3600MHz

    • GPU:NVIDIA RTX 3080Ti

    • 硬盘:

      • Samsung SSD 980 1TB x 2
      • WDC WD20EZBX-00A 2TB
    • 电源:长城 猎金部落 额定1100W G11金牌全模

  • 操作系统:Ubuntu Server 22.04

概述

根据李沐老师的视频,有三种环境安装方式:

  1. CUDA + conda PyTorch
  2. NVIDIA driver + conda PyTorch
  3. NVIDIA driver + NVIDIA Docker

第一种方案:首先从官网上下载 CUDA 大礼包进行系统级别的安装,随后在各个 conda 环境内安装 PyTorch. 大礼包的内容非常全,但如果嫌里面的驱动版本不够新,也可以先单独安装驱动,然后在安装大礼包时把驱动勾掉即可。这个方案的劣势是所有环境都用这个 CUDA,可能会产生一些版本问题。

第二种方案(我选择使用的方案):在系统层面上只安装驱动,在 conda 环境里安装 PyTorch 时顺便安装 CUDA. 好处是 CUDA 也在环境里,版本容易控制,坏处是多消耗一些空间,并且安装的 CUDA 可能不是那么全。

第三种方案:和第二种差不多,在系统层面上只安装驱动,然后开 Docker 容器安装 PyTorch、CUDA 等。

安装 NVIDIA Driver

  1. 禁用 nouveau

    Ubuntu 系统集成的显卡驱动程序是 nouveau,它是第三方为 NVIDIA 开发的开源驱动,我们需要先将其屏蔽才能安装 NVIDIA 官方驱动。 所以我们要先把驱动加到黑名单 blacklist.conf 里。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # 修改属性
    sudo chmod 666 /etc/modprobe.d/blacklist.conf
    # 用 vim 打开
    sudo vim /etc/modprobe.d/blacklist.conf
    # 在最后一行加入以下几句,保存退出
    blacklist vga16fb
    blacklist nouveau
    blacklist rivafb
    blacklist rivatv
    blacklist nvidiafb
    # 对刚才修改的文件进行更新
    sudo update-initramfs -u
    # 记得重启计算机,打开终端检查 nouveau 是否被禁用
    lsmod | grep nouveau
    # 若执行完该句,没有任何输出,则 nouveau 被成功禁用
  2. 卸载旧的驱动

    如果你是第一次安装 GPU 驱动,这一步可以省略。

    1
    sudo apt-get remove --purge nvidia*
  3. 安装 gcc

    必须先安装 gcc,才能安装 GPU 驱动。

    1
    2
    sudo apt-get install build-essential # 安装gcc,不要怀疑,就是 build-essential
    gcc --version # 检查gcc是否安装成功,Default GCC 9.3

    这里只安装了gcc,GPU 驱动就可以成功安装了,如果你执行到下面,提示你 make、g++ 没有安装的话,再回来执行以下语句进行安装即可。

    1
    2
    sudo apt-get install g++
    sudo apt-get install make
  4. 下载对应版本的 GPU 驱动

    根据你的显卡类型选择合适的 .run 文件下载,官网下载链接(速度较快,可直接使用)

  5. 安装驱动

    1
    2
    3
    4
    5
    6
    7
    8
    # cd 到 .run 文件所在位置
    cd xxx
    # 修改权限
    sudo chmod a+x NVIDIA-Linux-x86_64-xxx.run
    # 执行安装,过程中根据提示,选择 yes 等
    sudo ./NVIDIA-Linux-x86_64-xxx.run -no-x-check -no-nouveau-check -no-opengl-files
    # 执行此语句,出现显卡信息则证明安装成功。
    nvidia-smi

安装 Anaconda

  1. 官网下载 .sh 文件后,bash 运行即可

  2. [Optional] 区分 Ubuntu 自带 python 和 anaconda 中的 python

    Ubuntu22.04 中自带 python3,为方便起见,我们可以做一定的区分。在 ~/.bashrc 文件最后加入以下命令:

    1
    2
    alias python3="/usr/bin/python3"  # 给系统自带的python起一个别名,就叫python3
    export PATH="/home/jason/anaconda3/bin:$PATH" # anaconda3中的python

    然后 source 一下让修改发生作用:

    1
    source ~/.bashrc

    这样,输入 python3 时会自动替换为 /usr/bin/python3,即使用系统自带的 python;而直接输入 python 则是用当前环境下的 python.

  3. [Optional] 每次打开终端时,conda 会默认自动激活 base 环境,在命令提示符前有 (base) 标志。强迫症表示这太难看了,可以用以下命令禁止自动激活:

    1
    conda config --set auto_activate_base False

安装 PyTorch

激活 conda 环境,根据官网命令安装:

1
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge

可以看到安装的东西除了 pytorch 以外,还有 cudatoolkit. 由于我们采用的是概述中的方案二,即没有在系统层面安装 CUDA,因此在该环境下我们将使用这时下载的 CUDA.

我试过 pytorch 1.13 版本,命令行中的 cudatoolkit 变成了 pytorch-cuda,但安装之后没能成功运行。


搭建个人深度学习工作站(环境篇)
https://xyfjason.github.io/blog-main/2022/12/11/搭建个人深度学习工作站(环境篇)/
作者
xyfJASON
发布于
2022年12月11日
许可协议