如何快速在Ubuntu服务器上搭建GPU深度学习环境(TensorFlow版本)
创始人
2025-01-19 02:33:15
0次

目录

  • 前言
  • 概念
    • 名词解释
      • pip
      • Anaconda
      • conda
      • GPU
      • CUDA Driver
      • CUDA
      • CUDA Toolkit
      • cuDNN
    • 关系
      • Anaconda和CUDA的关系
      • CUDA Toolkit和CUDA Driver的关系
      • CUDA,CUDA Toolkit,cuDNN的关系
  • 下载
    • 下载环境
    • 下载方式
      • Anaconda
      • Conda Driver
      • CUDA/CUDA Toolkit
      • cuDNN
      • TensorFlow
    • 版本对应
  • 后记
  • 参考

前言

随着AI的迅速发展,主流的深度学习框架Pytorch和TensorFlow越来越被人熟知,笔者最近也需要基于Ubuntu服务器进行深度学习环境的搭建,作为一名刚涉及该领域的Green Bird,自然遇到了很多问题,但自我探索和他人帮助下也有了一些浅薄理解。
关于Pytorch和TensorFlow的区别和联系,可见如何对比目前最流行的两个深度学习框架:TensorFlow和PyTorch。

概念

网络上目前的相关教程相当繁杂,所以在TensorFlow环境的搭建之前,读者应先确定以下几点是否了解清楚。

  • 关注目前搭建的操作系统以及对应的版本:Linux,Windows,macOS,不同系统的操作斜体样式步骤有很大差别
  • 关注目前操作对象的版本以及相互之间的依赖关系,例如关于Cuda和Cudnn的版本以及之间的依赖关系
  • 关注目前版本是支持CPU的还是GPU的,或者是共同支持的
  • 关注文件下载的网络问题,很多报错都是来自于网络以及源的问题

名词解释

pip

pip 是 Python 的包管理工具,用于安装、升级、卸载 Python 包或模块。它可以自动解决包之间的依赖关系,并且可以从 Python Package Index (PyPI) 以及其他源获取和安装包。

个人认为,Conda一定程度上代替了一部分pip的功能。

Anaconda

Anaconda 是一个开源的 Python 和 R 语言发行版,用于数据科学、机器学习、科学计算和大数据处理。它包含了许多常用的数据科学和机器学习库,如 NumPy、Pandas、Matplotlib、Scikit-learn 等,以及 Jupyter Notebook 等工具。

那么为什么一定要在此处使用Anaconda呢?

  • 集成环境:Anaconda 提供了一个集成的环境,包括 Python 或 R 解释器、常用库、开发工具和环境管理工具,使得在数据科学和机器学习项目中更加方便快捷
  • 包管理:Anaconda 提供了 Conda 包管理器,可以方便地安装、更新、管理各种库和工具,解决了依赖关系和版本兼容性的问题。个人认为这是选择使用它来管理机器学习库的最重要的优点之一
  • 环境管理:Anaconda 允许创建多个独立的环境,每个环境可以有自己的库版本和依赖关系,可以避免不同项目之间的冲突。个人认为这是选择使用它来管理机器学习库的最重要的优点之二
  • 跨平台支持:Anaconda 可以在 Windows、macOS 和 Linux 等多个操作系统上运行,为用户提供了跨平台的数据科学和机器学习开发环境

conda

conda 是一个开源的包管理和环境管理系统,主要用于数据科学、机器学习和科学计算领域。它是 Anaconda 发行版的核心组件之一,也可以作为独立的软件包安装。

简单来说,conda是Anaconda的核心,以及命令实现。

GPU

GPU(Graphics Processing Unit,图形处理器)是一种专门用于处理图形和图像计算的处理器。它最初是为了加速计算机图形渲染而设计的,用于处理3D图形、视频、游戏图形等。与传统的CPU(Central Processing Unit,中央处理器)相比,GPU具有更多的并行处理单元和更高的内存带宽,使其在处理大规模并行计算任务时具有更高的性能和效率。

在深度学习领域,GPU扮演着重要的角色,因为深度学习模型通常需要进行大量的矩阵运算和并行计算,而GPU的并行计算能力能够显著加速这些计算过程,从而加快模型的训练和推理速度。

通俗来讲,GPU也就是我们常说的显卡,主要的供应商便是NVIDIA,主要型号有很多,例如我们津津乐道的GeForce RTX 4090。

CUDA Driver

CUDA Driver是NVIDIA提供的软件驱动程序,用于与CUDA-enabled GPU(支持CUDA的GPU)进行通信和协作。这个驱动程序是必需的,因为它使得计算机的操作系统和CUDA应用程序能够与GPU进行有效的交互,从而实现并行计算任务的加速。

CUDA

CUDA(Compute Unified Device Architecture)是由NVIDIA开发的并行计算平台和应用程序编程接口(API)。它允许开发者使用C/C++、Python等编程语言在NVIDIA的GPU上进行并行计算。CUDA提供了一系列库和工具,可以加速各种应用程序,包括科学计算、深度学习、图形处理等。通过CUDA,开发者可以利用GPU的并行计算能力来加速复杂的计算任务,提高程序的性能和效率。

CUDA Toolkit

CUDA Toolkit是NVIDIA提供的软件套件,用于开发基于CUDA(Compute Unified Device Architecture)的并行计算应用程序。它包含了一系列的工具和库,帮助开发者利用NVIDIA GPU进行高性能的并行计算。

CUDA Toolkit的主要组件包括:

  • CUDA 编译器(nvcc): 用于将CUDA C/C++代码编译成GPU可执行的二进制代码。
  • CUDA Runtime API: 提供了一组API函数,用于管理GPU设备、内存分配、数据传输等操作。
  • CUDA 核函数(Kernel): 开发者可以编写CUDA核函数,这些函数在GPU上并行执行,用于处理大规模数据并进行并行计算。
  • CUDA 库: 包括了一系列优化的CUDA库,如线性代数库cuBLAS、快速傅立叶变换库cuFFT等,可加速各种计算任务。
  • CUDA Debugger(cuda-gdb)和性能分析工具(nvprof): 用于调试CUDA程序和进行性能分析,帮助开发者优化程序性能。

其他更多的信息可见CUDA Toolkit官网。

cuDNN

cuDNN(CUDA Deep Neural Network library)是NVIDIA提供的用于深度学习的加速库。它提供了高效的基本操作实现,如卷积、池化、归一化等,以及针对深度神经网络(DNN)的优化算法和工具。通过cuDNN,开发者可以利用NVIDIA GPU的并行计算能力加速深度学习模型的训练和推理过程,提高模型的性能和效率。

其他更多的信息可见cuDNN官网

关系

以上介绍到的概念都会在关于GPU版本的深度学习框架下涉及到。
具体安装的流程图大体如下。
关系

Anaconda和CUDA的关系

通俗来讲,深度学习框架的版本更迭较为迅速,依赖关系也比较重要,所以需要下载Anaconda来进行虚拟环境的创建和方便的包管理,以便于CUDA的后续操作。

CUDA Toolkit和CUDA Driver的关系

CUDA Toolkit的主要包含了CUDA-C和CUDA-C++编译器、一些科学库和实用程序库、CUDA和library API的代码示例、和一些CUDA开发工具。(通常在安装CUDA Toolkit的时候会默认安装CUDA
Driver
;但是我们经常只安装CUDA Driver,没有安装CUDA Toolkit,因为有时不一定用到CUDA
Toolkit
;比如我们的笔记本电脑,安装个CUDA Driver就可正常看视频、办公和玩游戏了)

详细内容见NVIDIA官方

CUDA,CUDA Toolkit,cuDNN的关系

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

下载

下载环境

  • 服务器平台:Ubuntu 22.04
  • Conda Driver:535
  • Anaconda:conda 4.6.13
  • Python:python 3.10.0
  • CUDA:cuda 11.7
  • cuDNN:cuDNN 8.9.7
  • TensorFlow:tensorflow 2.12.0

下载方式

以下根据相关帖子进行下载

Anaconda

可以直接根据官网进行操作Anaconda下载
下载结束后可以通过conda --version 来进行检查版本,是否安装成功

Conda Driver

可以参考:Conda Driver安装
最后使用nvidia-smi来检验安装是否成功
驱动

在此说明的是这里的 CUDA Version需要比接下来安装的CUDA的版本大或者相同,CUDA和CUDA Driver显卡驱动不是一一对应的,同一台电脑上可同时安装多个CUDA版本

CUDA/CUDA Toolkit

安装CUDA就是安装CUDA Toolkit(CUDA是运算平台名称、CUDA Toolkit是工具包),就是从官网下载CUDA Toolkit安装.run文件(如cuda_11.7.176_384.81_linux.run)进行安装。
安装成功后,在/usr/local路径下才会有cuda-11.7文件夹,且同时才可以使用nvcc -V或者nvcc --version
可以查询到CUDA版本。
可以参考Ubuntu22.04安装CUDA、cudnn详细步骤和最新CUDA环境配置教程(ubuntu 20.04 + cuda 11.7 + cuDNN 8.4)

cuDNN

  • 现在官网下载对应版本cuDNN官网
  • 然后进行解压拷贝
	#版本根据自己的cuda对应 	tar -xvf cudnn-linux-x86_64-8.9.7.27_cuda11.7-archive.tar.xz 	cd cudnn-linux-x86_64-8.9.7.27_cuda11.7-archive 	sudo cp lib/* /usr/local/cuda-11.7/lib64/ 	sudo cp include/* /usr/local/cuda-11.7/include/ 	sudo chmod a+r /usr/local/cuda-11.7/lib64/* 	sudo chmod a+r /usr/local/cuda-11.7/include/* 
  • 通过cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 查看版本
    具体安装可以参考Linux系统中安装CUDA和cuDNN教程并检查安装成功

TensorFlow

以上配置好后就可以自由地在自己的conda环境里配置TensorFlow了

# 如果下载过慢注意源的切换 conda install tensorflow==2.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple 

然后进入python进行版本查看

python 

在python环境中

import tensorflow as tf # 检查tensorflow是否得到CUDA支持,安装成功则显示true,否则为false tf.test.is_built_with_cuda() # 检查tensorflow是否可以获取到GPU,安装成功则显示true,否则为false tf.test.is_gpu_available() 

版本对应

下载完成后,我们需要通过TensorFlow和Python的对应版本来确定创建的Conda虚拟环境版本,详细可见TensorFlow官网
在这里插入图片描述
可参考conda虚拟环境中安装cuda和cudnn,再也不用头疼版本号的问题了

后记

配置环境是一个繁琐的过程,但有时却不可或缺。网络上的帖子对于不同版本不同问题有很大的局限性和时效性,多尝试多思考。

参考

  • [1] 理清GPU、CUDA、CUDA Toolkit、cuDNN关系以及下载安装
  • [2] 最新CUDA环境配置教程(ubuntu 20.04 + cuda 11.7 + cuDNN 8.4)
  • [3]AutoDL帮助文档
  • [4]Linux(多用户下)查看cuda、cudnn版本、查看已经安装的cuda版本、切换不同版本cuda之间的切换等相关命令
  • [5]ubuntu22.04 cuda和cudnn安装和配置
  • [6]TensorRT安装
  • [7]nvidia驱动,cuda与cudnn的关系

相关内容

热门资讯

一分钟揭秘辅助!微乐小程序游戏... 一分钟揭秘辅助!微乐小程序游戏破解器,微乐家乡小程序修改器-一直真的有辅助挂1)微乐小程序游戏破解器...
技术分享开挂!微信小程序微乐辅... 技术分享开挂!微信小程序微乐辅助器,微乐贵阳捉鸡麻将能不能开挂-一贯是真的有辅助工具在进入微信小程序...
科技介绍开挂!微乐小程序家乡自... 科技介绍开挂!微乐小程序家乡自建房辅助app,微乐自建房脚本如何下载-其实是有辅助神器1、超多福利:...
重大通报辅助!微信小程序微乐辅... 重大通报辅助!微信小程序微乐辅助器教程,微乐小程序微乐家乡辅助器-都是真的有辅助插件重大通报辅助!微...
玩家必备教程辅助!微信小程序游... 玩家必备教程辅助!微信小程序游戏破解微乐游戏,微信小程序微乐安徽辅助苹果-确实有辅助脚本1、完成微信...
科技分享开挂!微乐手游辅助脚本... 科技分享开挂!微乐手游辅助脚本平台,微乐小程序辅助器免费-其实有辅助神器一、微乐手游辅助脚本平台可以...
发现玩家辅助!微乐小程序辅助工... 您好,微乐小程序辅助工具这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多...
推荐一款透视挂!微乐小程序家乡... 推荐一款透视挂!微乐小程序家乡自建房辅助app,微乐河南小程序微乐辅助脚本-原来存在有辅助挂微乐小程...
一起来探讨开挂!微乐小程序开挂... 一起来探讨开挂!微乐小程序开挂黑科技,微乐自建房免费黑科技推荐-本来真的是有辅助脚本小薇(辅助器软件...
2024教程辅助!微信小程序微... 2024教程辅助!微信小程序微乐辅助免费,微乐小程序辅助教程-都是是真的有辅助挂1、点击下载安装,微...