目录
背景
服务器配置
一、安装Ubuntu
二、安装NVIDIA驱动
1. 查看显卡硬件型号
2. 从 NVIDIA 官网下载最新版驱动手动安装
3.安装NVIDIA显卡的相关依赖
4.关闭Nouveau驱动
5.安装Openssh
6.安装下载的NVIDIA驱动
三、安装Docker
1.更换阿里镜像源
2.安装Docker
3.安装NVIDIA-Docker2
4.配置Docker
使用Anaconda安装Pytorch
1.下载Anaconda
2.安装Anaconda
3.安装Pytorch
背景
实验室有两台空闲的RTX2070super,所以想把一台改成GPU服务器,能让多人共同使用GPU资源而不相互干扰,同时系统资源分配比较灵活。经过一番踩坑,终于搭建了成功了,这里记录一下搭建的步骤。
我选择的是最新的Ubuntu 20.04.3 LTS,先在官网下载Ubuntu的镜像,再使用Ubuntu官方推荐的Rufus工具把镜像文件创建成USB安装盘。在把U盘作为系统安装盘之前需要把U盘里的原本的东西备份下,因为作为系统安装盘需要先格式化U盘。
之后把U盘插在服务器的电脑上,在开机时进入BIOS,根据不同的主机牌子,按ESC、F2、F12可以进入BIOS,进入后直接选择使用U盘启动,然后等待安装完成就可以了。
Ubuntu官网下载地址:Download Ubuntu Desktop | Download | Ubuntu
Rufus下载:Rufus - 轻松创建USB启动盘
这是Ubuntu官方使用Rufus的教程:Create a bootable USB stick on Windows | Ubuntu
输入下面的命令,可以查看自己的显卡型号,model后面的是显卡型号。
ubuntu-drivers devices
知道自己显卡型号后就可以去NVIDIA官网下载显卡对应的驱动了,我的显卡是NVIDIA 2070 Super,所以我这里选择GeForce RTX 20 系列,然后选GeForce RTX 2070 Super,操作系统选Linux 64位,然后点击开始搜索。搜索到该系列所有的驱动版本后,选择你需要的版本下载,我这里选择的是最新的驱动版本。下载完成后暂时先不要安装,放在一边。
NVIDIA驱动下载官网:官方 GeForce 驱动程序 | NVIDIA
需要64位系统对32位的支持,在终端依次执行如下命令:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install build-essential libc6:i386
Ubuntu 系统默认安装好是使用的一个开源的驱动:Nouveau,首先说明下什么是Nouveau。Nouveau是由第三方为NVIDIA显卡开发的一个开源3D驱动,虽然没能得到NVIDIA的认可与支持,但是确实让Linux更容易的应对各种复杂的NVIDIA显卡环境。所以,很多Linux发行版默认集成了Nouveau驱动,我们要安装NVIDIA的官方驱动就需要先禁用这个开源驱动,不然就会提示“ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver……”之类的错误。
禁用的方法如下,依次执行下面两条语句:
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
执行完上面两条指令后,我们使用cat命令查看我们在blacklist-nvidia-nouveau.conf文件中的
写入,查看是否成功禁用了nouveau,如果和下面一样,表示成功了。
$ cat /etc/modprobe.d/blacklist-nvidia-nouveau.conf
blacklist nouveau
options nouveau modeset=0
在禁用nouveau之后,需要重启系统才能使禁用生效。但是重启时,由于本身用于图形显示的驱动被我们禁用了,就会出现进入不了Ubuntu的图形化桌面,一直黑屏,在左上角有条白线一直闪烁的问题。
在网上找了很多办法解决,操作起来都很麻烦,而且也没有成功。我发现黑屏的时候虽然没有图形化界面,但是是可以用别的电脑通过ssh访问这台电脑的,所以我们在重启之前先安装Openssh。安装步骤如下:
更新源列表
sudo apt-get update
安装openssh
sudo apt-get install openssh-server
查看ssh服务是否启动
sudo ps -e |grep ssh # sshd服务是否开启,开启说明启动成功
安装完后,通过ifconfig可以看到这台计算机的IP地址,然后我们直接reboot重启。
重启后,如果出现了我们上面说的那种黑屏的情况,就使用另一台计算机通过ssh访问这台计算机,在另一台Windows电脑的终端里输入下面命令链接到我们要配置服务器的这台电脑:
ssh Ubuntu的用户名@Ubuntu电脑的IP地址
输入用户名对应的密码
链接到服务器的电脑上后,进入到刚才下载的NVIDIA驱动目录下,执行下面的命令,安装驱动:
sudo bash 下载的.run驱动名字
安装过程中会遇到下面的提示:
安装完后reboot重启服务器,等待重启后,应该就可以进入图形界面了,因为现在有了新的显卡驱动。使用命令 nvidia-smi 可以验证NVIDIA驱动有没有安装成功,出现下面的界面就是安装成功了。
在Ubuntu上安装Docker文档:Install Docker Engine on Ubuntu | Docker Documentation
我这里没有使用Docker官方的文档,因为官方的文档里的源地址在国内使用太慢了,所以这里换了阿里的源,换源的方法:
备份sources.list(Ubuntu恢复文件很复杂,尽量避免直接删除系统文件):
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
修改sources.list,并替换阿里云镜像源:
sudo gedit /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
更新
sudo apt-get update
更新apt
包索引并安装包以允许apt
通过 HTTPS 使用存储库:
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
添加Docker官方GPG key
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
验证key的指纹
sudo apt-key fingerprint 0EBFCD88
添加稳定版repository
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
更新apt包索引
sudo apt-get update
安装最新版本的Docker CE
sudo apt-get install -y docker-ce
验证Docker CE正确安装
sudo docker run hello-world
添加repositories,依次执行下面的命令:
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
安装nvidia-docker2并重新载入daemon.json
sudo apt-get install -y nvidia-docker2
重新加载docker守护程序配置
sudo pkill -SIGHUP dockerd
加入docker组,以允许非root用户免sudo
执行docker
命令
sudo gpasswd -a 用户名 docker
如果不重启并重连ssh客户端的话,需要手动重启服务并刷新docker组成员
sudo service docker restart
newgrp - docker
Docker换源,换存储路径,限制容器日志大小,先备份daemon.json
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
修改daemon.json
sudo gedit /etc/docker/daemon.json
安装完nvidia-docker后,daemon.json中的默认应该是这样的配置
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
修改默认运行时为nvidia-docker,添加国内源,修改存储位置为/home/docker
,限制日志大小后daemon.json为
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"registry-mirrors":[
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"data-root": "/home/docker",
"log-opts": { "max-size": "50m", "max-file": "1"}
}
保存退出,并在/home下建立docker文件夹
cd /home
sudo mkdir docker
创建好后,重启使配置生效
reboot
重启后使用docker info
查看是否修改成功,输出信息应该和下面的差不多
...
Docker Root Dir: /home/docker
...
Registry Mirrors:
https://kfwkfulq.mirror.aliyuncs.com/
https://2lqq34jg.mirror.aliyuncs.com/
https://pee6w651.mirror.aliyuncs.com/
https://registry.docker-cn.com/
http://hub-mirror.c.163.com/
...
Anaconda官网下载地址:Anaconda | Individual Edition
选择Linux 64位的就可以下载就可以了
进入到刚才下载好的文件夹下,执行下面的命令运行安装:
bash Anaconda3-2021.11-Linux-x86_64.sh
安装过程中有询问你是否安装的,输入yes
安装完成后,收到加入环境变量的提示信息,输入yes
安装完后重启即可使用conda命令
reboot
Pytorch官网:PyTorch
在Pytorch的官网,选择你要安装的平台和CUDA的版本,就可以找到使用anaconda安装pytorch的命令
执行这一条命令就可以了,会帮你安装好pytorch和其他需要的包,接下来就是等待下载和安装。
安装完成后,输入conda info --envs查看是否安装成功
至此,所需要的环境都安装成功了。
参考博客:使用Docker搭建实验室共享GPU服务器_技术杂谈-CSDN博客_docker实验室服务器