NVIDIA GPU 架构梳理

这篇具有很好参考价值的文章主要介绍了NVIDIA GPU 架构梳理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文中图片大部分来自NVIDIA 产品白皮书
TODO:英伟达显卡型号梳理

目录

一、NVIDIA GPU的架构演变历史
二、Tesla 架构
三、Fermi架构
四、Kepler架构
五、Maxwell架构
六、Pascal架构
七、Volta架构
八、Turing架构
九、Ampere架构
十、Hopper架构

一、NVIDIA GPU的架构演变历史和基本概念[1]

截止2021年,发布时间离我们最近的8种NVIDIA GPU微架构是:

  • Tesla  (特斯拉)
  • Fermi(费米)
  • Kepler(开普勒
  • Maxwell(麦克斯韦
  • Pascal(帕斯卡
  • Volta(伏特)
  • Turing(图灵)
  • Ampere(安培)
  • Hopper(赫柏)

NVIDIA一般以历史上一些著名科学家的名字命名自己的GPU微架构,上面8种微架构分别是:特斯拉费米开普勒麦克斯韦帕斯卡伏特图灵安培,赫柏

其中最新的是2020年宣布的Ampere架构。

二、Tesla 架构

Tesla 架构的资料在官网也没找到多少,不过这是英伟达第一个实现统一着色器模型的微架构。

显卡架构有哪些,云计算

经典型号是G80,在Fermi架构白皮书的开篇部分有对G80的简要介绍:

  • G80 是第一款支持 C 语言的 GPU,让程序员无需学习新的编程语言即可使用GPU的强大功能。
  • G80 是第一款用单一、统一的处理器取代独立的顶点和像素管道的 GPU,该处理器可以执行顶点、几何、像素和计算程序。
  • G80 是第一款使用标量线程处理器的 GPU,无需程序员手动管理向量寄存器
  • G80 引入了单指令多线程 (SIMT) 执行模型,即多个独立线程使用一条指令并发执行。
  • G80 为线程间通信引入了共享内存(shared memory)和屏障同步(barrier synchronization)。

显卡架构有哪些,云计算

G80 显卡

三、Fermi架构[2]

Fermi 架构是NVIDIA GPU 架构自初代 G80 以来最重大的飞跃。

NVIDIA的GPU研发团队从G80和GT200两个型号上汲取经验,采用全新的设计方法来创建世界上第一个计算 GPU。在这个过程中,专注于提高以下关键领域:

  • 提高双精度性能——虽然单精度浮点性能大约是桌面 CPU 性能的十倍,但一些 GPU 计算应用程序也需要更高的双精度性能。
  • ECC 支持——ECC 允许 GPU 计算用户在数据中心安装中安全地部署大量 GPU,并确保医疗成像和金融期权定价等数据敏感应用程序免受内存错误的影响。
  • True Cache Hierarchy—— 一些并行算法无法使用 GPU 的共享内存,用户需要一个真正的缓存架构来帮助他们。
  • 更多共享内存——许多 CUDA 程序员要求超过 16 KB 的 SM 共享内存来加速他们的应用程序。
  • 更快的上下文切换——用户要求在应用程序和更快的图形和计算互操作之间进行更快的上下文切换。
  • 更快的原子操作(Atomic Operations)——用户要求为他们的并行算法提供更快的读-修改-写原子操作。

基于以上出发点,Fermi架构有以下四大亮点:

第三代流式多处理器 (SM)

  • 每个 SM 有 32 个 CUDA 内核,是 GT200 的 4 倍
  • 8 倍于 GT200 的峰值双精度浮点性能
  • Dual Warp Scheduler 同时调度和分派来自两个独立 warp 的指令
  • 64 KB RAM,可配置共享内存和 L1 cache

第二代并行线程执行 ISA

  • 具有完整 C++ 支持的统一地址空间
  • 针对 OpenCL 和 DirectCompute 进行了优化
  • 完整的 IEEE 754-2008 32 位和 64 位精度
  • 带有 64 位扩展的完整 32 位整数路径
  • 支持过渡到 64 位寻址的内存访问指令
  • 通过预测提高性能

改进的内存子系统

  • 具有可配置 L1 和Unified L2 Caches 的 NVIDIA Parallel DataCache TM 层次结构
  • 第一个支持 ECC 内存的 GPU
  • 大幅提升原子内存操作性能

NVIDIA GigaThread TM 引擎

  • 应用程序上下文切换速度提高 10 倍
  • 并发内核执行
  • 乱序线程块执行
  • 双重叠内存传输引擎

以上是Fermi 架构相较于初代架构提升的地方

下面具体看看Fermi 架构的配置

显卡架构有哪些,云计算

Fermi 架构

第一个基于Fermi架构的GPU,使用 30 亿个晶体管实现,共计512个CUDA内核。

这512 个 CUDA 内核被组织成 16 个 SM,每个 SM 是一个垂直的矩形条带(红框中的内容),分别位于一个普通的 L2 cache周围,每个 SM 有32 个CUDA 内核。

一个CUDA 内核为一个线程在每个时钟周期里执行一条浮点或整数指令

6个64-bit显存分区,组成一个384-bit的显存接口,总共支持高达 6GB 的 GDDR5 DRAM显存。

GDDR5:第五版图形用双倍数据传输率存储器
DRAM:动态随机存取存储器

主机接口(host interface )通过 PCI-Express 将 GPU 连接到 CPU。 Giga Thread 全局调度器将线程块分发给 SM 线程调度器。

显卡架构有哪些,云计算

Fermi图形渲染架构


整个 GPU 有多个 GPC(图形处理集群),单个GPC包含一个光栅引擎(Raster Engine),四个 SM(流式多处理器),GPC 可以被认为是一个独立的 GPU。所有从 Fermi 开始的 NVIDIA GPU,都有 GPC。

显卡架构有哪些,云计算

Fermi Streaming Multiprocessor (SM)

上图是将16个SM中的 1 个拿出来放大后的详细结构图,其中包含:

  • 橙色部分:2 个 Warp Scheduler/Dispatch Unit
  • 绿色部分:32 个 CUDA 内核,分在两条 lane 上,每条分别是 16 个
  • 浅蓝色部分:register file-寄存器文件和 L1 cache
  • 16 个 Load/Store units (LD/ST Unit)
  • 4 个 Special Function Units (SFU)

每个 SM 具有 32 个 CUDA 内核,就是图中写着Core的绿色小方块儿,每个 CUDA 内核都有一个完全流水线化的整数算术逻辑单元 (ALU) 和浮点单元 (FPU):

显卡架构有哪些,云计算

CUDA 内核

SM(Streaming Multiprocessors)是GPU架构中非常重要的部分,GPU硬件的并行性就是由SM决定的。

四、Kepler架构

显卡架构有哪些,云计算

Kepler架构的思路是:减少SM单元数(在这一代中叫SMX单元),增加每组SM单元中的CUDA内核数。在Kepler架构中,每个SM单元的CUDA内核数由Fermi架构的32个激增至192个。

显卡架构有哪些,云计算

在每个SMX中:

  • 4 个 Warp Scheduler,8 个 Dispatch Unit
  • 绿色:192个 CUDA 内核,分在12条 lane 上,每条分别是 16 个
  • 黄色:64 个DP双精度运算单元,分在4条 lane 上,每条 lane 上 16 个
  • 32 个 LD/ST Unit
  • 32 个 SFU

五、Maxwell架构

Maxwell架构的SM单元和Kepler架构相比,又有很大变化,这一代的SM单元更像是把4个Fermi 架构的SM单元,按照2x2的方式排列在一起,这一代称为SMM单元:

显卡架构有哪些,云计算

显卡架构有哪些,云计算

SMM 使用基于象限的设计,具有四个 32 核处理块(processing blocks),每个处理块都有一个专用的 warp 调度程序,能够在每个时钟分派两条指令。

每个 SMM 单元提供

  • 八个纹理单元(texture units)
  • 一个多态引擎(polymorph engine-图形的几何处理)
  • 专用寄存器文件和共享内存。

每个处理块中:

  • 1个 Warp Scheduler,2 个 Dispatch Unit
  • 绿色:32个 CUDA 内核
  • 8个 LD/ST Unit
  • 8个 SFU

CUDA内核总数 从Kpler时代的每组SM单元192个减少到了每组128个,但是每个SMM单元将拥有更多的逻辑控制电路,便于精确控制。

参考:
Maxwell: The Most Advanced CUDA GPU Ever Made | NVIDIA Developer Blog

六、Pascal架构

显卡架构有哪些,云计算

pascal架构的GP100核心

这里有一个新概念:核心

NVIDIA不同的架构会有几种不同的核心,Pascal架构有GP100、GP102两种大核心:

  • GP100:3840个CUDA核心,60组SM单元;
  • GP102:3584个CUDA核心,28组SM单元;
第2组数据存疑

核心是一个完整的GPU模组,上图展示了一个pascal架构的GP100核心,带有 60 个 SM 单元。

不同的显卡产品可以使用不同的 GP100 配置,一般是满配或者减配,比如Tesla P100 使用了 56 个 SM 单元。

显卡架构有哪些,云计算

GP100核心的SM单元

每个SM单元中,分为2个Process Block,每个Process Block中:

  • 1个 Warp Scheduler,2 个 Dispatch Unit
  • 绿色:32个 CUDA 内核
  • 黄色:16 个DP双精度运算单元,分在2条 lane 上,每条 lane 上 8个
  • 8个 LD/ST Unit
  • 8个 SFU

CUDA内核总数从Maxwell时代的每组SM单元128个减少到了每组64个,这一代最大的特点是又把DP双精度运算单元加回来了。

制程工艺升级到了16nm,性能大幅提升,功耗却不增加。

七、Volta架构

显卡架构有哪些,云计算

Volta架构的GV100核心

显卡架构有哪些,云计算

GV100核心的SM单元

每个SM单元中,分为4个Process Block,每个Process Block中:

  • 1个 Warp Scheduler,1个 Dispatch Unit
  • 8 个 FP64 Core
  • 16 个 INT32 Core
  • 16 个 FP32 Core
  • 2 个 Tensor Core
  • 8个 LD/ST Unit
  • 4个 SFU

在前几代架构中:

一个CUDA 内核在每个时钟周期里只能为一个线程执行一条浮点或整数指令

但是从Volta架构开始,将一个CUDA 内核拆分为两部分:FP32 和 INT32,好处是在同一个时钟周期里,可以同时执行浮点和整数指令,提高计算速度。

Volta架构在传统的单双精度计算之外还增加了专用的Tensor Core张量单元,用于深度学习、AI运算等。

八、Turing架构

显卡架构有哪些,云计算

Turing架构的TU102核心

Turing架构目前一共有三种核心:

  • TU102核心
  • TU104核心
  • TU106核心

显卡架构有哪些,云计算

TU102核心的SM单元

每个SM单元有4个处理块,每个处理块中:

  • 1 个 Warp Scheduler,1 个 Dispath Unit
  • 16 个 INT32 Core
  • 16 个 FP32 Core
  • 2 个 Tensor Core
  • 4 个 LD/ST Unit
  • 4 个 SFU

这一代架构去掉了对FP64的支持。

九、Ampere架构

显卡架构有哪些,云计算

Ampere架构的GA102核心

显卡架构有哪些,云计算

GA102核心的SM单元

每个SM单元分成4个处理块,每个处理块中:

  • 1 个 Warp Scheduler,1 个 Dispatch Unit
  • 8 个 FP64 Core
  • 16 个 FP32 Core
  • 16 个 INT32 Core
  • 1 个 Tensor Core
  • 8 个 LD/ST Unit
  • 4 个 SFU

这一代架构又把FP64 Core加回来了,同时也是自Volta架构以来的,NVIDIA第三代Tensor技术,保持一代架构更新一次Tensor。

显卡架构有哪些,云计算

十、Hopper架构

NVIDIA Hopper架构的H100芯片采用台积电4nm工艺(N4是台积电N5工艺的优化版),核心面积为814平方毫米,比A100小14平方毫米。虽然核心面积比A100小14平方毫米,但得益于4nm工艺,晶体管密度数量从542亿提升到800亿。

显卡架构有哪些,云计算

  从核心设计图来看,NVIDIA Hopper架构与苹果UltraFusion相似,但它在本质上还是单独的一颗晶片,而不是苹果M1 Ultra那种将两块芯片桥接起来。顶层拓扑与Ampere架构差别不大,整个Hopper架构GPU由8个图形处理集群(Graphics Processing Cluster,GPC)“拼接”组成,但每4个GPC共享25MB得L2缓存。核心两侧则是HBM3显存,拥有5120 Bit的位宽,最高容量可达80GB。

  片上的每个GPC由9个纹理处理集群(Texture Processor Cluster,TPC)组成,由PCIe5或接口进入的计算任务,通过带有多实例GPU(Multi-Instance GPU,MIG)控制的GigaThread引擎分配给各个GPC。GPC通过L2缓存共享中间数据,GPC计算的中间数据通过NVLink与其他GPU互通。每个TPC由2个流式多处理器(Streaming Multiprocessor)组成。

显卡架构有哪些,云计算

  Hopper架构的性能提升和主要变化体现在新型线程块集群技术和新一代的流式多处理器。NVIDIA在Hopper中引入了新的线程块集群机制,可实现跨单元进行协同计算。H100中的线程块集群可在同一GPC内的大量并发运行,对较大的模型具有更好的加速能力。

显卡架构有哪些,云计算

  每个包括128个FP32 CUDA核心、4个第4代张量核心(Tensor Core)。每个单元的指令首先存入L1指令缓存(L1 Instruction Cache),再分发到L0指令缓存(L1 Instruction Cache)。与L0缓存配套的线程束排序器(Wrap Scheduler,线程束)和调度单元(Dispatch Unit)为CUDA核心和张量核心分配计算任务。通过使用4个特殊函数单元(Special Function Unit,SFU)单元,进行超越函数和插值函数计算。

  NVIDIA在Hopper架构中引入新一代流式多处理器的FP8张量核心(Tensor Core),用来加速AI训练和推理。FP8张量核心支持FP32和FP16累加器以及两种FP8 输入类型(E4M3和E5M2)。与FP16或BF16相比,FP8将数据存储要求减半,吞吐量翻倍。在Transformer引擎的分析中,还会看到使用FP8可自适应地提升Transformer的计算速度。

  在GPU中,张量核心AI加速的关键模块,也是Ampere及之后GPU架构与早期GPU的重要区别。张量核心是用于矩阵乘法和矩阵累加 (Matrix Multiply-Accumulate,MMA) 数学运算的专用高性能计算核心,可为AI和HPC应用程序提供突破性的性能加速。

显卡架构有哪些,云计算

  Hopper的张量核心支持FP8、FP16、BF16、TF32、FP64和INT8 MMA数据类型。这一代张量核心的关键点是引入Transformer引擎。Transformer算子是主流的BERT到GPT-3等NLP模型的基础,越来越多地应用于计算机视觉、蛋白质结构预测等不同领域。

显卡架构有哪些,云计算

  与上一代A100相比,新的Transformer引擎与Hopper FP8张量核心相结合,在大型NLP模型上提供高达9倍的AI训练速度和30倍的AI推理速度。为了提升Transformer的计算效率,新Transformer引擎使用混合精度,在计算过程中智能地管理计算精度,在Transformer计算的每一层,根据下一层神经网络层及所需的精度,在FP8和其他浮点格式中进行动态格式转换,充分运用张量核心的算力。

显卡架构有哪些,云计算

  Hopper架构中新增加张量存储加速器 (Tensor Memory Accelerator,TMA) ,以提高张量核心与全局存储和共享存储的数据交换效率。新的TMA使用张量维度和块坐标指定数据传输,而不是简单的按数据地址直接寻址。TMA通过支持不同的张量布局(1D-5D张量)、不同的存储访问模式、显著降低寻址开销并提高了效率。

显卡架构有哪些,云计算

  TMA操作是异步的,多个线程可以共享数据通道,排序完成数据传输。TMA的关键优势是可以在进行数据复制的时候,释放线程的算力来执行其他工作。例如,在A100由线程本身负责生成所有地址执行所有数据复制操作;但Hopper中得TMA来负责生成地址序列(这个思路类似DMA控制器),接管数据复制任务,让线程去做其他事。

  与Ampere A100线相比,基于Hopper架构的H100计算性能提高大约6倍。性能大幅提升的核心原因是NVIDIA引入FP8张量核心和针对NLP任务的Transformer引擎,加上TMA技术减少单元在数据复制时的无用功。文章来源地址https://www.toymoban.com/news/detail-784985.html

到了这里,关于NVIDIA GPU 架构梳理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NVIDIA的StyleGAN、StyleGAN2、StyleGAN3系列论文解读,梳理基于风格的生成器架构

    通俗来讲就是,张三造假币 (Generator生成器) ,然后用验钞机去验证真假 (Discriminator辨别器) ,如果是假的就继续提高造假技术,直到验钞机检验不出来为止,也就是说一个造假一个验假(验钞机也需升级),两者互相学习和提高的过程,就叫做GAN,那在图片领域,就是想要生成

    2024年02月09日
    浏览(74)
  • Nvidia GPU 最新计算能力表(CUDA Compute Capability)

    对于深度学习,官方指出在GPU算力高于5.0时,可以用来跑神经网络 GPU Compute Capability Jetson AGX Xavier 7.2 Jetson Nano 5.3 Jetson TX2 6.2 Jetson TX1 5.3 Tegra X1 5.3 GPU Compute Capability GeForce RTX 3090 8.6 GeForce RTX 3080 8.6 GeForce RTX 3070 8.6 NVIDIA TITAN RTX 7.5 Geforce RTX 2080 Ti 7.5 Geforce RTX 2080 7.5 Geforce RTX 2070

    2024年02月05日
    浏览(38)
  • 高性能计算与AI融合成为刚需|什么是高性能计算?应用领域有哪些?与人工智能的关系梳理

    本文一部分转载自杨净 整理自 MEET2023量子位 算力的需求,远比以往来得更为猛烈。甚至有人直呼:得算力者得未来。 元宇宙、AIGC、AI for Science的涌现,又给高性能计算(HPC)平添了好几把火。 在诸多挑战与机遇共存交织的当下,这一领域泰斗中国工程院院士、清华大学计算

    2024年02月08日
    浏览(66)
  • GPU架构与计算入门指南

    大多数工程师对CPU和顺序编程都十分熟悉,这是因为自从他们开始编写CPU代码以来,就与之密切接触。然而,对于GPU的内部工作原理及其独特之处,他们的了解则相对较少。过去十年,由于GPU在深度学习中得到广泛应用而变得极为重要。因此,每位软件工程师都有必要了解其

    2024年02月03日
    浏览(36)
  • 怎么卸载Nvidia显卡驱动

    在Ubuntu 22.04上卸载Nvidia显卡驱动并手动重新安装的步骤可以分为几个主要部分。请确保在执行这些步骤之前,你已经备份了重要的数据,以防出现任何问题。 卸载当前的Nvidia驱动 打开终端 :你可以通过按 Ctrl+Alt+T 快捷键来打开终端。 查找安装的Nvidia驱动版本 :你可以使用

    2024年02月22日
    浏览(44)
  • Nvidia显卡驱动历史版本!

    安装低版本的cuda可能需要将自己的显卡驱动降到对应低版本,但是Nvidia官网都是给出的最新版本的显卡驱动。 目前,有两种查找第版本的方法,第一种就是网上常见的在Nvidia官网下,按f12然后加上一段命令,但是该方法对我而言是没有用的,所以我在这里找到了第二种方法

    2024年02月11日
    浏览(66)
  • 查看英伟达Nvidia显卡、cuda版本

     以下是查看你的显卡最大支持什么版本的cuda 1. 右击电脑桌面,打开“NVIDIA控制面板”。  2. 选择“帮助”,然后点击“系统信息”。  3. 在系统信息的\\\"显示\\\"里,可以看到显卡是“GeForce GTX 1050”。  4. 在系统信息里,选择\\\"组件\\\",找到”NVCUDA64.DLL“,即可看到显卡所支持的

    2024年02月02日
    浏览(46)
  • nvidia显卡驱动程序旧版本下载

    旧版本下载地址:https://www.nvidia.cn/Download/Find.aspx?lang=cn 直接进入后选择对应型号,然后下拉就有往期的版本,点击进入后选择下载 结束: Last updated posts inttf NVIDIA 340.108 / 390.154 Patcher for Kernel 6.2/6.1/6.0/5.19/5.18/5.17/5.16/5.15/5.14/5.13 [BASH Script] Fedora 37/36/35 NVIDIA Drivers Install Guide [5

    2024年02月11日
    浏览(90)
  • 【20230407】NVIDIA显卡算力、Jetson比较

    TOPS :指的是每秒钟可以执行的整数运算次数,它代表着计算机在处理图像、音频等任务时的处理能力。TOPS的单位是万亿次每秒(trillion operations per second)。一般是指整数运算能力 INT8 。 TFLOPS :指的是每秒钟可以执行的浮点运算次数,它代表着计算机在处理科学计算、机器

    2024年02月05日
    浏览(47)
  • ubuntu 20.0.4 搭建nvidia 显卡环境

    1、安装dokcer 2、docker 添加到用户组 创建docker用户组 添加当前用户加入docker用户组 重启docker服务 切换或者退出当前账户再从新登入 如果当前用户执行无报错, 则表示用户已经加到docker组 3、docker 配置阿里云镜像 daemon.json : 4、docker 配置汉化工具 拉取镜像:已经有大神准备

    2024年02月13日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包