Ubuntu sever20.04 LTS版本GPU服务器深度学习环境配置

2022-11-14 11:02:30 浏览数 (2)

Ubuntu sever20.04GPU服务器深度学习环境配置

在非图形界面的Ubuntu server20.04的GPU服务器上配置环境,包括Nvidia驱动,cuda,cuDNN的安装,Anaconda的安装和开发环境创建。最好的参考文档是各软件的官方文档。

01

Nvidia驱动安装

1. 切换到root用户。

代码语言:javascript复制
su

2. 查看当前系统是否安装了dkms。

代码语言:javascript复制
dpkg -l | grep -i dkms

返回以下结果,则表示已经安装dkms。

若返回结果为空,则表明未安装dkms,执行以下安装。

代码语言:javascript复制
apt-get install dkms                              

3. 禁用nouveau驱动

编辑 etc/modprobe.d/blacklist-nouveau.conf 添加以下内容

代码语言:javascript复制
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

关闭nouveau:

代码语言:javascript复制
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

重新生成内核并重启:

代码语言:javascript复制
sudo update-initramfs -u
sudo reboot

再执行以下命令,没有输出说明禁用成功。否则,重复以上过程。

代码语言:javascript复制
lsmod | grep nouveau

4. 去Nvidia官网下载显卡驱动。

5. 选择特定版本下载,复制下载链接。

6. 使用wget,下载安装包。

代码语言:javascript复制
wget https://us.download.nvidia.com/tesla/470.129.06/NVIDIA-Linux-x86_64-470.129.06.run

Nvidia驱动版本,linux内核版本和cuda版本有一个对应关系,其都是基于cuda版本的系统要求,比如我的目标cuda11.4,查看其系统要求是:

一开始没太注意,我是基于ubuntu20.04 LTS安装的,并不是ubuntu20.04.2 LTS,不清楚这两个是否有区别,但是所需模块的版本是满足的,我最后装成功了。但是最好基于系统要求,希望不要为后续挖坑。

7. 执行以下命令,修改安装包权限。

代码语言:javascript复制
chmod  x NVIDIA-Linux-x86_64-xxxx.run

8. Nvidia驱动的安装需要依赖gcc和linux-kernel-headers,执行以下命令,检查系统是否安装gcc和kernel-devel包。

代码语言:javascript复制
dpkg -l | grep -i gcc
dpkg -l | grep -i linux-headers

返回以下结果,说明已经安装gcc和kernel-devel。

若返回结果为空,则未安装,执行以下命令安装。

代码语言:javascript复制
sudo apt-get install gcc linux-kernel-headers

9. 执行安装驱动程序,根据提示进行后续操作。

代码语言:javascript复制
sudo sh NVIDIA-Linux-x86_64-xxxx.run --ui=none --disable-nouveau --no-install-libglvnd --dkms -s

以上命令第一次我没有成功安装,报错如下:

大意是不支持在该内核上构建nvidia470.129.06模块

因为使用--dkms命令就会自动为驱动构建模块来管理,比如linux内核升级就会自动构建安装模块,否则会造成与内核版本不匹配的问题。

直接执行。也会提示是否构建模块,我选择了否,安装成功。

代码语言:javascript复制
sudo sh NVIDIA-Linux-x86_64-xxxx.run 

10. 安装完成后,执行以下命令验证。

代码语言:javascript复制
nvidia-smi

返回以下GPU信息,说明驱动安装成功。该界面显示的cuda版本是驱动能支持的最高版本

第一次安装后也遇到如下问题,可能是linux内核和驱动版本不匹配的原因,尝试多种方法后放弃了,按照以上流程重装成功。

02

cuda、cuDNN安装

  1. 在cuda驱动下载界面,选择相应版本下载。 https://developer.nvidia.com/cuda-toolkit-archive

2. 选择runfile(local)安装类型。

代码语言:javascript复制
wget https://developer.download.nvidia.com/compute/cuda/11.4.3/local_installers/cuda_11.4.3_470.82.01_linux.run
sudo sh cuda_11.4.3_470.82.01_linux.run

3. 重启系统。

4. 执行以下命令,配置环境变量。

代码语言:javascript复制
echo 'export PATH=/usr/local/cuda/bin:$PATH' | sudo tee /etc/profile.d/cuda.sh
代码语言:javascript复制
source /etc/profile

5. 执行以下命令,验证cuda安装是否成功。

代码语言:javascript复制
cd /usr/local/cuda-10.1/samples/1_Utilities/deviceQuery
代码语言:javascript复制
make
代码语言:javascript复制
./deviceQuery

如果结果显示返回Result=Pass,表示cuda安装成功。

若执行make命令后,出现如下错误:

安装g 包即可。

代码语言:javascript复制
sudo apt-get install g   

6. cuDNN安装

参考官方文档,下载tar包解压并拷贝到cuda目录下

当然也可以通过安装deb包的形式。

03

安装Anaconda

  1. 下载Anaconda
代码语言:javascript复制
wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh

2. 安装

代码语言:javascript复制
bash Anaconda3-2020.11-Linux-x86_64.sh 

3. 安装完后就创建虚拟环境,换源,参考pytoch文档安装包即可。

以上是配置服务器的全过程,主要参考了各软件的官方文档。

0 人点赞