GPU 的核心架构及参数

 NVIDIA GPU 的核心参数的差别和各自的优势。

  • CUDA Core:CUDA Core 是 NVIDIA GPU上的计算核心单元,用于执行通用的并行计算任务,是最常看到的核心类型。NVIDIA 通常用最小的运算单元表示自己的运算能力,CUDA Core 指的是一个执行基础运算的处理元件,我们所说的 CUDA Core 数量,通常对应的是 FP32 计算单元的数量。
  • Tensor Core:Tensor Core 是 NVIDIA Volta 架构及其后续架构(如Ampere架构)中引入的一种特殊计算单元。它们专门用于深度学习任务中的张量计算,如矩阵乘法和卷积运算。Tensor Core 核心特别大,通常与深度学习框架(如 TensorFlow 和 PyTorch)相结合使用,它可以把整个矩阵都载入寄存器中批量运算,实现十几倍的效率提升。
  • RT Core:RT Core 是 NVIDIA 的专用硬件单元,主要用于加速光线追踪计算。正常数据中心级的 GPU 核心是没有 RT Core 的,主要是消费级显卡才为光线追踪运算添加了 RTCores。RT Core 主要用于游戏开发、电影制作和虚拟现实等需要实时渲染的领域。

 CUDA Core主要用于向量类的计算任务,Tensor Core主要用于矩阵、卷积(通过IM2COL转换为矩阵乘法)类计算任务,训练和推理都会涉及到向量类任务和矩阵类任务,所以两者都会涉及到Tensor Core和CUDA的使用。同时Tensor Core是专门的矩阵计算单元,针对矩阵计算任务虽然其单元数目少,但是其吞吐率比CUDA Core要高很多,所以矩阵类任务依然会倾向于使用Tensor Core完成计算。

Tensor Core vs CUDA Core 区别

区别项

Tensor Core

CUDA Core

出现背景

AI迅速发展,对矩阵乘法的算力需求不断增大,有厂商提出TPU概念

科学计算迅速发展,为了使用GPU的高算力,科学家需要将科学计算任务适配成图形图像任务

设计目的

定制性争强矩阵计算能力(AI算力),融入CUDA生态,抢占人工智能计算所需要的算力高地

将浮点计算能力暴露给科学计算领域,加速科学计算,占领科学计算市场

计算任务类型

矩阵乘法运算

浮点加、乘、乘加运算

计算精度

强调低精度:fp16/fp8/int8/int4/b1

IEEE-754 标准的float精度

SM上的装配数目*

4

128

调度粒度/执行粒度

warp-level/warp-level

warp-level/thread-level

 NVIDIA GPU 架构的演进。


深度学习算力和显存 显卡算力和显存_CUDA


  • Volta 架构:Volta 架构是 NVIDIA GPU 的第六代架构,发布于 2017 年。Volta 架构专注于深度学习和人工智能应用,并引入了 Tensor Core。
  • Turing 架构:Turing 架构是 NVIDIA GPU 的第七代架构,发布于 2018 年。Turing 架构引入了实时光线追踪(RTX)和深度学习超采样(DLSS)等重要功能。
  • Ampere 架构:Ampere 架构是 NVIDIA GPU 的第八代架构,2020 年发布。Ampere 架构在计算能力、能效和深度学习性能方面都有重大提升。Ampere 架构的 GPU 采用了多个流多处理器(SM)和更大的总线宽度,提供了更多的 CUDA Core 和更高的频率。它还引入了第三代 Tensor Core,提供更强大的深度学习计算性能。Ampere 架构的 GPU 还具有更高的内存容量和带宽,适用于大规模的数据处理和机器学习任务。
  • Hopper 架构:Hopper 架构是 NVIDIA GPU 的第九代架构,2022 年发布。相较于 Ampere,Hopper 架构支持第四代 Tensor Core,且采用新型流式处理器,每个 SM 能力更强。Hopper 架构在计算能力、深度学习加速和图形功能方面带来新的创新和改进。

V100 vs A100 vs A800 vs H100


深度学习算力和显存 显卡算力和显存_深度学习算力和显存_02


V100 vs A100

V100 属于 Volta 架构,它采用 12nm FinFET 工艺,拥有 5120 个 CUDA 核心和 16GB-32GB 的 HBM2 显存,配备第一代 Tensor Cores技术,支持 AI 运算。

A100 采用全新的 Ampere 架构。它拥有高达 6912 个 CUDA 核心和 40GB 的高速 HBM2 显存。A100 还支持第二代NVLink技术,实现快速的 GPU 到 GPU 通信,提升大型模型的训练速度。A100 增加了功能强大的新第三代 Tensor Core,同时增加了对 DL 和 HPC 数据类型的全面支持,以及新的稀疏功能,可将吞吐量进一步翻倍。

A100 中的 TF32 Tensor Core 运算提供了一种在 DL 框架和 HPC 中加速 FP32 输入/输出数据的简单路径,其运行速度比 V100 FP32 FMA 运算快 10 倍,或者在稀疏性的情况下快 20 倍。对于 FP 16/FP 32 混合精度 DL,A100 的性能是 V100 的2.5倍,稀疏性的情况下提高到 5 倍。

在跑 AI 模型时,如果用 PyTorch 框架,相比上一代 V100 芯片,A100 在 BERT 模型的训练上性能提升 6 倍,BERT 推断时性能提升 7 倍。


深度学习算力和显存 显卡算力和显存_深度学习算力和显存_03


BERT 训练和推理上,V100 与 A100 的性能对比

A100 vs H100

NVIDIA H100 采用 NVIDIA Hopper GPU 架构,使 NVIDIA 数据中心平台的加速计算性能再次实现了重大飞跃。H100 采用专为 NVIDIA 定制的 TSMC 4N 工艺制造,拥有 800 亿个 晶体管,并包含多项架构改进。


深度学习算力和显存 显卡算力和显存_深度学习_04


H100 是 NVIDIA 的第 9 代数据中心 GPU,旨在为大规模 AI 和 HPC 实现相比于上一代 NVIDIA A100 Tensor Core GPU 数量级的性能飞跃。H100 延续了 A100 的主要设计重点,可提升 AI 和 HPC 工作负载的强大扩展能力,并显著提升架构效率。

H100 FP16 的吞吐量是 A100 FP16 的 3 倍
H100 FP8 的吞吐量是 A100 FP16 的 6 倍

A800 和 H800

说好 V100、A100、A800、H100、H800 这些 GPU 来做对比的,怎么没见 A800 和 H800 呢?从型号上看,莫非它们的性能是 A100、H800 的好几倍?

事实不然。虽然从数字上来看,800 比 100 数字要大,其实是为了合规对 A100 和 H100 的某些参数做了调整。A800 相对比 A100 而言,仅限制了 GPU 之间的互联带宽,从 A100 的 600GB/s 降至 400GB/s,算力参数无变化。而 H800 则对算力和互联带宽都进行了调整。


深度学习算力和显存 显卡算力和显存_人工智能_05


A800 虽然在互联带宽上有所降低,但和 A100 在双精方面算力一致,在高性能科学计算领域没有影响。