基于LXD搭建实验室GPU服务器(二)——宿主机的深度学习环境安装

发布时间 2023-08-27 14:30:32作者: treasurew_wang

在上一篇博客中,我们介绍了服务器的基本配置,例如换源、sshd配置、防火墙配置等。

在本文中,我们将继续介绍如何在宿主机配置基本的深度学习环境,包括nvidia驱动,cuda,anaconda,torch等。

nvidia驱动和cuda环境配置

下载cuda

cuda的历史版本链接如下,这里选择服务器对应平台的runfile文件下载,下载链接为:

https://developer.nvidia.com/cuda-toolkit-archive

image

命令行中运行图片中的第一条指令

# 下载runfile文件
wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run

关闭图形界面

如果使用的是桌面版的ubuntu,建议关闭图形界面后,在tty界面或者通过ssh连接进行驱动的安装和卸载,关闭和开启图形界面指令如下:

# 关闭图形界面
sudo systemctl set-default multi-user.target
sudo reboot

# 开启图形界面
sudo systemctl set-default graphical.target
sudo reboot

删除驱动和cuda残余文件

sudo apt-get --purge remove nvidia-*
sudo apt-get --purge remove "*nvidia*"
sudo apt-get remove cuda
sudo apt autoremove
sudo apt-get remove cuda*

禁用nouveau

# 编辑blacklist.conf文件
sudo vim /etc/modprobe.d/blacklist.conf

# 将以下两行加入文件末尾
blacklist nouveau
options nouveau modeset=0

# 重新生成initramfs
sudo update-initramfs -u

安装cuda

进入cuda的runfile文件目录,运行文件。
如无特殊要求,不要将驱动前面的x去掉,直接install就好。
一些博客中提到建议安装驱动时加上–no-opengl-files的选项,该选项可以在cuda安装时options-driver里面勾选相关选项,但是博主并未勾选,也没出现问题。
输入以下指令运行安装文件

sudo sh cuda_11.6.0_510.39.01_linux.run

如果没有特殊需求,直接选择Install即可,若要进行驱动安装选项的修改,流程如下:

可以去掉Driver前面的[X]选择不安装驱动,也可以在Options里对驱动安装选项进行配置
image

此处选择Driver Options
image

以下的三个选项分别为:

  1. 不安装OpenGL相关文件,对应安装驱动的–no-opengl-files选项。
  2. 不安装nvidia-drm内核模块,该选项可能在容器安装cuda和驱动时会用到,对应安装驱动时的--no-kernel-module选项。
  3. 更新X config file,不知道有什么用,与我们无关,安装显卡驱动时也会有该选项。
    image

后续一路确认即可完成cuda安装

添加环境变量

此时输入nvidia-smi应该会跳出显卡状态的面板,但是输入nvcc -V会显示无该命令,我们需要添加环境变量。

# 修改用户目录下的bashrc文件
vim ~/.bashrc

# 在末尾添加
export PATH=/usr/local/cuda-11.6/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64

# 激活环境变量
source ~/.bashrc
# 查看cuda版本
nvcc -V

# 输出类似以下的信息则表示cuda安装成功,环境变量配置成功
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Fri_Dec_17_18:16:03_PST_2021
Cuda compilation tools, release 11.6, V11.6.55
Build cuda_11.6.r11.6/compiler.30794723_0

# 测试驱动
nvidia-smi

# 输出类似以下的信息则表示驱动安装成功
Sat Aug 26 22:54:25 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:02:00.0 Off |                  N/A |
| 91%   75C    P2   343W / 350W |  12493MiB / 24576MiB |    100%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  On   | 00000000:04:00.0 Off |                  N/A |
| 41%   52C    P8    22W / 350W |      2MiB / 24576MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   2  NVIDIA GeForce ...  On   | 00000000:83:00.0 Off |                  N/A |
| 40%   34C    P8    19W / 350W |      2MiB / 24576MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   3  NVIDIA GeForce ...  On   | 00000000:84:00.0 Off |                  N/A |
| 40%   34C    P8    22W / 350W |      2MiB / 24576MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A   1004834      C   python                          12491MiB |
+-----------------------------------------------------------------------------+

Anaconda环境配置

Anaconda安装文件下载

由于网络问题,建议去国内镜像下载Anaconda安装文件,清华镜像链接为:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D

可以下载文件上传至服务器,也可以在服务器上通过wget下载,例如:

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.07-2-Linux-x86_64.sh

此时可能会报403之类的错误,这可能是因为一些反爬虫措施带来的,我们可以加个请求头来解决该问题

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.07-2-Linux-x86_64.sh -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

Anaconda安装

不要使用sudo来运行该文件,否则anaconda默认安装在/root/anaconda3目录下,用起来很麻烦,设置安装路径或许可行,但没必要搞那么麻烦。
输入以下指令来运行安装文件:

bash Anaconda3-2023.07-2-Linux-x86_64.sh

# 输入1
In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>> [Enter] # 回车

# 输入2
Do you accept the license terms? [yes|no]
[no] >>> yes # 接受

# 输入3
Anaconda3 will now be installed into this location:
/home/ubuntu/anaconda3
[/home/ubuntu/anaconda3] >>> [Enter] # 默认安装路径

# 输入4
installation finished.
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>> yes # 初始化

运行过程中会先让你摁回车阅读license,然后看完license输入yes表示接接受。
然后会让你选择安装路径,默认在用户目录下,但如果使用的是sudo,则会默认安装在/root/anaconda3目录下。
路径没错的话,我们摁回车等待安装即可。

激活base环境

source ~/anaconda3/bin/activate

# 此时用户名前会出现(base)
(base) ubuntu@ubuntu:~/Downloads$

由于网络问题,此处依然建议换源,命令如下:

# 添加清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

# 删去默认源
conda config --remove channels defaults

# 检查是否换源成功
conda config --set show_channel_urls yes
conda info

# 重置源为默认源
conda config --remove-key channels
# 我们可以通过以下指令创建虚拟环境
conda create -n <venv_name> python=<python_version>

# 激活虚拟环境
conda activate <venv_name>

至此,anaconda安装完成

pytorch环境安装

同样,由于网络问题,建议手动下载pytorch,离线安装。pytorch历史版本链接如下:

https://pytorch.org/get-started/previous-versions/

请注意pytorch版本是否兼容对应版本的cuda,并根据用途选择GPU或CPU版本的pytorch。我们选择合适版本的.whl文件后下载后上传至服务器,使用pip进行离线安装

# 在哪个环境运行就在哪个环境安装
pip install ./torch-1.13.1+cu116-cp38-cp38-linux_x86_64.whl

简单测试下pytorch是否安装成功

pip list |grep torch

(base) ubuntu@ubuntu:~$ conda activate testenv
(testenv) ubuntu@ubuntu:~$ python
Python 3.8.10 (default, Jun  4 2021, 15:09:15) 
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True # cuda可用
>>> torch.cuda.device_count()
4 # 有4个GPU