【Ubuntu 20.04 服务器配置CUDA + cuDNN + Anaconda3 + tensorflow + Pytorch命令】

一、创建新用户并加入

sudo su 						#切换为root用户获取管理员权限用于新建用户
adduser "username" 				#新建用户(例如用户名为username)
adduser "username" sudo 		#将用户添加到 sudo 组

或者

sudo adduser "username" 		#新建用户(例如用户名为username)
sudo adduser "username" sudo 	#将用户添加到 sudo 组

查看用户是否添加成功

sudo cat /etc/passwd | grep "username"
# 更改密码的命令
sudo passwd "username"

二、安装NVIDIA驱动

  1. 官网找到适合自己显卡型号的驱动程序并下载

    # 下载完成后,执行以下命令给程序添加执行权限
    sudo chmod +x NVIDIA-Linux-x86_64-525.147.05.run
    # 或
    sudo chmod 777 NVIDIA-Linux-x86_64-525.147.05.run
    
  2. 安装gcc等依赖包

    # 当安装GPU驱动时,提示缺少相关的依赖包,在此,我们需要提前安装相关的依赖包
    # 目前需要用到的是: gcc,g++,make,build-essential
    sudo apt install gcc g++ make
    sudo apt install build-essential
    
  3. 屏蔽nouveau开源版本的GPU驱动

    # 当系统安装完成之后,会安装系统开源的NVIDIA驱动版本,名称为nouveau。下面将屏蔽该驱动。
    # 首先,创建/etc/modprobe.d/blacklist-nouveau.conf文件,
    sudo vim /etc/modprobe.d/blacklist-nouveau.conf
    

    将下面内容添加进去:

    blacklist nouveau
    blacklist lbm-nouveau
    options nouveau modeset=0
    alias nouveau off
    alias lbm-nouveau off
    

    创建/etc/modprobe.d/nouveau-kms.conf文件,将options nouveau mdeset=0添加进去:

    sudo echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
    
  4. 更新一下initramfs:

    sudo update-initramfs -u
    
  5. 删除旧驱动(如果有的话)

    # 输入nvidia-smi,如果有输出则有旧驱动
    nvidia-smi
    
    sudo apt-get purge nvidia*
    
  6. 重启服务器(可以不重启,第七步成功就行)

    sudo reboot
    
  7. 检查nouveau是否已经禁用,使用下述命令,若无任何输出则禁用成功

    sudo lsmod | grep nouveau
    
  8. 安装NVIDIA GPU驱动

  • 有图形界面

    # 由于安装驱动过程中需要关闭图形界面,因此先从图形界面切换到命令行界面。
    sudo service lightdm stop 			#关闭图形界面
    

    进入存储驱动的文件夹

    cd ~/下载/
    

    运行该文件,执行安装过程,有三个参数如下

    -no-x-check							#安装驱动时关闭X服务
    -no-nouveau-check					#安装驱动时禁用nouveau
    -no-opengl-files					#只安装驱动文件,不安装OpenGL文件
    

    安装过程中出现的提示缺少32位库可以不管。还有一个x server的提示,默认no就可以。

    sudo ./NVIDIA-Linux-x86_64-525.147.05.run -no-x-check -no-nouveau-check -no-opengl-files
    

    重启图形界面

    sudo service lightdm start
    

    终端输入nvidia-smi检查是否安装成功

    nvidia-smi
    
  • 没有图形界面
    进入存储驱动的文件夹

    cd ~/下载/
    

    运行该文件,执行安装过程,有三个参数如下

    -no-x-check							#安装驱动时关闭X服务
    -no-nouveau-check					#安装驱动时禁用nouveau
    -no-opengl-files					#只安装驱动文件,不安装OpenGL文件
    

    安装过程中出现的提示缺少32位库可以不管。还有一个x server的提示,默认no就可以。

    sudo ./NVIDIA-Linux-x86_64-525.147.05.run -no-x-check -no-nouveau-check -no-opengl-files
    

    终端输入nvidia-smi检查是否安装成功

    nvidia-smi
    

三、安装CUDA

  1. 在官网上选择适合自己驱动程序的CUDA版本,基本原则是CUDA版本不高于nvidia-smi 显示的CUDA Version版本号,如果设备上已经有CUDA环境,但是当前用户不能识别,直接跳转第4步
    在这里插入图片描述
    以下两种安装方式均可,如果之前安装驱动与deb对应的驱动版本一致,选择deb方便,否则选择runfile
    注意: wget使用wget -c 命令,可以断点续传
    runfile文件中实际包含了驱动,如果已经安装,注意取消驱动安装的勾选。
    在这里插入图片描述

    wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
    sudo sh cuda_11.8.0_520.61.05_linux.run
    

    在这里插入图片描述在终端按顺序执行官方提供的命令

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
    sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
    wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
    sudo dpkg -i cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
    sudo cp /var/cuda-repo-ubuntu2004-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
    sudo apt-get update
    sudo apt-get -y install cuda
    
  2. 配置环境变量

    • 如果针对本用户,则只编辑~/.bashrc文件

      sudo vim ~/.bashrc
      

      最后添加

      ##cuda版本号##
      export PATH=$PATH:/usr/local/cuda-11.8/bin
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64
      

      保存退出后执行

      source ~/.bashrc
      
    • 如果针对所有用户,则继续编辑/etc/profile文件

      sudo vim /etc/profile
      

      最后添加

      ##cuda版本号##
      export PATH=$PATH:/usr/local/cuda-11.8/bin
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64
      

      保存退出后执行

      source /etc/profile
      
  3. 执行nvcc -V,查看是否安装成功
    在这里插入图片描述

  4. 如果设备上已经有CUDA环境,但是当前用户不能识别,按照上述流程配置~/.bashrc文件即可

  5. 安装cuDNN
    需要注册NVIDIA账号下载。根据安装CUDA版本选择——下载地址
    因为安装的CUDA是11.8版本因此选择cuDNN v8.7.0

    tar -xvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz 
    cd cudnn-linux-x86_64-8.6.0.163_cuda11-archive/
    sudo cp lib/* /usr/local/cuda/lib64/
    sudo cp include/* /usr/local/cuda/include/
    sudo chmod a+r /usr/local/cuda/include/cudnn.h
    sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
    

    查看cuDNN版本方法

    cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
    

四、安装Anaconda

安装过程参考这篇博客,注意将安装目录设置到当前用户管理的文件夹

五、安装Tensorflow和Pytorch GPU版

Tensorflow

Windows系统下GPU版本的Tensorflow似乎只支持到2.10.0版本,但是Linux系统下似乎没有这个问题。只要配置好CUDA和cuDNN即可正常使用GPU在这里插入图片描述
在这里插入图片描述

Pytorch

根据官网提供的链接进行下载,同样配置好CUDA和cuDNN即可正常使用GPU
在这里插入图片描述

附两个检测脚本

import tensorflow as tf

print(tf.test.is_built_with_cuda())
print(tf.config.list_physical_devices("GPU"))
print("Num GPUs Available: ", len(tf.config.list_physical_devices("GPU")))

在这里插入图片描述

import torch

print(torch.__version__)
print(torch.cuda.is_available())
print(torch.cuda.device(0))
print(torch.cuda.device_count())
print(torch.cuda.get_device_name(0))

在这里插入图片描述
另:TensorFlow中显示的警告是因为没有安装TensorRT。

一般的深度学习项目,训练时为了加快速度,会使用多 GPU 分布式训练。但在部署推理时,为了降低成本,往往使用单个 GPU 机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深度学习环境,如 caffe,TensorFlow 等。由于训练的网络模型可能会很大(比如,inception,resnet 等),参数很多,而且部署端的机器性能存在差异,就会导致推理速度慢,延迟高。这对于那些高实时性的应用场合是致命的,比如自动驾驶要求实时目标检测,目标追踪等。所以为了提高部署推理的速度,出现了很多轻量级神经网络,比如 squeezenet,mobilenet,shufflenet 等。基本做法都是基于现有的经典模型提出一种新的模型结构,然后用这些改造过的模型重新训练,再重新部署。
TensorRT是对训练好的模型进行优化。 TensorRT 就只是推理优化器。当你的网络训练完之后,可以将训练模型文件直接丢进 TensorRT中,而不再需要依赖深度学习框架(Caffe,TensorFlow 等)。
TensorRT只负责模型的推理(inference)过程,一般不用TensorRT来训练模型

  • TensorRT的安装可参考官网的安装教程

  • 下载链接(需要注册NVIDIA账号,并填写问卷)

  • 根据自己的系统版本和 CUDA 版本,选择安装包,如图所示(如果是完整安装,建议选择Tar Packages,这样可以自行选择安装位置)
    在这里插入图片描述

  • 安装时只需要把压缩文件解压,相应的库文件拷贝到系统路径下即可

    # 将下载的压缩文件解压
    tar -xvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz
    sudo cp -r TensorRT-8.6.1.6/ /usr/local/
    
    #解压得到TensorRT-8.6.1.6的文件夹,将里边的lib绝对路径添加到环境变量中
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/TensorRT-8.6.1.6/lib
    
  • 为了避免其它软件找不到 TensorRT 的库,建议把 TensorRT 的库和头文件添加到系统路径下

    # TensorRT路径下
    sudo cp -r ./lib/* /usr/lib
    sudo cp -r ./include/* /usr/include
    

    如果CUDA版本在11.7及以上,更改环境变量以启用Lazy Loading

    延迟加载:延迟内核从主机加载到GPU,直到内核被调用。
    只加载已使用的内核,可能会显著节省设备端内存。
    这也将加载延迟从应用程序的开始推迟到第一次调用内核的时候————总的二进制加载延迟通常会显著减少,但也会转移到应用程序的后期。
    
    vim ~/.bashrc
    # 添加
    CUDA_MODULE_LOADING=LAZY
    # !wq
    source  ~/.bashrc
    
  • 32
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值