ubuntu 18.04 NVIDIA driver, CUDA, Cudnn and pycuda, tensorflow-gpu

environment and target:
laptop: alienware 15R3
CPU: Intel® Core™ i7-6700HQ CPU @ 2.60GHz 8 cores
GPU: GP104M [GeForce GTX 1070 Mobile]
RAM:16GB
ROM:250GB SSD
CUDA: 10.2
Cudnn: 7.6
pycuda:2019.1.2
tensorflow: 2.0.0b1

NOTE: CUDA 10.2 自带 NVIDIA driver,所以不需要自己去安装nvidia 驱动,安装了还会有版本不和的问题, cuda runfile 后面带如:440_33 的就是nvidia driver的版本号

1. Download

  1. cuda 10.2, 选择runfile
  2. cudnn, 需要注册账号; three files:
    1. cuDNN Runtime Library for Ubuntu18.04 (Deb)
    2. cuDNN Developer Library for Ubuntu18.04 (Deb)
    3. cuDNN Code Samples and User Guide for Ubuntu18.04 (Deb)
  3. pycuda 官网

2. Installation

2.1 cuda and nvidia

  • uninstall method:

sudo /usr/local/cuda-10.2/bin/cuda-uninstaller
sudo /usr/bin/nvidia-uninstall

  • remove

To remove CUDA Toolkit:
sudo apt-get --purge remove “cublas” “cuda*”
To remove NVIDIA Drivers:
sudo apt-get --purge remove “nvidia

START:

  1. 检查自己的电脑环境是否具备安装CUDA的条件

    #会显示自己的NVIDIA GPU版本信息,check its cuda version
    lspci | grep -i nvidia 
    
    # check uour ubuntu version to check its cuda version
    uname -m && cat /etc/*release 
    
    #可以查看自己的gcc版本信息
    gcc –version 
    # if no
    sudo apt-get install gcc
    
    #可以查看自己的kernel版本信息
    uname –r
    
    #安装对应kernel版本的kernel header和package development
    sudo apt-get install linux-headers-$(uname -r)
    
  2. dowload runfile, refer to download

  3. runfile安装cuda

    #有输出则代表nouveau正在加载,需禁用, nouveau是ubuntu自带的开源的显卡驱动,不适合
    lsmod | grep nouveau
    
    #禁用 nouveau
    sudo vim /etc/modprobe.d/blacklist-nouveau.conf
    
    #add in file:
    blacklist nouveau
    options nouveau modeset=0
    
    #运行禁用
    sudo update-initramfs –u
    
    #检查是否禁用成功,无输出代表成功
    lsmod | grep nouveau 
    
    reboot
    
    #到达登录界面时,alt+ctrl+f1,进入tty1, text mode,登录账户
    
    #使用lightdm 关闭图形化界面
    sudo apt install lightdm
    sudo service lightdm stop
    
    cd ~/Downloads
    sudo chmod +x cuda***.run
    # install without install opengl package, opengl will makes the desktop restart in loops 
    sudo ./cuda***.run --no-opengl-libs
    
    #出现安装框的选择是(遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU需要选择no,否则可以yes)):
    accept
    options--> nvidia driver --> choose *, choose 1. no opengl; 2.not install drms (update management); 3.update X configure
    其他都选择yes或者默认
    
    # 重新启动图形化界面
    sudo service lightdm start
    
    Alt + ctrl +F7,返回到图形化登录界面,输入密码登录;
    如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。
    
    #检查Device Node Verification
    检查路径/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files)
    如果没有的话,可以参考官方文档里的指导步骤,进行添加。
    
    #设置环境变量,永久添加, profile
    sudo gedit /etc/profile
    #add in file:
    export PATH=/usr/local/cuda-10.2/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64
    #同样在.bashrc也可以
    
    reboot
    
    #检查上述的环境变量是否设置成功
    env
    
  4. 安装完毕后的检查工作

    #检查 NVIDIA Driver是否安装成功
    cat /proc/driver/nvidia/version
    
    #检查 CUDA Toolkit是否安装成功
    nvcc –V
    # 可以一次性查看
    nvidia-smi
    
    #编译cuda提供的例子
    cd ~/NVIDIA_CUDA-10.2_Samples
    # -k means keep going when error, some .h file may miss
    make -k
    cd ~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release
    ./deviceQuery
    # if no error, congrats!!!
    
  • 其他:检查 Device Node Verification(好像没什么影响)
    ls /dev/nvidia*
    #若显示类似 No such file or directory等信息,则进行如下操作
    
    sudo vim /etc/rc.local
    #把下面的文本复制到 exit 0 之前,保存退出
    
    #!/bin/sh
    /sbin/modprobe nvidia
    if [ "$?" -eq 0 ]; then
      # Count the number of NVIDIA controllers found.
      NVDEVS=`lspci | grep -i NVIDIA`
      N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
      NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
      N=`expr $N3D + $NVGA - 1`
      for i in `seq 0 $N`; do
        mknod -m 666 /dev/nvidia$i c 195 $i
      done
      mknod -m 666 /dev/nvidiactl c 195 255
    else
      exit 1
    fi
    /sbin/modprobe nvidia-uvm
    if [ "$?" -eq 0 ]; then
      # Find out the major device number used by the nvidia-uvm driver
      D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
      mknod -m 666 /dev/nvidia-uvm c $D 0
    else
      exit 1
    fi
    
    #重启后,再次输入以下命令,此时应该会出现 
    ls /dev/nvidia*
    /dev/nvidia0   /dev/nvidiactl    /dev/nvidia-uvm,说明安装成功   
    

2.2 cudnn

  • 如果deb 使用dpkg -i 出现 .deb not a deb file error, 可以直接对deb文件在新得利软件管理中心安装,就是右键deb文件后–> open with software install
  • 这里使用的是官网写的ubuntu的第二种deb安装方式,不需要拷贝cudnn.h 文件到cuda目录的,所以没办法使用 cat cudnn.h 的方式检查cudnn的版本,但是可以通过

START:

  1. 安装(both ok)
    method1: Installing From the Tar File

    #Navigate to your <cudnnpath> directory containing the cuDNN Tar file.    Unzip the cuDNN package.
    $ tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
    
    #Copy the following files into the CUDA Toolkit directory, and change the file permissions.
    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*
    # add following in bashrc
    vim ~/.bashrc
    export CUDNN_PATH="/usr/local/cuda-10.2/lib64/libcudnn.so"
    

    method2:Installing From A Debian File

    #Navigate to your <cudnnpath> directory containing cuDNN Debian file.    Install the runtime library, for example:
    sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.2_amd64.deb
    
    #Install the developer library, for example:
    sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.2_amd64.deb
    
    #Install the code samples and the cuDNN Library User Guide, for example:
    sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.2_amd64.deb
    
  2. 测试

    #拷贝文件到环境配置的Home路径下 
    cp -r /usr/src/cudnn_samples_v7/ ~
    #切换路径 
    cd ~/cudnn_samples_v7/mnistCUDNN 
    #编译测试文件 
    make clean && make 
    #运行示例,如果成功则证明安装成功。 
    ./mnistCUDNN 
    

2.3 pycuda

  • 查看pycuda的对应版本去pycuda 官网
    #查看CUDA版本, 2020-01-08, latest 10.2
    cat /usr/local/cuda/version.txt
    
    #查看cudnn版本,7.6:
    cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 
    
    #安装
    sudo pip install pycuda
    sudo pip3 install pycuda==2019.1.2
    

2.4 tensorflow-gpu

  • pre install:
    sudo pip3 install wheel
    
  • 最好是建立一个python 的虚拟环境后安装,建立虚拟环境
    sudo pip3 install python3-venv
    
    mkdir ~/python_env; cd ~/python_env
    # create python env 
    python3 -m venv tf_env
    
    cd tf_env
    source bin/activate
    
    which python;which pip;pip -V
    
    Install:
    pip search tensorflow-gpu
    pip install tensorflow-gpu==2.0.0b1
    
    
  • TF 源码安装需要 bazel 和 TF source code
    1. bazel 安装参考: bazel 官网
    2. TF source 2.1.0-rc1 code, and tf github

3. Reference

  1. Ubuntu 14.04 上安装 CUDA 7.5/8.0 超详细教程
  2. Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)
  3. cuda installation guide linux official
  4. cuda other source file for patch,可能你自己编译会少.h file, download here
  5. cudnn安装
  6. cudnn官网安装步骤
  7. pycuda 之 安装与简单使用
  8. Tensorflow2.0 GPU版本安装(CUDA10.0 + cuDNN7.5 + Tensorflow2.0 Alpha)
  9. TensorFlow GPU (Ubuntu 18.04.2 + CUDA 10.0 + NVIDIA GeForce GTX 1050)
  10. tensoflow 安装官网page
  11. tensorflow2.1.0-RC1 源码编译(CPU版本), 按照tensorflow 官网说法,2.1.0是同时支持gpu和cpu的,如只需要cpu,加-cpu
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值