全新Ubuntu服务器配置
序
最近购买了一台新的服务器,为了方便我们的实验,需要对服务器进行配置。 本文记录了从空白服务器安装ubuntu服务器版本的全过程。 仅供您参考。
在开始本教程之前,我们需要解释一些事情。 由于我们购买的是 Supermicro X11 主板,并且所处环境比较特殊,所以有几件事需要提前说明。 有两点需要注意:1.安装ubuntu服务器版时,记得在下载源处更改国内源(建议使用清华源),并使用不需要认证的网线,否则安装会报错!2.服务器使用F11键进入启动盘或BIOS配置界面。
(本文档只针对ubuntu-server版本的安装)
Anaconda
安装
在非GUI界面我们使用命令行安装Anaconda3。
由于其服务器在国外,使用Anaconda3原网站下载程序会比较慢。 使用国内源下载,先找到镜像,选择需要的版本。
清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
选择2021.11发布的64位版本。
Anaconda3-2021.11-Linux-x86_64.sh
对下载的文件进行sha256sum验证。(可跳过)
对应的hash可以在Anaconda 官方文档中找到.
如图sha256验证,fedf9e340039557f7b5e8a8a86affa9d299f5e9820144bd7b92ae9f7ee08ac60
启动安装程序,bash后面跟着下载的文件脚本,会出现如下界面。
按ENTER键阅读协议,阅读后提示是否接受协议。
输入yes同意协议条款
Anaconda3 will now be installed into this location:
/home/linuxize/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
同意后会出现安装提示。 可以选择直接回车安装默认目录,也可以自己指定安装路径。 一般默认安装就够了。 安装完成后等待提示。
Installation finished.
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
同意后,程序会将命令行工具conda添加到系统的PATH环境变量中。
要激活 Anaconda,您可以通过在当前 shell 会话中输入以下命令来关闭并重新打开 shell 或重新加载 PATH 环境变量:
source ~/.bashrc
Anaconda3 安装完毕。
更新
conda update –all
你可以在未来使用说明更新您的 Anaconda3。
卸载
如果要从 Ubuntu 系统中卸载 Anaconda,请删除 Anaconda 安装目录和安装过程中创建的其他文件:
rm -rf ~/anaconda3 ~/.condarc ~/.conda ~/.continuum
删除文件夹后,可以继续清理 .bashrc 中的Anaconda路径:
sudo gedit ~/.bashrc
在.bashrc文件的最后,用#号注释掉之前添加的路径(或者直接删除):
#export PATH=/home/lq/anaconda3/bin:$PATH
保存并关闭文件。
要使其立即生效,请在终端中执行:
source ~/.bashrc
关闭终端,然后重启一个新的终端,这一步很重要,否则 anaconda3 还是会绑定到原来的终端上。
NVIDIA驱动
Software and hardware information |
---|
Operating System:Ubuntu20.04 |
Graphics Processor:GeForce RTX 3090 |
根据显卡型号3090, 到 NVIDIA官方网站 下载相应的驱动程序。 这里选择的配置如下,选择的是470.94版本。
通过下载按钮找到对应文件的下载链接。
由于没有用于连接远程服务器的 GUI,这里是在其他计算机上找到它。 获取 URL 后,使用 wget 下载远程服务器中的文件。
这里得到的 链接 如下, 你可以使用 wget 下载它 。
(由于服务器端直接配置,所以没有截图)
1 卸载NVIDIA驱动
sudo apt-get remove –purge nvidia*
2 进入计算机的 BIOS 并将 Security Boot 设置为 Disabled
如果没有禁用安全启动,可能会导致 Nvidia 驱动程序安装不正确。
3 进入计算机的 BIOS 并将 Security Boot 设置为 Disabled
事实上,ubuntu 使用的是开源的 nouveau 驱动作为 NVIDIA 图形处理器的驱动,需要禁用。
打开配置文件进行编辑:
sudo vim /etc/modprobe.d/blacklist.conf
4 在最后一行添加:
blacklist nouveau
这个是用来禁用 nouveau 驱动的,以后不用改回来。
5 由于nouveau是内置在内核中的,所以执行如下命令生效:
sudo update-initramfs -u
6 重启
Reboot
7 重启后可以看到nouveau是否在运行:
lsmod | grep nouveau
无输出表示禁用已生效。
8 给驱动文件添加可执行权限:
sudo chmod a+x NVIDIA-Linux-x86_64-460.32.03.run
9 运行 NVIDIA-Driver 前,必须安装 gcc、g++、make 等编译环境
Sudo apt install gcc
Sudo apt install g++
Sudo apt install make
10 安装
sudo sh ./NVIDIA-Linux-x86_64-460.32.03.run –no-x-check –no-nouveau-check –no-opengl-files
然后按照安装说明完成。
安装完成后重启,使用nvidia-smi验证是否安装成功。
安装CUDA
安装
(如果先安装了NVIDIA-DRIVER,可以注意是否安装了CUDA。 如果在 /usr/local 下输入命令 stat cuda 显示 CUDA 已安装,则可以跳过安装 CUDA 或按照以下教程安装多个版本的 CUDA。)在下载 CUDA 之前,您需要匹配您的图形处理器的计算能力。 下图是对应算力图形处理器版本和CUDA版本的对应表。 请在官方网站查看最新版本。
为了对应之前配置的服务器,这里选择CUDA 11.4.0版本。
检查该版本 CUDA 在官网的下载链接,并且并根据您的服务器配置进行选择。
这里选择runfile类型的安装文件,以便以后设置各个cuda的安装路径。
得到的安装指令如下,输入相应的 CUDA 安装指令。
wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run
安装相关依赖,否则可能会报错,否则会出现 缺少相关库
的错误。
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
开始运行安装 cuda 程序。
sudo sh cuda_11.4.0_470.42.01_linux.run
接受上述协议: accept。
由于已经安装了NVIDIA驱动,取消驱动安装,检查安装。
由于之前已经安装了10.1版本的CUDA,如果需要使用新的CUDA版本,选择Yes,会将CUDA软链接指向最新的11.4版本,否则只会安装一个CUDA版本,可以重置软链接,稍后链接自己需要的CUDA版本,等待安装,需要一定的时间。
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-11.4/
Samples: Installed in /home/rtx-3090/
出现如上的提示信息即表示安装完成,但记得查看提示信息中是否还有其他警告。
最后需要配置CUDA相关的环境变量。
vim ~/.bashrc
#在文件末尾添加如下条目。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
注意:安装过程中注意cuda符号链接的选择(第一次安装选择y,其他版本选择n)
CUDA版本切换
可以使用stat命令查看当前cuda软链接指向哪个cuda版本,如下:
可以看出cuda文件类型是符号链接,指向的目录是/usr/local/cuda-11.4。 当我们要使用cuda-10.1版本的时候,只需要删除软链接,然后重新建立指向cuda-10.1版本的软链接就足够了(注意名字还是cuda,因为它 应与 bashrc 文件中的设置一致)。
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda
如果要切换到其他版本的cuda,只需要在创建软链接时更改cuda的正确路径即可。
安装cuDNN
下载CUDA对应的cuDNN。 这里选择下载CUDA11.4的8.2.4版本(下载前需要登录注册)。
由于需要注册,所以直接在其他电脑上下载后使用WinSCP将文件传输到服务器。
如果存档不是 .tgz 格式,请将存档重命名为 .tgz 格式。
sudo tar -zvxf cudnn-11.4*.tar.gz
将当前包解压为.tgz格式,解压后的文件夹名为cuda,文件夹包含两个文件夹:一个是include,一个是lib64。
将相关文件复制到CUDA路径,同时提升文件权限。
然后在/usr/local下重新建立cuda软链接。
cd /usr/local
sudo rm -rf cuda
sudo ln -s cuda-11.1 cuda
新版本查看cuDNN的方法。
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
如果显示以上信息,则安装成功。
也可以使用 torch.cuda.is_available() 在深度学习环境中进行测试
其他问题
问题:服务器ssh一段时间后自动中断,无法再次连接。 必须重新启动服务器。 原因是服务器设置为自动挂起。
(注意这里只适用于ubuntu服务器,不需要图形界面,也不需要对图形界面进行特殊考虑和验证! 依赖图形操作界面的读者慎用!)
输入命令:
systemctl status sleep.target
加载后可以找到。 表示启用了自动休眠。
输入命令:
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
禁用它。
输入命令:
systemctl status sleep.target
表示禁用成功。
问题:nvcc 和 stat cuda 不一致。
当我们使用nvcc –version和stat cuda分别查询时,两者显示的cuda版本不一致,nvcc的cuda版本一致且不变。
原因是nvcc指向系统默认的nvidia-cuda-toolkit位置,如下图所示。
所以当我们使用nvcc –version查看版本时,与stat cuda显示的版本不一致,但实际上已经切换成功。
所以我们需要将nvcc指向的默认cuda-toolkit改成指向我们的cuda-toolkit安装位置。
sudo vim /usr/bin/nvcc
exec /usr/local/cuda/bin/nvcc
修改完成后,可以成功使两者显示的内容一致,不一致可能会导致一些意想不到的错误。
静态ip配置
在Ubuntu18.04中,传统配置/etc/network/interfaces没用,新的网络配置文件在:/etc/netplan/50-cloud-init.yaml
sudo vim /etc/netplan/50-cloud-init.yaml
使用vim编辑文件,注意格式,冒号后面有个空格。
network:
ethernets:
eno2:
dhcp4: false
addresses: [192.168.37.188/24]
gateway4: 192.168.37.2
nameservers:
addresses: [114.114.114.114,8.8.8.8]
version: 2
eno2:你当前的网卡名称;
dhcp4:ipv4接口的dhcp开关,false为关闭,true为开启;
地址:静态IP地址/掩码;
gateway4:ipv4网关;
nameservers:DNS服务器,逗号分隔;
编辑好后保存配置文件,执行命令重启网络服务生效。
sudo netplan apply
参考资料
Anaconda3 安装 https://cloud.tencent.com/developer/article/1649008
Anaconda3 卸载 https://blog.csdn.net/Rocky6688/article/details/103032620/
英伟达驱动 https://blog.csdn.net/TracelessLe/article/details/112687973
CUDA和NVIDIA驱动版本对应表 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
CUDA官方网站 https://developer.nvidia.com/cuda-downloads
Inconsistency between nvcc –version and stat cuda version https://www.cnblogs.com/hf19950918/p/14707662.html
nvcc –version 和 stat cuda 版本不一致 https://developer.nvidia.com/rdp/cudnn-archive
cuDNN查询方法 https://www.pianshen.com/article/72642069842/
解决服务器自动挂起的问题 https://blog.csdn.net/happywlg123/article/details/121244526
静态ip配置 https://www.cnblogs.com/hkleak/p/12904986.html
免责声明:本文档的主要目的是记录配置过程以供将来参考。 以上步骤来源于各种尝试,只能证明适用于我使用的软硬件环境,不一定通用。 请自行判断是否参考和使用,由此产生的风险自负。