“ 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安装
- 在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
- 下载Anaconda
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文档安装包即可。
以上是配置服务器的全过程,主要参考了各软件的官方文档。