暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

服务器深度学习环境搭建、配置及使用(上)

浙理532Lab 2022-07-02
4229

一:服务器情况

硬件基础配置:

  • CPU:AMD R9 5950X
  • 内存:威刚 32G X 2
  • 显卡:耕升GeForce RTX3060 TI
  • 主板:ROG X570-E Gaming WiFi II  %WiFi 6G驱动开不起来
  • 硬盘:红盘4T(西数) + SSD 1T(京造) + Nvme 1T(三星)



版本选择




  • Ubuntu 18.04+python3.7.13+cuDNN 8.4.1+CUDA11.1-11.7
  • TensorRT8.2+Pytorch1.11.0或1.12.0+Tensorflow-gpu 2.6或2.9.1
  • 值得注意的是RTX3060只支持CUDA11.1版本及以上,不要选择conda来安装CUDA和CUDNN(这个对老版本有效)。

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C语言来为CUDA™架构编写程序,所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。

NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。

CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。

最终版本选择及安装情况:
- [x] 服务器系统:Linux-Mint 19.3
- [x] NVIDIA驱动安装
- [x] CUDA安装:11.1-11.7
- [x] cuDNN安装:8.4.1
- [ ] Tensorflow各个版本的安装
- [1] Tensorflow 2.5/2.6/2.9.1:Python 3.7.13 + gcc 8.4 + CUDA 11.2 + cuDNN 8.1

- [ ] PyTorch各个版本的安装
- [1] PyTorch 1.8.2(LTS):Python 3.7.13 + gcc 8.4 + CUDA 11.1
- [2] PyTorch 1.11.0或1.12.0:Python 3.7.13 + gcc 8.4 + CUDA 11.3

- [x] 使用 Environment Module 管理不同版本的软件

二:环境使用说明

  • 系统盘:Nvme 1T(三星)

  • 训练盘:SSD 1T(京造)   挂载/home

  • 数据盘:红盘4T(西数)   挂载/data




版本管理




需要注意的是,在服务器上大部分用户都是普通用户,无root权限,切换CUDA时很麻烦,不切换CUDA,深度学习环境的配置就比较受限,所以在服务器环境下,普通用户如何灵活切换CUDA和cuDNN版本呢?Environment Modules!!!

Environment Modules 包是一个简化 shell 初始化的工具,它允许用户在使用 modulefiles 进行会话期间轻松修改其环境。每个模块文件都包含为应用程序配置 shell 所需的信息。模块文件可以由系统上的许多用户共享,并且用户可以拥有自己的集合来补充或替换共享模块文件。

    module avail 显示可以使用的模块
    module load/add 加载模块/软件
    module unload/rm 卸载模块/软件
    module list 显示已经加载的模块

    将 Modules 工具的文件放到 opt/tools/modules 这个路径,下面再建立三个子目录:
        - src  这里放安装包 源文件
        - installed    这里是工具安装路径
        - modulefiles   这里放 modulefiles -- 各个软件的版本文件。


    CUDA版本切换命令:

      module load cuda/11.1  # CUDA安装的版本包括11.1-11.7,可根据需要切换







      CUDA等安装验证




      验证CUDA安装:为了验证CUDA 11.1是否被安装完成,选择安装示例,默认的安装位置是/home/lab532目录
        cd home/lab532
        cd NVIDIA_CUDA-11.1_Samples/1_Utilities/deviceQuery # 选择其中一个示例进行测试
        make
        ./deviceQuery

        如果成功,会显示Result = PASS,否则根据错误提示解决问题。


        查看CUDA当前版本

          nvcc --version  或者
          cat /usr/local/cuda/version.txt


          CUDNN的安装包中有sample code,可用于测试。

            cp -r usr/src/cudnn_samples_v8/ $HOME
            cd cudnn_samples_v8/mnistCUDNN/ #进入到mnist文件夹中,并进行编译
            make clean && make
            如果遇到了WARNING - FreeImage is not set up correctly. Please ensure FreeImage is set up correctly,无法继续编译,可以执行以下命令:
              sudo apt-get install libfreeimage3 libfreeimage-dev

              执行后重新make clean && make,完成后尝试运行./mnistCUDNN,看到Test passed就说明安装成功。

              查看cuDNN版本

                whereis cudnn_version.h
                # cudnn_version: usr/include/cudnn_version.h
                cat usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
                #define CUDNN_MAJOR 8
                #define CUDNN_MINOR 4
                #define CUDNN_PATCHLEVEL 1
                #define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
                #endif * CUDNN_VERSION_H */








                Python和Pip




                查看Python和Pip版本

                  lab532@lab532-System-Product-Name:/usr/local$ python --version
                  Python 2.7.17
                  lab532@lab532-System-Product-Name:/usr/local$ python3 --version
                  Python 3.7.13
                  sudo apt install python3-pip
                  lab532@lab532-System-Product-Name:/usr/local$ pip --version
                  pip 21.3.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)
                  lab532@lab532-System-Product-Name:/usr/local$ pip3 --version
                  pip 21.3.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)
                  lab532@lab532-System-Product-Name:/usr/local$ pip2 --version
                  pip 20.3.4 from /usr/lib/python2.7/dist-packages (python 2.7)

                  替换python的pip源建议是一定操作一下的,pip安装速度会快很多:

                    pip install pip -U
                    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
                    cd ~
                    mkdir .pip
                    sudo vim ~/.pip/pip.conf

                    改为如下内容:

                      [global]
                      no-cache-dir = true
                      index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
                      extra-index-url = https://pypi.ngc.nvidia.com
                      trusted-host = pypi.ngc.nvidia.com
                      [install]
                      trusted-host = pypi.tuna.tsinghua.edu.cn
                      更改默认python版本,python目录默认链接的是python2,而现在基本都是用python3开发了,每次都输入python3很麻烦所以这里直接更换默认的python命令链接。
                        sudo rm /usr/bin/python
                        sudo rm /usr/bin/pip #把原来的pip软链接删掉
                        sudo ln -s /usr/bin/python3 /usr/bin/python
                        sudo ln -s /usr/bin/pip3 /usr/bin/pip
                        现在输入python就会进入python3环境了,pip就是pip3环境了。对于Python的包,尽可能使用pip安装
                          pip install SomePackage              # 最新版本
                          pip install SomePackage==1.0.4 # 指定版本
                          pip install 'SomePackage>=1.0.4' # 最小版本
                          pip install Django==1.7              # 安装 Django
                          pip install --upgrade SomePackage    # 升级包
                          升级指定的包,通过使用==, >=, <=, >, < 来指定一个版本号
                          pip uninstall SomePackage
                          pip search SomePackage
                          pip show # 显示安装包信息
                          pip show -f SomePackage              # 查看指定包的详细信息
                          pip list -o                          # 查看可升级的包
                          pip list # 列出已安装的包
                          pip --version
                          pip --help
                          pip install -U pip # 升级 pip
                          如果这个升级命令出现问题 ,可以使用以下命令:
                          sudo easy_install --upgrade pip

                          三:PyTorch和TensorFlow

                          • PyTorch 1.8.2(LTS):Python 3.6.9 + gcc 8.4 + CUDA 11.1

                          • PyTorch 1.11.0或1.12.0:Python 3.6.9 + gcc 8.4 + CUDA 11.3

                            pip3 install torch==1.8.2 torchvision==0.9.2 torchaudio==0.8.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cu111
                            pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
                            这条指令安装,但是下载速度会很慢,时间久了容易报时间错误,因此,最快最稳定的方法就是,点击后面的链接,自己手动下载所需要的版本。安装pytorch时,先安装torch再安装torchvision,需要注意torch- torchvision- python版本对应关系。

                              pip install torch-1.11.0+cu113-cp37-cp37m-linux_x86_64.whl
                              torchvision是pytorch的一个图形库,它服务于PyTorch深度学习框架的,主要用来构建计算机视觉模型。以下是torchvision的构成:
                              • torchvision.datasets: 一些加载数据的函数及常用的数据集接口;

                              • torchvision.models: 包含常用的模型结构(含预训练模型),例如AlexNet、VGG、ResNet等;

                              • torchvision.transforms: 常用的图片变换,例如裁剪、旋转等;

                              • torchvision.utils: 其他的一些有用的方法。

                              也可以简单快速直接用清华源安装,此时默认安装的是最新版本的pytorch:

                                pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple/
                                pip install torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple/

                                PyTorch GPU版本的正确性验证

                                • TensorFlow安装

                                  # Requires the latest pip
                                  pip install --upgrade pip


                                  # Current stable release for CPU and GPU
                                  pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/


                                  # Or try the preview build (unstable)
                                  pip install tf-nightly -i https://pypi.tuna.tsinghua.edu.cn/simple/

                                  Tensorflow GPU版本的正确性验证



                                  文章转载自浙理532Lab,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                  评论