Debian系列操作系统安装CUDA+CUDNN+TensorFlow+Pytorch深度学习环境

Debian系列操作系统安装CUDA+CUDNN+TensorFlow+Pytorch深度学习环境

1. 简介

在实验室中,很多同学出现了设备环境中各式各样的NVIDIA显卡加速环境的问题,在最近笔者也正在做一些项目,但是都不同程度遇到了一些比较棘手的环境问题,所以以这篇文章来说明一下较为合理的环境配置方案。这里笔者选择的操作系统是国产操作系统Deepin,至于其他Debian系列的操作系统,安装过程是类似的。

2. 安装显卡驱动

软件源驱动程序安装方法
这里强烈建议安装操作系统源上的驱动程序,因为每当系统更新的时候,源上的显卡驱动是按照本身发型版本的依赖关系来进行安装的,所以有比较好的兼容性。输入以下的命令就可以查看源上的闭源NVIDIA显卡驱动的版本号是什么样的:

apt-cache madison nvidia-driver

这里会显示出显卡驱动版本号。
命令显示对于上述的深度学习环境,我们选择不必要太新的,一般情况下选择显卡驱动版本在440.x ∼ \sim 470.x版本较为恰当,有些操作系统(例如Deepin)在安装的时候就会提示是否安装Deepin闭源显卡驱动程序,但是这些预安装显卡驱动程序并不能达到我们的要求,因保证系统的稳定性,一般选择较为老旧的显卡驱动作为操作系统的显卡驱动程序(390.x),这样并不能更好地配置深度学习环境。
下一步则是安装源上的驱动程序(以deepin V20.5为例)

sudo apt install nvidia-driver-bin # for deepin

对于ubuntu系统可以用以下的命令对源上的程序进行查询处理

ubuntu-drivers device

这样就可以列举出对应的驱动程序,安装对应的驱动程序即可

sudo apt install nvidia-drivers-470

官网下载程序安装方法

另外,当然也可以选择从官网下载对应的驱动程序进行安装。这里需要注意的是,有些电脑设置有secure boot,所以在设置启动文件的时候注意这个的设置。

在安装之前,注意要将nouveau驱动禁用,也就是在文件/etc/modprob.d/blacklist.conf填写以下的内容禁用nouveau驱动

blacklist nouveau
options nouveau modeset=0

然后生成内核文件,注意对原来的内核文件进行备份处理

sudo cp /boot/initrd.img-XXX /boot/initrd.img-XXX.back
sudo cp /boot/vmlinuz-XXX /boot/vmlinuz-XXX.back
sudo update-initramfs -u

从官网下载好驱动程序之后,在安装驱动之前
首先安装gcc,make等一系列编译环境以及工具。

sudo apt install gcc-7 make

由于编译显卡需要一些内核编译的dev包还有一些headers,所以还需要安装以下的内核源码文件,这具体需要看显卡驱动需要什么样的内核,用以下的命令进行查询即可

apt search kernel
apt search headers

查找到对应的软件源文件之后,进行安装即可。(以Deepin V20.5为例)

sudo apt install linux-headers-5.10.101-amd64-desktop

3. 安装CUDA+CUDNN 环境

为了兼容TensorFlow 和Pytorch环境,通过TensorFlow官网和Pytorch官网查询,我们最终推荐选择以下的两种方案参考:

  • CUDA11.2+CUDNN8.1
  • CUDA10.2+CUDNN7.6.5

当然也可以选择以上两种环境同时安装,但是这里要注意的是,两种环境的安装注意在/usr/local/cuda/文件夹当中出现的一些软链接错误的一些问题。

两种环境的安装方法是类似的,首先需要安装一些必要的安装包

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev libgles2-mesa-dev

对于Debian系列的操作系统,可以选择Ubuntu18.04版本的(CUDA10.2+CUDNN7.6.5),以及Ubuntu20.04版本或者是Debian10版本的(CUDA11.2+CUDNN8.1)。为了保持软件的依赖关系稳定性,我们这里建议选择*.run文件进行安装,下载完成之后,安装的命令如下所示:

  • 对于CUDA10.2版本
sudo bash cuda_XX.XX.XX_XX.XX.XX --toolkit --toolkitpath=/usr/local/cuda-10.2 --librarypath=/usr/local/cuda-10.2 --samples --samplespath=$HOME/

CUDNN选择Linux x86-64版本进行安装。下载完成安装包之后,安装CUDNN7.6.5如下所示

tar -xvf  cudnn-10.2-linux-x64-v7.6.5.32.tgz
sudo mv cuda/include/* /usr/local/cuda-10.2/include/
sudo mv cuda/lib64/* /usr/local/cuda-10.2/lib64/
sudo chmod a+r  /usr/local/cuda-10.2/include/cudnn.h /usr/local/cuda-10.2/lib64/libcudnn*
  • 对于CUDA11.2版本
sudo bash cuda_XX.XX.XX_XX.XX.XX --toolkit --toolkitpath=/usr/local/cuda-10.2 --librarypath=/usr/local/cuda-10.2 --samples --samplespath=$HOME/

CUDNN依然选择Linux x86-64版本进行安装。下载完成安装包之后,安装CUDNN8.1如下所示

tar -xvf   cudnn-11.2-linux-x64-v8.1.1.33.tgz
sudo mv cuda/include/* /usr/local/cuda-10.2/include/
sudo mv cuda/lib64/* /usr/local/cuda-10.2/lib64/
sudo chmod a+r  /usr/local/cuda-10.2/include/cudnn.h /usr/local/cuda-10.2/lib64/libcudnn*

这样就可以将对应的CUDA包安装到/usr/local/cuda/usr/local/cuda-10.2/usr/local/cuda-11.2文件夹当中,但是安装过程当中注意对cuda链接工具的更新操作,选择适合于自己的开发环境进行安装处理。

4. 安装TensorFlow 和Pytorch环境

首先可以建立一个虚拟环境

conda create -n tensorflowv15 python=3.7
conda create -n pytorchv16 python=3.7
conda create -n tensorflowv2 python=3.7
conda create -n pytorchv19 python=3.7

我们这里建立四个环境对应于不同的环境进行模型的训练,然后安装对应的安装包即可
Tensorflow1.15.0环境

pip install tensorflow-gpu==1.15.0

Tensorflow2.2.0环境

pip install tensorflow==2.2.0

Pytorch 环境

pip install pytorch==1.x

安装TensorFlow环境之后经常会出现以下的一些问题,我们这里以CUDA11.2+CUDNN8.1+Tensorflow2.7.0为例,经常会出现以下的一些库文件无法找到

libcudart.so.11.0,libcublas.so.11,libcublasLt.so.11,libcufft.so.10,libcurand.so.10,libcusolver.so.10,libcusparse.so.11,libcudnn.so.8

在这样的情形下,只需要将对应的文件做一个软链接即可,例如

sudo ln -s libcublas.so.11.4.1.1043 libcublas.so.11
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值