ubuntu 18.04搭建深度学习环境(软件部分)

步骤:
(一)ubuntu 18.04操作系统
(二)安装显卡驱动程序
(三)安装cuda驱动程序
(四)安装cuDNN驱动程序
(五)安装pytorch
(六)安装tensorflow-gpu
注:pytorch和tensorflow在系统环境安装,未采用conda

(一)ubuntu 18.04操作系统
操作系统是由同事帮忙安装,并且不带NVIDIA显卡驱动和CUDA驱动。因为之前安装了一版ubuntu20.04,集成了NVIDIA显卡驱动和CUDA驱动,出现驱动和tensorflow-gpu不匹配的情况,具体原因未知。所以,同事友好地重新装了一版ubuntu 18.04,然后驱动从NVIDIA官网下载自行安装。

(二)安装显卡驱动程序
1、下载显卡驱动程序
驱动程序下载地址:https://www.nvidia.cn/Download/index.aspx?lang=cn
按环境进行选择,下载界面如下:


下载后的文件格式:NVIDIA-Linux-x86_64-460.80.run(我的版本)
2、禁用默认显卡驱动
安装.run文件之前,禁用Ubuntu18.04默认的系统显卡驱动,命令如下:

// 修改属性
$sudo chmod 666 /etc/modprobe.d/blacklist.conf  
//用vim打开
$sudo vim /etc/modprobe.d/blacklist.conf
// 在最后一行加入以下几句,保存退出
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
// 对刚才修改的文件进行更新
$sudo update-initramfs -u
// 最好重启一下服务器
$sudo reboot
//若执行完该句,没有任何输出,则nouveau被成功禁用
$lsmod | grep nouveau 

3、卸载旧版本的nvidia驱动
因为我的系统不带nvidia驱动,可以不卸载,但如果已经有nvidia驱动,执行以下语句卸载:

$sudo apt-get remove --purge nvidia*

4、安装gcc编译
如果没有安装,或者版本不对应,有可能会导致驱动安装失败。(我的版本7.5.0)

$sudo apt-get  install  build-essential \\安装gcc
$gcc --version \\检查gcc是否安装成功

如果有提示g++或cmake没安装,执行以下语句:

$sudo apt-get install g++
$sudo apt-get install make

5、安装新的nvidia驱动
有资料说需要关闭图形界面,我并没有操作这一步。直接执行以下命令,并按提示安装。

//进入文件所在目录下
$cd /home/xxx/
//修改权限
$sudo chmod a+x NVIDIA-Linux-x86_64-xxx.run
//执行安装
$sudo ./NVIDIA-Linux-x86_64-460.80.run

安装成功后,输入:nvidia-smi,显示以下界面便是成功。

更新内核,并重新启动计算机(这一步非必须,但最好有)

//更新内核
$sudo update-initramfs -u
//重启服务器
$sudo reboot now

(三)安装cuda驱动程序
1、下载cuda驱动程序
下载地址:https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=18.04
按照版本环境进行选择,下载界面如下:


2、安装程序
选择完版本后,会生成几条安装语句,执行生成的语句即可,建议安装方式采用runfile[local]:

$wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run
$sudo sh cuda_11.3.1_465.19.01_linux.run

3、配置环境变量

$sudo vim ~/.bashrc \\进入vim界面。输入字母i,进入编辑模式
//在bashrc文件中输入以下命令,注意修改你的cuda版本
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64
export PATH=$PATH:/usr/local/cuda-11.1/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.1
//输入完成后,点击esc键并输入:wq!,再按esc键退出vim。
//运行.bashrc文件
$source ~/.bashrc 
//重启服务器
$sudo reboot now

4、检查安装成功
输入:nvcc --version,出现以下界面,便是成功。


注:我安装的明明是cuda11,nvcc -V显示版本是9.1,不知道问题出现在哪里,最后也好像没啥影响。如有大佬知道,请评论留言。

(四)安装cuDNN驱动程序

cuDNN其实不用安装,是把文件下载下来放在cuda指定的目录下。
1、下载cuDNN
下载地址:https://developer.nvidia.com/rdp/cudnn-archive
下载界面如下,也是按照版本选择的,下载后是一个压缩包:

2、安装

//用tar命令解压,得到cuda的文件夹:
$tar -zxvf cudnn-11.2-linux-x64-v8.1.0.77.tgz
//拷贝相关文件到上面安装的cuda文件中,并赋予权限:
$sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

cuDNN驱动程序就算安装好了。

(五)安装pytorch
安装语句:

pip3 install torch==1.7.0+cu110 torchvision==0.8.1+cu110 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

安装pytorch一般不太有问题,完成后按以下程序进行测试:

 //运行python (启动命令与你上文中起的别名有关)
$python3
$import torch
$torch.cuda.is_available() \\输出True则安装成功

可以用pytorch对cuda版本和cuDNN版本进行打印:

import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())

(六)安装tensorflow
安装语句(豆瓣源加速更快):

pip3 install tensorflow-gpu==2.4.0 -i http://pypi.douban.com/simple

这里可能遇到的问题:
1、提示:no matching distribution found for tensorflow-gpu==2.4.0
这里我踩了一个巨大的坑,我的系统里有两个版本的python:python2.7和python3.6。用pip安装tensorflow-gpu==2.4.0应该不会成功,因为在两个版本的情况下,pip是为python2.7安装,python2.7最高能安装tensorflow_gpu-1.15.0版本和tensorflow2.1.0。用pip3也安装不成功,因为pip3的版本只能升级到9.1版本(这里不知道为什么)。最后解决的方式是:卸载了python2.7,只留python3.6,然后pip3就能升级到21.1版本,tensorflow-gpu==2.4.0安装成功。
2、import tensorflow之后,不报错,但提示一堆以下文字:


解决方式是:进入dtype.py,修改对应行的代码,把np.dtype([("quint8", np.uint8, 1)])修改为np.dtype([("quint8", np.uint8, (1,))]),一共修改了6行。
3、import tensorflow之后,不报错,但tf.test.is_gpu_available()输出是False。
导致这个问题的原因很多,我的原因是我在安装tensorflow-gpu==2.4.0之前,安装了tensorflow1.14.0。解决的方式是:卸载tensorflow1.14.0。
4、import tensorflow之后,tf.test.is_gpu_available()输出是False,并提示:

解决方式一:运行sudo ln -s /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcusolver.so.11 /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcusolver.so.10,这里的路径需要和本机保持一致。(对我没起作用)
解决方式二:运行sudo ln -s /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcusolver.so.11 /usr/local/lib/python3.6/dist-packages/tensorflow/python/libcusolver.so.10,这里的路径需要和本机保持一致。(对我起作用了)

测试语句:

import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 
print('GPU', tf.test.is_gpu_available())
a = tf.constant(2.0)
b = tf.constant(4.0)
print(a + b)

输出:
GPU True
tf.Tensor(6.0, shape=(), dtype=float32)

以上安装完毕!
参考:
https://www.landui.com/help/nshow-10631.html
https://blog.csdn.net/m0_37412775/article/details/109355044

你可能感兴趣的:(ubuntu 18.04搭建深度学习环境(软件部分))