NVIDIA(英伟达) GPU 芯片架构发展史

GPU 性能的关键参数

  1. CUDA 核心数量(个):决定了 GPU 并行处理能力,在 AI 等并行计算类业务下,CUDA 核心越多性能越好。

  2. 显存容量(GB):决定了 GPU 加载数据量的大小,在 AI 训练场景中,显存的大小决定了一次能够加载训练数据的量,在大模型训练时,显存容量很重要。

  3. 显存带宽(GB/s):是 GPU 芯片和显存之间的数据传输速率,作为决定性能最重要的因素之一,由显存频率和位宽决定。

    1. 显存位宽(bit):显存在一个时钟周期内所能传送数据的位数,位数越大则瞬间所能传输的数据量越大。

    2. 显存频率(MHz):反映了显存的速度。

  4. 浮点数算力(FLOPS):用来估算 GPU 的处理能力。

    1. 半精度(FP16):使用 2 个字节(16 位)进行存储。用于需要节省内存和加快计算速度的场景,如深度学习中的混合精度训练。在这些应用中,通过结合使用半精度和单精度浮点数,可以在保持模型精度的同时,减少内存占用和加快训练速度。

    2. 单精度(FP32):使用 4 个字节(32 位)进行存储。被广泛用于各种计算密集型应用,包括科学计算、图形渲染、深度学习等。在这些应用中,单精度浮点数提供了足够的精度和数值范围,以满足大多数计算需求。

    3. 双精度(FP64):使用 8 个字节(64 位)进行存储。用于需要高精度计算的场景,如复杂的科学模拟、计算化学、分子建模、流体动力学等。

NVIDIA GPU 系列型号分类

1. 消费级 GeForce 系列

  • RTX 50XX 系列(Blackwell)

  • RTX 40XX 系列(Ada Lovelace)

  • RTX 30XX 系列(Ampere)

  • RTX 20XX 系列(Turing)

  • GTX 16/10 系列(Turing/Pascal)

2. 专业工作站级

  • RTX A50XX 系列(Ada/Ampere)

  • RTX A60XX 系列(Ada/Ampere)

3. 数据中心级

  • Tesla H100 系列(Hopper)

  • Tesla A100 系列(Ampere)

  • Tesla L40 系列(Ada Lovelace)

NVIDIA GPU 架构发展简史

NVIDIA Tesla 系列服务器 GPGPU 用于大规模的分布式 AI 训练。

  • https://zh.wikipedia.org/wiki/NVIDIA_Tesla

图片

2008 - Tesla(特斯拉) 

Tesla 架构是 NVIDIA 第一个实现了统一着色器模型的芯片架构,具有完整的 Transform(坐标转换)、Lighting(光源处理)、Setup(三角形设置)和 Rendering(渲染引擎) 功能。针对 HPC 和 AI 场景,应用于早期的 CUDA 系列显卡中,但并非真正意义上的 GPGPU 芯片。

图片

  • 1 个 NVIDIA Tesla GPU 包含 7 个 TPC(Texture Processor Cluster,纹理处理集群)。

  • 1 个 TPC 包含 2 个 SM(Stream Multi-processor,流多处理器)。

  • 1 个 SM 包含:

    • 6 个 SP(Streaming Processor,流处理器)。SP 是 GPU 最基本处理单元,指令和任务最终都是在 SP 上处理的。GPU 所谓的并行计算,也就是有很多个 SP 在同时进行计算。

    • 2 个 SFU(Special Function Unit,特殊函数的计算单元)

    • 1 个 I-Cache(指令缓存)

    • 1 个 C-Cache(常量缓存)

    • 1 个 MT Issue(多线程指令获取)

    • 1 个 Shared Memory(共享内存)

  • 1 个共享的 L1 Cache(一级缓存)

  • 1 个共享的 Fetch/Dispatch(取指/分发)部件。

  • Load/Store Queues(访问存储单元),在 SM 和 Main Memory 之间快速传输数据;

  • Warp Scheduler(线程调度器),每个 Warp(线程束)包含了 32 个并行的 Threads,它们使用不同的数据执行相同的命令,Scheduler 会负责这些 Threads 的调度;

再细化每个  SP,包含了:

  • 1 个共享的 Fetch/Decode(取指/译码)部件。

  • 8 个 ALU(逻辑运算单元)。

  • 4 组 Execution contexts(执行环境),可 Concurrent but interleaved(并发交叉)执行 4 条 Instruction Streams(指令流)。

  • 每组 Execution contexts 有 8 个 Context,共计 32 个 Fragments(并发程序片元),即 32 个 CUDA threads。

图片

2010 - Fermi(费米) 

Fermi 是第一个真正意义上的 GPGPU 架构芯片,拥有 30 亿个晶体管,共计 512 个 CUDA core。并提高了以下关键特性:

  1. 提高 FP64 双精度性能

  2. 支持 ECC:ECC 支持在 DC 场景中安全地部署大量 GPU,并确保数据敏感型 Application 免受内存错误的影响。

  3. True Cache Hierarchy:一些并行算法无法使用 GPU 的 SM(Share Memory),用户需要一个真正的缓存架构来帮助他们。

  4. 更多的共享内存:许多 CUDA 程序员要求超过 16 KB 的 SM 来加速他们的应用程序。

  5. 更快的上下文切换:用户要求在应用程序和更快的图形和计算互操作之间进行更快的上下文切换。

  6. 更快的 Atomic Operations(原子操作):用户要求为他们的并行算法提供更快的读-修改-写原子操作。

图片

  • 一个 Fermi GPU 拥有 16 个 SM。

  • 每个 SM:

    • 2 个 Warp(线程束)

    • 2 组,共 32 个 CUDA Core

    • 16 组加载存储单元(LD/ST)

    • 4 个特殊函数单元(SFU)

  • 每个 Warp:

    • 1 个 Warp 调度器(Warp Scheduler)

    • 16 个 Core

    • 分发单元(Dispatch Unit)

  • 每个 Core:

    • 1 个 FPU(浮点数单元)

    • 1 个 ALU(逻辑运算单元)

2012 - Kepler(开普勒) 

Kepler 的架构设计思路是减少 SM 单元数(在这一代中叫 SMX 单元),增加每组 SM 单元中的 CUDA core 数,每个 SM 单元的 CUDA core 数由 Fermi 架构的 32 个增至 192 个。相较于 Fermi,Kepler 更快,效率更高,性能更好。

图片

Kepler 将 SM 升级到了 SMX,支持动态创建渲染线程(下图),以降低 CPU 和 GPU 之间的数据传输延迟。

每个 SMX:

  • 4 个 Warp Scheduler,8 个 Dispatch Unit。

  • 绿色:192 个 CUDA 内核,分在 12 条 lane 上,每条分别是 16 个。

  • 黄色:64 个 DP 双精度运算单元,分在 4 条 lane 上,每条 lane 上 16 个。

  • 32 个 LD/ST Unit。

  • 32 个 SFU。

图片

2014 - Maxwell(麦克斯韦) 

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

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

  • 每个 Maxwell GPU 有 4 个 GPC,每个 GPC 有 4 个 SMM。

  • 每个 SMM 单元:

    • 八个纹理单元(texture units)。

    • 一个多态引擎(Polymorph engine)的图形几何处理。

    • 专用寄存器文件和共享内存。

每个处理块:

  • 1 个 Warp Scheduler,2 个 Dispatch Unit。

  • 绿色:32 个 CUDA core。

  • 8个 LD/ST Unit。

  • 8个 SFU。

图片

2016 - Pascal(帕斯卡) 

Pascal 将处理器和数据集成在同一个程序包内,以实现更高的计算效率。

Pascal 的 CUDA core 总数从 Maxwell 的每组 SM 单元 128 个减少到了每组 64 个,这一代最大的特点是又把 DP 双精度运算单元加回来了。制程工艺升级到了 16nm,性能大幅提升,功耗却不增加。1080 系列、1060 系列基于 Pascal 架构。

Pascal 拥有 GP100、GP102 两种大核心,核心是一个完整的 GPU 模组。

  • GP100:3840 个 CUDA core,60 组 SM 单元;

  • GP102:3584 个 CUDA core,28 组 SM 单元;

图片

GP100 核心的 SM 单元:

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

    • 1 个 Warp Scheduler,2 个 Dispatch Unit。

    • 绿色:32 个 CUDA core。

    • 黄色:16 个 DP 双精度运算单元,分在 2 条 lane 上,每条 lane 上 8 个。

    • 8 个 LD/ST Unit。

    • 8 个 SFU。

2017 - Volta(伏特) 

Volta 配备了 640 个 Tensor 核心,每秒可提供超过 100 兆次浮点运算(TFLOPS)的深度学习效能,用于深度学习、AI 运算等,比前一代的 Pascal 架构快 5 倍以上。

Tesla V100(Volta 架构)

  • CUDA 核心:5120 个

  • 显存容量:16GB/32GB HBM2

  • 显存带宽:900 GB/s

  • 浮点算力:

    • FP32:约 15.7 TFLOPS

    • FP64:约 7.8 TFLOPS(双精度为单精度的一半)

  • 价格:约 10,000 美元

图片

从 Volta 开始,将一个 CUDA core 拆分为两部分:

  1. FP32

  2. INT32

好处是在同一个时钟周期里,可以同时执行浮点和整数指令,提高计算速度。

Volta 架构的 GV100 核心。每个 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。

图片

2018 - Turing(图灵) 

Turing 架构配备了名为 RT Core 的专用光线追踪处理器,能够以高达每秒 10 Giga Rays 的速度对光线和声音在 3D 环境中的传播进行加速计算。

Turing 架构将实时光线追踪运算加速至上一代 NVIDIA Pascal™ 架构的 25 倍,并能以高出 CPU 30 多倍的速度进行电影效果的最终帧渲染。2060 系列、2080 系列显卡也是跳过了 Volta 直接选择了 Turing 架构。

图片

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

  1. TU102 核心

  2. TU104 核心

  3. TU106 核心

Turing 架构的 TU102 GPU,它的特点如下:

  • 6 GPC(图形处理簇)

  • 36 TPC(纹理处理簇)

  • 72 SM(流多处理器)

  • 每个 GPC 有 6 个 TPC,每个 TPC 有 2 个 SM

  • 4,608 CUDA core

  • 72 RT core

  • 576 Tensor core

  • 288 纹理单元

  • 12x32 bit GDDR6 内存控制器(共 384 位)

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。

    • 256 KB 寄存器文件。

图片

2020 - Ampere(安培) 

2020 年 5 月 14 日,NVIDIA 发布了最新一代的 A100 GPU 产品(简称 GA100),采用 Ampere 架构。

Tesla A100(Ampere 架构)

  • CUDA 核心:6912 个

  • 显存容量:40GB/80GB HBM2

  • 显存带宽:1,555 GB/s(80GB 版本)

  • 浮点算力:

    • FP32:约 19.5 TFLOPS

    • TF32(AI 优化):156 TFLOPS

  • 价格:约 10,000 美元

图片

下面我们通过 Ampere 架构为例,介绍 GPU 的组成部分。

图片

Ampere 架构沿用了成熟的 GPC-TPC-SM 多级架构,包含了:

  • 8 组 GPC(Graphics Processor Cluster,图形处理簇)。

    • 每组 TPC 包含 8 组 SM(Stream Multiprocessor,流多处理器)。

    • 每组 GPC 包含 8 组 TPC(Texture Processor Cluster,纹理处理簇)。

  • 2 组 L2 Cache,避免计算单元访问远端 L2 Cache 时出现高延迟。每组 L2 Cache 为 40MB,在一定程度上减轻计算单元对显存带宽的依赖。

  • PCI Express 4.0

  • NVLink 3.0

图片

再将 A100 核心的 SM 展开,可以看到 Ampere 的 SM 单元设计沿用了从 Volta 开始的分精度计算思路,将计算核心分成了:

  1. 针对整数计算的 INT32 单元

  2. 针对浮点计算的 FP32、FP64 单元

  3. 针对 FP16、INT8 等 AI 计算中常见的数据类型的 Tensor Cores

每个 SM 包含了:

  • 1 个共享的 L1 Ins-Cache(一级指令缓存)

  • 1 个共享的 L1 Data-Cache(一级数据缓存)

  • 1 个共享的 Shared Memory(共享内存)

  • 4 个子模块

其中 RT Cores 是游戏卡才有的,面对纯计算用途的 GA100 并不需要。

每个子模块包含了:

  • 1 个 L0 I-Cache(指令缓存)

  • 1 个 Warp Scheduler(线程调度器),每个 Warp(线程束)包含了 32 个并行的 Threads,它们使用不同的数据执行相同的命令,Scheduler 会负责这些 Threads 的调度。Warp Scheduler 的指令通过 Dispatch Units 发送到 Core 执行。

  • 1 个 Dispatch Unit(取指/分发)部件。

  • 1 个 Register File(寄存器文件)。

  • 16 个针对浮点计算的 FP32 CUDA Core。

  • 16 个针对整数计算的 INT32 CUDA Core。

  • 8 个针对浮点计算的 FP64 CUDA Core。

  • 1 个针对 FP16、INT8 等 AI 计算的 Tensor Core 3.0,几乎可以加速所有的常见数据类型,包括:FP16、BF16、TF32、FP64、INT8、INT4 和二进制。

  • 8 个 LD/ST(Load/Store Queues,访问存储单元),在 SM 和 Main Memory 之间快速传输数据;

  • 1 个 SFU(Special Function Unit,特殊函数的计算单元),执行特殊数学运算,例如:Sin、Cos、Log 等。

图片

而 GA102 核心的 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。

2022 - Hopper(霍珀) 

Hopper 架构的 H100 GPU 是 NVIDIA 划时代的产品,其 CUDA 核心数量达到了惊人的 14,592~16,896 颗,转为 AI 大模型训练开发。

Tesla H100(Hopper 架构)

  • CUDA 核心:14,592~16,896

  • 显存容量:80GB HBM3

  • 显存带宽:3 TB/s(理论值)

  • 浮点算力:

    • FP8(AI 优化):4,000 TFLOPS(稀疏模型)

  • 价格:约 30,000 美元(含企业支持服务38)

  • 应用:万亿参数语言模型训练、超大规模数据中心

H100 相对于 A100 有了质的飞跃。配备 InfiniBand interconnect 的 H100 的性能是 A100 的 30 倍。新的 NVLink 交换系统互连针对一些最大且最具挑战性的计算工作负载,这些工作负载需要跨多个 GPU 加速节点的模型并行性来适应。这些工作负载带来了新一代的性能飞跃,在某些情况下, InfiniBand 的性能比 H100 再次提高了三倍。

图片

H100 架构详解推荐浏览官方文档:https://developer.nvidia.com/zh-cn/blog/nvidia-hopper-architecture-in-depth/

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/897018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Python实战进阶》No 10:基于Flask案例的Web 安全性:防止 SQL 注入、XSS 和 CSRF 攻击

第10集:Web 安全性:防止 SQL 注入、XSS 和 CSRF 攻击 在现代 Web 开发中,安全性是至关重要的。无论是用户数据的保护,还是系统稳定性的维护,开发者都需要对常见的 Web 安全威胁有深刻的理解,并采取有效的防…

【大数据分析 | 深度学习】在Hadoop上实现分布式深度学习

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈智能大数据分析 ⌋ ⌋ ⌋ 智能大数据分析是指利用先进的技术和算法对大规模数据进行深入分析和挖掘,以提取有价值的信息和洞察。它结合了大数据技术、人工智能(AI)、机器学习(ML&a…

盛铂科技SCP4000射频微波功率计与SPP5000系列脉冲峰值 USB功率计 区别

在射频(RF)和微波测试领域,快速、精准的功率测量是确保通信系统、雷达、卫星设备等高性能运行的核心需求。无论是连续波(CW)信号的稳定性测试,还是脉冲信号的瞬态功率分析,工程师都需要轻量化、…

自学微信小程序的第十三天

DAY13 1、使用map组件在页面中创建地图后,若想在JS文件中对地图进行控制,需要通过地图API来完成。先通过wx.createMapContext()方法创建MapContext(Map上下文)实例,然后通过该实例的相关方法来操作map组件。 const m…

深入解析 C# 中的泛型:概念、用法与最佳实践

C# 中的 泛型(Generics) 是一种强大的编程特性,允许开发者在不预先指定具体数据类型的情况下编写代码。通过泛型,C# 能够让我们编写更灵活、可重用、类型安全且性能优良的代码。泛型广泛应用于类、方法、接口、委托、集合等多个方…

H5DS编辑器是如何让企业快速构建动态页面

H5DS编辑器核心亮点: 1.拖拽式操作,小白友好:无需设计与代码基础!通过简单拖拽元素、调整文字和动画,即可生成交互式H5页面。内置海量模板和素材库,支持自定义设计风格,轻松适配企业品牌需求。…

Unity ECS与MonoBehaviour混合架构开发实践指南

一、混合架构设计背景 1. 技术定位差异 ECS(Entity Component System):面向数据设计(DOD),适用于大规模实体计算(如10万单位战斗) MonoBehaviour:面向对象设计&#xf…

[项目]基于FreeRTOS的STM32四轴飞行器: 三.电源控制

基于FreeRTOS的STM32四轴飞行器: 三.电源控制 一.IP5305T芯片手册二.电源控制任务 一.IP5305T芯片手册 注意该芯片低功耗特性,为防止进入待机,每隔一段时间发送一个电平。 官方提供的芯片外围电路设计图: 电气特性: 当负载电流持…

java环境部署

java环境部署 一、准备工作 jrejdkeclipse jdk下载:21和1.8-----官网:Oracle:Java 下载 |神谕 该处选择要依据自身的系统类型选择下载 idea的下载安装:IntelliJ IDEA | Other Versions 二、安装 三、环境配置 四、使用 五、i…

微服务通信:用gRPC + Protobuf 构建高效API

引言 在微服务架构中,服务之间的通信是系统设计的核心问题之一。传统的RESTful API虽然简单易用,但在性能、类型安全和代码生成等方面存在一定的局限性。gRPC作为一种高性能、跨语言的RPC框架,结合Protobuf(Protocol Buffers&…

使用 Docker 和 Nginx 高效部署 Web 服务(适用于慈云数据云服务器)

前言 在现代 Web 服务部署中,Docker 和 Nginx 的结合是一种高效、灵活且可扩展的解决方案。 Docker 使应用程序及其依赖项封装到一个独立的容器中,确保一致性,并简化部署过程。Nginx 作为高性能 Web 服务器和反向代理,能够高效处…

C 语言数据结构(一):时/空间复制度

目录 一、前言 1. 什么是数据结构 2. 什么是算法 二、时 / 空间复杂度 1. 算法效率 2. 时间复杂度 2.1 时间复杂度的概念 2.2 大 O 的渐进表示法 2.3 常见的计算时间复杂度的例子 2.3.1 实例 1 2.3.2 实例 2 2.3.3 实例 3 2.3.4 实例 4 2.3.5 实例 5 &#xff1a…

一文读懂Redis分布式锁

引言 在当今互联网时代,分布式系统已成为大规模应用的主流架构。然而,这种架构中多个服务同时对共享资源的操作可能导致并发问题,如数据不一致和资源争用。有效管理这些并发访问,确保共享资源的安全性显得尤为重要。 分布式锁作…

23种设计模式一览【设计模式】

文章目录 前言一、创建型模式(Creational Patterns)二、结构型模式(Structural Patterns)三、行为型模式(Behavioral Patterns) 前言 设计模式是软件工程中用来解决特定问题的一组解决方案。它们是经过验证…

极狐GitLab 17.9 正式发布,40+ DevSecOps 重点功能解读【三】

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…

elk的相关的基础

以下是关于ELK(Elasticsearch, Logstash, Kibana)的200个基础问题及其答案,涵盖了ELK的核心概念、组件、配置、使用场景、优化等方面。 ​Elasticsearch 基础 ​**什么是Elasticsearch?**​ 答:Elasticsearch是一个分…

Beyond Compare for mac v5.0.6.30713 文件对比利器 支持M、Intel芯片

Mac毒搜集到的Beyond Compare是一套超级的文件及文件夹(目录)的比较工具,不仅可以快速比较出两个目录的不同,还可以比较每个文件的内容,而且可以任意显示比较结果。 应用介绍 程序内建了文件浏览器,方便您对文件、文件夹、压缩包…

ProfibusDP主站转ModbusTCP网关如何进行数据互换

ProfibusDP主站转ModbusTCP网关如何进行数据互换 在现代工业自动化领域,通信协议的多样性和复杂性不断增加。Profibus DP作为一种经典的现场总线标准,广泛应用于工业控制网络中;而Modbus TCP作为基于以太网的通信协议,因其简单易…

python代码注释方式

在 Python 中,注释是用于解释代码、提高代码可读性和可维护性的重要工具。Python 支持两种主要的注释方式:单行注释和多行注释。此外,Python 还支持文档字符串(docstrings),用于为模块、函数、类和方法提供…

【杂谈】信创电脑华为w515(统信系统)登录锁定及忘记密码处理

华为w515麒麟芯片版,还有非麒麟芯片版本,是一款信创电脑,一般安装的UOS系统。 准备一个空U盘,先下载镜像文件及启动盘制作工具,连接如下: 百度网盘 请输入提取码 http://livecd.uostools.com/img/apps/l…