高性能服务器配置经验指南2——深度学习准备(驱动安装,Anaconda安装,不同版本Cuda安装)
在,我们已经安装了必要的软件,建立好了不同用户,做好了远程连接和安全防护,接下来,就要为深度学习实验做准备了。
在 上一篇文章中,我们已经安装了必要的软件,建立好了不同用户,做好了远程连接和安全防护,接下来,就要为深度学习实验做准备了。
安装NVIDIA驱动
目前,深度学习的主流硬件是具有强大算力的显卡,而目前(2025/04)显卡依然还是NVIDIA一家独大的场面,它的强大不仅体现在性能上,更多的是软件、驱动等方面的生态更加完善,使用起来更方便。
而要使用显卡,首先就是安装驱动,我安装驱动的过程完全参考B站的这个视频:https://www.bilibili.com/video/BV1wY411p7mU/?p=6&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=59276a77a9319f21b7dec25b3f709fdb
大家跟着视频一步一步做,大概率不会出问题,如果因为版本问题,安装过程中的提示信息有所不同,直接百度也能很快得到解决。
也可以按照以下步骤实现:
联网换源
通过wifi或者网线的方式联网,并将将系统源改为国内镜像源。
更新安装
执行系统更新和升级操作:
sudo apt update # 更新软件包列表,获取最新的软件信息
sudo apt upgrade -y # 升级已安装的软件包到最新版本
然后安装必要的工具:
sudo apt install vim ssh dkms -y
比较重要的是dkms
,是动态内核模块支持,能在系统内核更新时自动重新编译 NVIDIA 驱动模块,避免内核更新后驱动失效。
禁用开源驱动 nouveau
NVIDIA 官方驱动与系统默认的开源 nouveau 驱动存在冲突,因此必须先禁用 nouveau。这是确保 NVIDIA 官方驱动正常安装和工作的关键步骤。
创建并编辑黑名单配置文件:
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
在文件中输入以下内容:
blacklist nouveau
options nouveau modeset=0
保存文件后,执行以下命令更新 initramfs,更新系统启动镜像,使刚才的黑名单配置生效。:
sudo update-initramfs -u
最后需要重启系统:
sudo reboot
重启后,nouveau 驱动将被彻底禁用,为安装 NVIDIA 官方驱动做好准备。
安装 NVIDIA 官方驱动
在NVIDIA驱动官网下载好与显卡型号对应的驱动文件,复制在服务器中,记好路径,在终端中进入驱动文件存储路径,为驱动安装文件添加可执行权限:
sudo chmod +x NVIDIA-Linux-x86_64-xxx.xx.run # 实际文件名可能不同,可用Tab键自动补全
执行安装程序:
sudo ./NVIDIA-Linux-x86_64-xxx.xx.run -no-x-check --dkms
选择NVIDIA Proprietary
:
选择: Continue installation
:
之后都选YES就行,装完后重启服务器。
想测试驱动是否安装好,在ubuntu中按Ctrl+Alt+T打开终端,输入命令:
nvidia-smi
如果出现以下提示,就说明驱动安装完成,否则肯定是有问题,需要看是不是硬件型号选择错误?驱动安装过程中出问题?这些问题现在通过询问大模型可以得到很好地解决:
大家可以记一下自己终端中如图中红框内的信息,这是你的服务器能够安装的最高版本的cuda,注意关键词:能够安装的、最高版本的,不是说现在电脑中安装的cuda就是这个版本,不要混淆。
如果想查看自己服务器现在安装的cuda是什么版本,可以先用这个命令安装suda工具包:
sudo apt install nvidia-cuda-toolkit
然后通过以下命令查看cuda版本:
nvcc --version
输入如下:
Anaconda安装
Anaconda 是一个开源的软件包管理和环境管理系统,主要用于简化 Python 软件包的安装和管理过程。它特别适合数据科学、机器学习及深度学习等领域的开发者使用。Anaconda 提供了一个易于使用的图形界面和命令行工具来管理库和环境,使得用户可以轻松地安装、更新、组织和删除所使用的工具包及其依赖项。
由于深度学习项目通常依赖于多个复杂的第三方库(如 TensorFlow、PyTorch、Keras 等),通过 Anaconda,这些库可以非常容易地被安装和维护,避免了手动安装时可能出现的各种兼容性问题。并且,Anaconda 支持创建独立的工作环境,这意味着我们可以为不同的项目创建各自的环境,并根据需要安装不同版本的库或 Python 解释器。这对于处理那些可能由于版本不兼容而导致的问题特别有用。
首先打开Anaconda官网,点击【Free Download】:
在这个界面输入邮箱,提交后就进入下载界面了:
安装完成后,打开安装包所在文件夹,右键后在菜单栏中选择【在终端打开】:
在终端输入命令:
sudo bash Anaconda3-2024.10-1-Linux-x86_64.sh
注意这里,输入sudo bash后,可以输一个An,并按键盘上的Tab键,终端会自动帮你补全后面的内容。回车即可开始安装:
该图像来源于:https://blog.csdn.net/KRISNAT/article/details/124041869
安装过程中需要注意两个地方,一个是确认安装位置:
图中最后一行括号中间的内容是默认安装位置,如果你在>>>后不填任何路径,系统就默认安装在默认安装位置,否则安装在你指定的路径下。
另一个需要注意的地方是配置环境变量的确认命令:
此处建议填no,我们自己配置环境变量。
我们希望达到的效果是每个用户都不需要自己重复安装conda,可以直接使用conda的相关命令,并且创建的环境env和包pkgs都存放在自己的目录下,这样就可以达到隔离的效果,彼环境之间不互相干扰。
首先,添加系统环境变量,为了对所有用户都成立,执行:
sudo vim /etc/bash.bashrc
在打开的文件末尾加入:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/opt/anaconda3/etc/profile.d/conda.sh" ]; then
. "/opt/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/opt/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
注意代码中/opt/anaconda3/xxx的路径,要改成自己安装的路径,不要无脑照搬。
打开/etc/profile也加一下环境变量:
sudo vim /etc/profile
在文件末尾加入,也注意路径不要无脑照搬哦:
export PATH=/opt/anaconda3/bin:$PATH
重新载入下配置文件应该就好了:
sudo source /etc/profile
正常情况下此时终端开头会多出一个小括号,代表conda的基础环境:
为了更快地安装各种第三方软件包,可以把conda的软件源换成清华源,新建配置文件:
sudo vim /opt/anaconda3/.condarc # 注意路径
输入:
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
envs_dirs:
- ~/.conda/envs
pkgs_dirs:
- ~/.conda/pkgs
保存退出即可完成软件源配置。
此处再介绍另一种为多用户配置anaconda的方法,即设置conda用户组:
首先创建conda用户组:
sudo groupadd conda
然后将需要使用conda的用户添加到该组:
sudo usermod -aG conda user1
sudo usermod -aG conda user2
最后更改Anaconda目录的权限:
sudo chown -R root:conda /opt/anaconda3
sudo chmod -R 775 /opt/anaconda3
这样就没问题了。
自定义虚拟环境的保存路径
服务器运行过程中,如果系统盘的空间不是很充足,那么通过上面的方法创建环境存储的文件夹,会将所有的虚拟环境都存储在系统盘中,造成系统的崩溃,所以我们可以通过以下方法自定义安装路径。
假如我们有一个新的固态硬盘可以用来存储虚拟环境,把它挂载为/Env:
# 括号中内容按照自己的情况调整
sudo mount /dev/nvme()n()p() /Env
安装好anaconda后,需要调整系统环境变量设置,打开配置文件:
sudo vim /etc/bash.bashrc
在文件结尾加入以下代码:
# 1. 配置 conda 环境和包的存储路径(按用户名隔离)
export CONDA_ENVS_PATH="/Env/envs/$USER" # 每个用户的环境存放在 /Env/envs/用户名
export CONDA_PKGS_DIRS="/Env/pkgs/$USER" # 每个用户的包缓存存放在 /Env/pkgs/用户名
# 2. 自动创建当前用户的专属目录(避免首次使用时目录不存在)
mkdir -p "$CONDA_ENVS_PATH" "$CONDA_PKGS_DIRS"
# 3. 原有 conda 初始化代码(保持不变)
# >>> conda initialize >>>
__conda_setup="$('/opt/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/opt/anaconda3/etc/profile.d/conda.sh" ]; then
. "/opt/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/opt/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
不同版本Cuda安装
在炼丹时,大部分同学可能都会遇到cuda版本不匹配的问题,这时候就需要安装合适版本的cuda,本文以cuda12.1为例。
再查看一次cuda版本:
nvcc --version
输入如下:
说明电脑现在的cuda版本是11.8。
安装合适版本的cuda,首先进入12.1版本的官网安装地址,按照服务器情况选择绿框中的内容,选好后在终端中输入安装命令:
下载安装包中。。。。
安装中。。。输入accept:
回车,取消安装驱动的选项,选择【Install】:
安装成功后提示:
查看环境变量:
sudo vi ~/.bashrc
在文件末尾加入:
export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}
重新激活配置文件:
source ~/.bashrc
输入nvcc --version
查看环境:
安装成功!
CuDNN安装
注意先确定版本对应关系,下载对应版本的cudnn,下载Local Installer for Linux x86_64 (Tar)
,解压:
tar -xvf cudnn-linux-x86_64-8.9.5.30_cuda11-archive.tar.xz
解压完成后,进行文件复制:
sudo cp cudnn-linux-x86_64-8.9.5.30_cuda11-archive/include/* /usr/local/cuda-11.8/include
sudo cp cudnn-linux-x86_64-8.9.5.30_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64
sudo chmod a+r /usr/local/cuda-11.8/include/cudnn.h
sudo chmod a+r /usr/local/cuda-11.8/lib64/libcudnn*
测试cudnn是否安装成功:
cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
安装成功的提示信息:
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
/* cannot use constexpr here since this is a C-only file */
安装成功!
希望该专栏对大家有帮助,欢迎纠错。
更多推荐
所有评论(0)