Ubuntu18.04+RTX 2080Ti+CUDA 10.0 +cuDNN+PyTorch搭建深度学习环境

基本硬件环境

硬件基本信息

硬件 型号
CPU I7-9700k
GPU RTX 2080ti
内存 DDR4 2666 16GB*2
主板 ASUS Z390-A
机箱 Tt(Thermaltake) 启航者S5
电源 海盗船 850W 支持2080ti
SSD固态硬盘 三星 500GB M.2接口 860 EVO
HHD机械硬盘 西部数据 1TB SATA3接口
CPU散热器 九州风神 玄冰400 12cm
机箱散热器 先马(SAMA) 黑洞 12cm * 3

SSH

SSH无密码登陆

  • 安装SSH Server

    Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:

    sudo apt-get install openssh-server

  • 登陆本机

    ssh localhost

    此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 ,但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

  • SSH 无密码登陆

    首先退出刚才的 ssh,回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

    exit                           # 退出刚才的 ssh localhost
    cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
    ssh-keygen -t rsa              # 会有提示,都按回车就可以
    cat ./id_rsa.pub >> ./authorized_keys  # 加入授权
    

    此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了

安装驱动

linux安装NVIDIA显卡驱动

驱动下载地址 ,下载时切记选择.run版本,我们下载的版本是NVIDIA Linux-x86_64-430.40.run

安装驱动之前要安装其他需要的依赖工具:

sudo apt-get install gcc g++ make

检测驱动是否成功安装

方法1:使用nvidia-smi命令测试

英伟达系统管理接口(NVIDIA System Management Interface, 简称 nvidia-smi)是基于NVIDIA Management Library (NVML) 的命令行管理组件,旨在(intened to )帮助管理和监控NVIDIA GPU设备。

在终端输入命令nvidia-smi

方法2:使用nvidia-settings命令

在终端输入命令nvidia-settings

会调出NVIDIA的驱动管理程序:

如果打开的页面能够看到驱动的版本号,如本案例所示为430.40,则nvidia-setting安装正常。

搭建深度学习环境

CUDA 10.0安装

进入CUDA toolkit download官网之后会显示CUDA最新版本,这个时候先别急着选系统和下载文件类型,先看一下下什么样的CUDA版本能够跟PyTorch适配。

  • 进入PyTorch官网

    [外链图片转存失败(img-iwQF93nZ-1567431503797)(https://yalana.oss-cn-hangzhou.aliyuncs.com/2019-9-week1/pytorch%20select.png)]

    我们能看到可选择的CUDA版本只有9.2和10.0,因此我们去CUDA官网下载10.0版本

  • CUDA toolkit起始界面

  • 选择适配的CUDA版本

    打开显示的是最新的10.1 版本,这里我们选择“Legacy Releases”查看之前发布的版本,并如下图所示选择“CUDA Toolkit 10.0”版本

  • 定制化下载CUDA 10.0

  • 安装CUDA

    sudo sh cuda_10.0.130_410.48_linux.run

    然后会出现很长的协议书,一直按到最后出现如下需要用户选择的界面:

    之后,按照提示安装即可。我依次选择了:

    1 accept #同意安装
    2 n #不安装Driver,因为已安装最新驱动
    3 y #安装CUDA Toolkit
    4 <Enter> #安装到默认目录
    5 y #创建安装目录的软链接
    6 y #复制Samples一份到家目录
    

    安装完成界面(由于我们没有选择安装driver,因此会显示不完全安装,但是CUDA toolkit都已成功安装就可以了):

    以及安装过程中有CUDA location:

    在本例中cuda被安装到的路径为/usr/local/cuda-10.0

  • 更改环境变量、创建动态链接库并创建链接文件

    • 声明环境变量

      $ sudo vim ~/.bashrc

      在文件(在用户目录下)的尾部,输入内容如下:

      export PATH=/usr/local/cuda-10.0/bin${PATH:+:$PATH}} 
      export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
      

      保存退出,并输入下面指令使环境变量立刻生效:

      $ source ~/.bashrc

    • 设置环境变量和动态链接库

      $ sudo vim /etc/profile

      在打开的文件末尾加入:

      export PATH=/usr/local/cuda/bin:$PATH

    • 创建链接文件

      $ sudo vim /etc/ld.so.conf.d/cuda.conf

      在打开的文件中添加如下语句:

      /usr/local/cuda/lib64

      保存退出,然后执行

      $ sudo ldconfig使链接立即生效。

  • 检查CUDA是否安装成功

    nvcc --version

  • CUDA Sample测试

    切换到 CUDA 10.0 Samples 默认安装路径(即在/home/用户/NVIDIA_CUDA-9.1_Samples 目录下), 终端下输入:

    $ cd NVIDIA_CUDA-10.0_Samples
    $ sudo make all -j4
    

  • 查看CUDA 驱动和CUDA toolkit版本

    $ cd bin/x86_64/linux/release
    $ ./deviceQuery
    

    Q:这个时候存在一个问题 如果CUDA驱动比CUDA版本要高 是否可以支持?

安装cuDNN

先在NVIDIA官网注册用户名和密码,然后进入cuDNN下载页面,需要与BUDA10.0环境适配,因此我们选择下载以下几项来安装:

  • 首先解压tgz包

    tar -zxvf cudnn-10.0-linux-x64-v7.6.2.24.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*
    
  • 安装deb包

    sudo dpkg -i libcudnn7_7.6.2.24-1+cuda10.0_amd64.deb
    sudo dpkg -i libcudnn7-dev_7.6.2.24-1+cuda10.0_amd64.deb
    sudo dpkg -i libcudnn7-doc_7.6.2.24-1+cuda10.0_amd64.deb
    
  • 测试是否安装成功

    cp -r /usr/src/cudnn_samples_v7/ ~
    cd ~/cudnn_samples_v7/mnistCUDNN
    make clean && make
    ./mnistCUDNN
    

    显示“Test passed!”即测试通过!

安装Python、Anaconda和Pip

Python

  • 下载python 3.7.2 源程序压缩包

    $ sudo wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

  • 解压

    $ tar -xzvf Python-3.7.2.tgz

  • 配置

    $ cd Python-3.7.1
    $ ./configure --enable-optimizations
    

    执行上述语句将启用代码的发布版本,可以优化二进制文件以更好的更快的运行,但是需要运行测试,编译时需要花费一些时间(大约半小时),也可以不进行这一项配置。

  • 编译和安装Python 3.7.2

    $ sudo make
    $ sudo make install
    
    • Debugging

    在执行$ sudo make install时出错

    1. 出现的问题

      “zipimport.ZipImportError: can’t decompress data; zlib not available Makefile:1130: recipe for target ‘install’ failed make: *** [install] Error 1“

      解决方案

      安装zlib1g-dev

      $ sudo apt install zlib1g-dev

    2. 出现第二个问题

      “ModuleNotFoundError: No module named ‘_ctypes’
      Makefile:1130: recipe for target ‘install’ failed
      make: *** [install] Error 1”

      解决方案

      $ sudo apt-get install --reinstall zlibc zlib1g zlib1g-dev
      $ sudo apt-get install libffi-dev libssl-dev libreadline-dev -y
      

      然后重新执行$ sudo make install,显示:

  • 查看Python版本

    $ python --version

Anaconda

Method 1 参考Anaconda快速安装攻略

由于在官网下载非常慢,并且经常网络断掉,因此最好在清华大学开源软件镜像站中下载,具体下载链接 ,在该页面滑倒最后可以下载最新版本。本案例选择下载Anaconda3-5.2.0-Linux-x86_64.sh版本。

  • 进入下载文件的位置

    $ cd Downloads/

  • 运行.sh文件:

    $ bash Anaconda3-5.2.0-Linux-x86_64.sh

  • 进入注册信息页面,输入’yes’

    安装过程中会提示

    Anaconda3 will now be installed into this location:
    /home/silver/anaconda3

    • Press ENTER to confirm the location
    • Press CTRL-C to abort the installation
    • Or specify a different location below

    我们不更改安装路径的话继续输入

    出现如下界面则说明anaconda成功安装,这里询问是否需要安装VScode,一般不需要的话就输入"no"

  • 将anaconda加入系统环境变量

    sudo vim ~/.bashrc

    加入:

    export PATH=/home/silver/anaconda3/bin:$PATH

  • 在终端中输入

    conda info

    即可查看详细信息

如何启动Anaconda图形化界面

$ source ~/anaconda3/bin/activate root
$ anaconda-navigator

Method n(官网下载非常慢 不推荐!) 进入Anaconda官网下载页面

下载相应版本安装即可:

sudo sh Anaconda3-2019.07-Linux-x86_64.sh

安装PyTorch

进入PyTorch官网,根据自己的环境来定制化选择PyTorch下载安装版本,选好之后复制下方的命令行:

Alt

conda install pytorch torchvision cudatoolkit=10.0 -c pytorch

下载完成提示:

安装Tensorflow

  • 首先安装NVIDIA必要组件:

    $ sudo apt-get install libcupti-dev

  • 先确保linux上pip可用

    $ sudo apt-get install python3-pip python3-dev # for Python 3.x

  • 然后用pip3(针对python3.x版本)安装gpu版本的TensorFlow

    $ pip3 install tensorflow-gpu

    安装过程中遇到了两个错误提示:

    • ERROR1:

      ERROR: 1.14.0 has requirement setuptools>=41.0.0, but you’ll have setuptools 39.1.0 which is incompatible.

      • 出错原因:setuptools 版本太低

      • 解决方案:更新setuptools版本 输入:

        pip install --upgrade setuptools

      • 命令执行结果:

    • ERROR1:

      ERROR: Cannot uninstall ‘wrapt’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

      • 出错原因:不能够卸载’wrapt’,因为我们不能准确判断它归属于哪个文件,这将会导致部分卸载

      • 解决方案:输入

        pip install -U --ignore-installed wrapt enum34 simplejson netaddr

      • 命令执行结果:

  • 此时再重新执行$ pip3 install tensorflow-gpu

    当我们解决完各组件的安装问题后,即可成功安装tensorflow,安装成功界面如下:

  • 检测tensorflow是否安装成功并查看版本号

    import tensorflow as tf
    print(tf.__version__)  ##两条下划线
    

  • 在VS Code中运行一个Tensorflow程序

    • 案例来自斯坦福大学NLP课程 cs224n Lecture7 参考链接

    • 程序执行之前需要安装numpy包

      import tensorflow as tf 
      import numpy as np
      
      # create data
      x_data = np.random.rand(100).astype(np.float32)     # 随机生成100个随机数列 
      y_data = x_data*0.1+0.3 
      
      ###Create tensorflow structure start###
      Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0))  # W大写代表可能是权重矩阵,里面的参数分>别是[1] 代表1维矩阵 ,生成随机数范围指定从-1.0到1.0
      biases = tf.Variable(tf.zeros([1]))
      
      y = Weights * x_data + biases
      
      loss = tf.reduce_mean(tf.square(y-y_data))
      optimizer = tf.train.GradientDescentOptimizer(0.5)   # 0.5代表学习率
      train = optimizer.minimize(loss)  #训练的过程就是不断在最小化损失函数的过程
      
      # deprecated 
      # init = tf.initialize_all_variables()
      init = tf.global_variables_initializer()
      
      ###Create tensorflow structure end###
      
      sess = tf.Session()
      sess.run(init)
      
      for step in range(201):
        sess.run(train)
        if step % 20 == 0:
          print(step,sess.run(Weights),sess.run(biases))
      
    • 终端输出结果

      我们在终端执行结果界面可以看到程序已经运行在RTX 2080 Ti上,GPU提供7.5的算力。

至此,深度学习环境搭建完成!![撒花]
今天也是一个爱(有)学(耐)习(心)的女孩纸呢嘻嘻~

Reference

linux安装NVIDIA显卡驱动

ubuntu18.04安装2080ti教程

多显卡驱动踩坑记

​ 我在安装NVIDIA驱动时也遇到过突然系统重启进入TUI(文本命令行界面),如果想要进入图形界面需要Ctrl+Alt+F1,或者TUI界面下,Ctrl+Alt+F1+F2一起按一定能进入图形界面。

安装CUDA_配置环境变量

Ubuntu 18.04 安装 python3.7

Python3.7安装:ModuleNotFoundError: No module named ‘_ctypes’

Anaconda快速安装攻略

cuDNN安装测试

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章