Cuda安装过程

CUDA CUDNN tensorflow 相关安装过程

个过程需要安装 cuda驱动 cuda软件 cudnn库 tensorflow-gpu

不同平台之间的对应关系不同

平台支持链接平台支持

其中linux x64的支持如图

![linux X64](截屏2020-08-13 下午2.00.33.png

如图 gcc的版本需要时4.8

# 命令

gcc -v

确定需要安装的版本:

  • tensorflow 2.0
  • 对应的cuda版本 10.0
  • cudnn版本 7.6.5
  • gcc版本4.8

    cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
    #系统:ubuntu1604
    #版本:10.0
    #类型:离线安装
    #小版本:10.0.130
    #硬件对应版本:410.48
    #平台:amd64

1.安装cuda驱动程序

查看电脑显卡信息 lspci | grep VGA

进入下载驱动界面链接 选择自己的驱动

注意:硬件版本需要与软件版本对应

需要根据软件版本查找响应的硬件版本链接

安装之前 先卸载所有的nvidia驱动

sudo service lightdm stop # 卸载之前应该先停止 lightdm
sudo /usr/bin/nvidia-uninstall
sudo apt-get --purge remove "nvidia-*"

sudo apt autoremove
sudo apt-get remove --purge nvidia-\*

卸载后,重启

登陆界面同时按下:Ctrl + Alt + F1 ~ F6都可以进入字符界面(tty),再按 Ctrl + Alt + F7就又回到登陆界面了。

禁用mouveau驱动和相关驱动包

sudo gedit /etc/modprobe.d/blacklist.conf

在文件最后一行加入下面的命令,进行屏蔽

blacklist rivafb
blacklist vga16fb
blacklist nouveau
blacklist nvidiafb
blacklist rivatv

测试是否禁用成功

lsmod | grep nouveau

没有输出则表示禁用成功

然后更新 sudo update-initramfs -u

重启

在tty界面操作执行

#获取权限
sudo chmod a+x NVIDIA-Linux-x86_64-410.57.run

#执行
./NVIDIA-Linux-x86_64-410.57.run

#安装

sudo ./NVIDIA-Linux-x86_64-375.20.run –no-x-check –no-nouveau-check #–no-opengl-files
#–no-x-check 安装驱动时关闭X服务
#–no-nouveau-check 安装驱动时禁用nouveau
#–no-opengl-files 只安装驱动文件,不安装OpenGL文件

安装时会出现几个问题:

问题1 问题2 问题3 问题4

register the kernel module souces with DKMS? — NO 问题5 问题6 问题7 当全部完成后 会重启 问题8

之前安装出现这个问题 Error:Unable to load the 'nvidia-drm' kernel module .

说是boot security中需要禁用 但是没找到 添加 mouveau驱动屏蔽后解决了


2.安装cuda

安装示例进行选择安装链接

cuda安装过程帮助文档链接

注意cuda-repo-<version>是对应的版本

`sudo dpkg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb`
`sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub`
`sudo apt-get update`
`sudo apt-get install cuda`

安装完成后 需要更新当前用户的配置文件

安装之后路径/usr/local/中会出现两个cuda文件夹 一个cuda 一个cuda-10.0 cuda应该是链接到cuda-10.0的 将安装路径添加到bashrc

sudo gedit ~/.bashrc
$ export PATH=/usr/local/cuda-10.0/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH

# 执行命令使路径生效

source ~/.bashrc

输入 nvcc -V 可以看到cuda的版本信息

尝试运行cuda中自带的例子

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

可以看到Result=PASS 成功输出


3.安装cuDNN

cuDNN下载地址链接

选择支持cuda-10.0的版本 * cuDNN v7.6.5 * Library for Linux

下载完成后,解压

tar -xzvf cudnn-10.0-linux-x64-v7.6.5.32.tgz
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*

查看cnDNN版本 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2.

问题 cuda安装完后,出现了deviceQuery fail的问题 重新卸载安装后 问题消失 似乎是 安装完cuda后没有重启

最后运行nvidia-smi 如图

Screenshot from 2020-08-13 14-56-33.png


4.安装tensorflow

由于在ubuntu16.04的环境 需要用ros Kinect进行开发 仅支持python2 所以tensorflow需要安装2.7版本

支持GPU的2.7版本 链接

下载后利用pip进行安装

安装完成后 import tensorflow会发生以下问题:

如果驱动版本和cuda版本不同 会保不兼容的问题 之前安装430驱动与410版本cudanot match

In [1]: import tensorflow as tf
2020-01-25 11:20:08.541504: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer.so.6'; dlerror: libnvinfer.so.6: cannot open shared object file: No such file or directory
2020-01-25 11:20:08.541639: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer_plugin.so.6'; dlerror: libnvinfer_plugin.so.6: cannot open shared object file: No such file or directory
2020-01-25 11:20:08.541689: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:30] Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.

后发现这是tensorRT引起的 虽然不影响使用 但是需要屏蔽warning

后安装1.15.0版本 问题解决

至此 大功告成

点击刷新