Linux裸机配置驱动,CUDA,Docker,Nvidia-Docker

裸机配置深度学习环境

只有网络功能,先挂载磁盘至/data

安装GCC

1
sudo apt install build-essential

安装Nvidia驱动

  1. 查看显卡型号(4位16进制数)
1
lspci | grep -i vga

  1. 进入网站 https://admin.pci-ids.ucw.cz/read/PC/10de/ ,查询4位16进制数,得到显卡型号

  1. Nvidia官网下载对应版本的驱动(https://www.nvidia.com/en-us/drivers)文件 NVIDIA-Linux-x86_64-550.107.02.run,将文件放进/root目录下

  2. 安装驱动 sh /path/to/your/drivernvidia-smi正常使用即为安装成功

安装CUDA

  1. 检查CUDA版本:12.4,查看Linux版本:Ubuntu 22.04.4 LTS
  2. 进入网站 https://developer.nvidia.com/cuda-12-4-0-download-archive,找到对应版本的安装包,下载安装(自动重定向到国内源)。
1
2
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.runsudo 
sh cuda_12.4.0_550.54.14_linux.run
  1. ~/.bashrc文件中写入(路径可查看安装后的输出信息,一般为以下路径,更改cuda版本号即可):
1
2
export PATH=/usr/local/cuda-12.4/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

​ 并 source ~/.bashrc更新,使用nvcc -V,若显示版本信息,则安装成功。

安装AnaConda(一般不在宿主机运行Python…)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#下载annaconda
wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh

#安装annaconda,安装中需要键入ENTER或输入yes
bash Anaconda3-2022.05-Linux-x86_64.sh

#配置annaconda环境变量,将下面命令写入~/.bashrc文件中(或.bash_profile文件,因系统而异)
export PATH=/root/anaconda3/bin:$PATH

#重新加载用户主目录下的.bash_profile文件,使设置的变量生效
source ~/.bashrc
#或者
source .bash_profile

#初始化Conda shell,使得Conda环境能够在当前的Shell中正常运行
conda init

安装Docker/Nvidia-Docker

先安装正常的Docker

  1. 安装依赖:
1
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y
  1. 添加GPG密钥,设置stable仓库:
1
2
3
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
  1. 安装docker:
1
sudo apt install docker-ce docker-ce-cli containerd.io
  1. docker --version 检查无误即安装成功!

  2. 设置镜像源,进入 /etc/docker/daemon.json配置文件,添加:

1
2
3
4
5
6
7
8
9
{
"registry-mirrors": [
"https://dockerproxy.com/",
"https://hub-mirror.c.163.com/",
"https://mirror.baidubce.com/",
"https://ccr.ccs.tencentyun.com/",
"https://docker.rainbond.cc/"
]
}

为使Docker内可以正常使用GPU,Nvidia提供了改进版的Docker,Nvidia-Docker

  1. 配置存储库并更新包列表:
1
2
3
4
5
6
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
  1. 安装 NVIDIA Container Toolkit 软件包:
1
sudo apt-get install -y nvidia-container-toolkit
  1. 使用 nvidia-ctk 命令配置容器
1
sudo nvidia-ctk runtime configure --runtime=docker
  1. 重启Docker服务
1
sudo systemctl restart docker

测试Docker

1
2
3
sudo docker container run hello-world  # 测试docker

sudo docker run --gpus all --name test -it -v /home/user/:/workspace --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 ubuntu:22.04 bash # 测试nvidia-docker

启动后出现hello-world等信息,Docker即配置成功。

启动后若能正确查看GPU信息,Nvidia-Docker即配置成功。

注:非root用户执行docker命令时需要sudo权限,若不想每次都输入sudo,则可设置Docker权限后,重新登陆。

1
sudo usermod -aG docker $USER # 当前用户

参考资料

  1. https://blog.csdn.net/QQ896710872/article/details/136782475
  2. https://blog.csdn.net/magic_ll/article/details/139985543
  3. https://blog.csdn.net/qq_40647372/article/details/134940480