TensorFlow | TensorFlow GPU+CUDA+cuDNN环境搭建以及使用

2024/04/18 TensorFlow 共 3793 字,约 11 分钟

前言

NVIDIA CUDA® 深度神经网络库 (cuDNN) 是一个 GPU 加速的深度神经网络基元库,能够以高度优化的方式实现标准例程(如前向和反向卷积、池化层、归一化和激活层)。 全球的深度学习研究人员和框架开发者都依赖 cuDNN 来实现高性能 GPU 加速。 借助 cuDNN,研究人员和开发者可以专注于训练神经网络及开发软件应用,而不必花时间进行低层级的 GPU 性能调整。 cuDNN 可加速广泛应用的深度学习框架,包括 Caffe2、Chainer、Keras、MATLAB、MxNet、PaddlePaddle、PyTorch 和 TensorFlow。

准备工作

组件及其版本

  • 版本信息确定

Anaconda(3)+ Python(3.11.8)+ Tensorflow-gpu(2.13)+ CUDA(11.8.0)+ cuDNN(8.9.2)

  • 查看本机GPU的cuda版本
    img

显示CUDA版本为12.4 => cuda(cudatoolkit)版本低于或等于12.4均可(可向下兼容). 上图红框为:显存使用/显存大小,蓝框为GPU使用率。

  • 查看NVIDIA控制面板
    img

环境搭建

Anaconda+Python虚拟环境安装

img
img

安装CUDA与cuDNN

  • 查看cuDNN可安装版本
    img

  • 查看CUDA可安装版本
    img

命令安装

  • cuDNN安装

安装命令:conda install cudnn=8.9.2 -c anaconda
在这条命令中,-c anaconda 指定了从 anaconda channel 安装包,cudnn=8.2.1 精确指定了要安装的软件包及其版本号。

  • CUDA安装

安装命令:

下载安装

  • CUDA的下载以及安装
    img
    • Microsoft Visual Studio安装
      img
    • CUDA安装

      安装目录:D:\software\NVIDIA\CUDA

      img
      img
      img
      img

    • CUDA配置

      新版已不需要单独配置环境变量

    • CUDA安装成功测试
      img
  • cuDNN下载以及安装
    img
    • cuDNN安装

      在D:\software\NVIDIA\CUDA\v12.4位置全部替换为cudnn-windows-x86_64-9.1.0.70_cuda12-archive中的解压文件

      img

    • cuDNN安装测试
      img

Installing Tensorflow

conda create -n tf python==3.9.13 tensorflow对conda支持并不友好
tensorflow==2.10.1 是支持windows gpu 的最后一个版本
pip install --upgrade tensorflow==2.10.1

img

TensorFlow 2.13.1版本需要Python版本: Requires: Python >=3.8
安装命令:# For GPU users
pip install tensorflow[and-cuda]
# For CPU users
pip install tensorflow

Installing Pytroch

  • Pytroch安装
    img
    img

  • Pytroch安装测试
    img

  • TensorBoard安装

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

img

  • TensorBoard安装测试
    img
    img
    img

Installing JAX

  • 安装方式I

pip3 install jax jaxlib -i https://pypi.tuna.tsinghua.edu.cn/simple

img

  • 安装方式II

I.CPU-only (Linux/macOS/Windows)
pip install -U "jax[cpu]"
II.GPU (NVIDIA, CUDA 12, x86_64)
pip install -U "jax[cuda12_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
或者:
pip install --upgrade jax==0.4.7 jaxlib==0.4.7+cuda11.cudnn82 -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html

img

  • JAX nightly installation

jaxlib NVIDIA GPU (CUDA 12):
pip install -U --pre jaxlib -f https://storage.googleapis.com/jax-releases/jaxlib_nightly_cuda12_releases.html

img

  • 安装测试
    img

测试

Q&A

  • Q: CPU和GPU的区别是什么呢?
  • A: img

  • Q: cuDNN的主要特性
  • A:

1. 为各种常用卷积实现了 Tensor Core 加速,包括 2D 卷积、3D 卷积、分组卷积、深度可分离卷积以及包含 NHWC 和 NCHW 输入及输出的扩张卷积
2. 为诸多计算机视觉和语音模型优化了内核,包括 ResNet、ResNext、EfficientNet、EfficientDet、SSD、MaskRCNN、Unet、VNet、BERT、GPT-2、Tacotron2 和 WaveGlow
3. 支持 FP32、FP16、BF16 和 TF32 浮点格式以及 INT8 和 UINT8 整数格式
4. 4D 张量的任意维排序、跨步和子区域意味着可轻松集成到任意神经网络实现中
5. 能为各种 CNN 体系架构上的融合运算提速

  • Q: tensorflow2.13.1 Num GPUs Available: 0 解决 img
  • A:

tensorflow==2.10.1 是支持windows gpu 的最后一个版本

  • Q: 如何查看cuDNN版本
  • A:

import torch
print(torch.backends.cudnn.version())

img

  • Q: TensorBoard简介
  • A:

TensorBoard是Google开发的一个机器学习可视化工具。其主要用于记录机器学习过程,例如: 1.记录损失变化、准确率变化等 2.记录图片变化、语音变化、文本变化等。例如在做GAN时,可以过一段时间记录一张生成的图片 3.绘制模型

名称解释

名称解释说明备注
tensorflow深度学习框架 
cudaCUDA是显卡厂商NVIDIA推出的运算平台。CUDA™是一种由NVIDIA推出的通用并行计算架构,是一种并行计算平台和编程模型,该架构使GPU能够解决复杂的计算问题 
cudnncuDNN的全称为NVIDIA CUDA® Deep Neural Network library,是NVIDIA专门针对深度神经网络中的基础操作而设计基于GPU的加速库。 
nvidia驱动用来驱动pc的nvidia显卡 
GPU显卡是我们平时说的GPU,现在大多数的电脑使用NVIDIA公司生产的显卡;常见的型号有Tesla V100,GTX950M,GTX1050TI,GTX1080等 
CUDA ToolkitCUDA工具包的主要包含了CUDA-C和CUDA-C++编译器、一些科学库和实用程序库、CUDA和library API的代码示例、和一些CUDA开发工具。 
NVCCNVCC就是CUDA的编译器,可以从CUDA Toolkit的/bin目录中获取,类似于gcc就是c语言的编译器。 
   
   

参考资料

文档信息

Search

    Table of Contents