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

news2025/3/14 12:10:51

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.coloradmin.cn/o/2311429.html

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

相关文章

springboot项目使用中创InforSuiteAS替换tomcat

springboot项目使用中创InforSuiteAS替换tomcat 学习地址一、部署InforSuiteAS1、部署2、运行 二、springboot项目打包成war包 特殊处理1、pom文件处理1、排除内嵌的tomcat包2、新增tomcat、javax.servlet-api3、打包格式设置为war4、打包后的项目名称5、启动类修改1、原来的不…

Tomcat-web服务器介绍以及安装部署

一、Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用…

18类创新平台培育入库!长沙经开区2025年各类科技创新平台培育申报流程时间材料及申报条件

长沙经开区打算申报企业研发中心、技术创新中心、工程技术研究中心、新型研发机构、重点实验室、概念验证中心和中试平台、工程研究中心、企业技术中心、制造业创新中心、工业设计中心等创新平台的可先备案培育入库,2025年各类平台的认定将从培育库中优先推荐&#…

使用 Elasticsearch 进行集成测试初始化​​数据时的注意事项

作者:来自 Elastic piotrprz 在创建应该使用 Elasticsearch 进行搜索、数据聚合或 BM25/vector/search 的软件时,创建至少少量的集成测试至关重要。虽然 “模拟索引” 看起来很诱人,因为测试甚至可以在几分之一秒内运行,但它们实际…

9. Flink的性能优化

1. Flink的资源和代码优化 1.1 slot资源配置 Flink中具体跑任务的进程叫TaskManager,TM进程又会根据配置划分出诺干个TaskSlot,它是具体运行SubTask的地方。slot是Flink用来隔离各个subtask的资源集合,这里的资源一把指内存,TCP…

【文生图】windows 部署stable-diffusion-webui

windows 部署stable-diffusion-webui AUTOMATIC1111 stable-diffusion-webui Detailed feature showcase with images: 带图片的详细功能展示: Original txt2img and img2img modes 原始的 txt2img 和 img2img 模式 One click install and run script (but you still must i…

华为:Wireshark的OSPF抓包分析过程

一、OSPF 的5包7状态 5个数据包 1.Hello:发现、建立邻居(邻接)关系、维持、周期保活;存在全网唯一的RID,使用IP地址表示 2.DBD:本地的数据库的目录(摘要),LSDB的目录&…

视频输入设备-V4L2的开发流程简述

一、摄像头的工作原理与应用 基本概念 V4L2的全称是Video For Linux Two,其实指的是V4L的升级版,是linux系统关于视频设备的内核驱动,同时V4L2也包含Linux系统下关于视频以及音频采集的接口,只需要配合对应的视频采集设备就可以实…

浅论数据库聚合:合理使用LambdaQueryWrapper和XML

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数据库聚合替代内存计算(关键优化)二、批量处理优化四、区域特殊处理解耦五、防御性编程增强 前言 技术认知点:使用 XM…

CentOS 7.9 安装 ClickHouse 文档

1. 环境准备 确保系统为 CentOS 7.9,并已安装 Docker。如果未安装 Docker,请先安装 Docker。 安装 Docker # 卸载旧版本 Docker(如果有) sudo yum remove -y docker docker-client docker-client-latest docker-common docker-…

WPS条件格式:B列的值大于800,并且E列的值大于B列乘以0.4时,这一行的背景标红

一、选择数据区域 选中需要应用条件格式的区域(例如A2:E100 )。 二、打开条件格式 点击“开始”选项卡,选择“条件格式” > “新建规则”。 三、选择规则类型 选择“使用公式确定要设置格式的单元格”。 四、输入公式 在公式框中输入以…

MWC 2025 | 紫光展锐联合移远通信推出全面支持R16特性的5G模组RG620UA-EU

2025年世界移动通信大会(MWC 2025)期间,紫光展锐联合移远通信,正式发布了全面支持5G R16特性的模组RG620UA-EU,以强大的灵活性和便捷性赋能产业。 展锐芯加持,关键性能优异 RG620UA-EU模组基于紫光展锐V62…

AI-Ollama本地大语言模型运行框架与Ollama javascript接入

1.Ollama Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。 Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等多种…

PROFINET转PROFIBUS从案例剖析网关模块的协议转换功能

一、 案例背景 在当下追求高效协同的工业自动化生产体系里,设备间的无缝互联互通堪称关键要素。某企业的生产车间中,有一台性能稳定的变频器,其配备的是PROFIBUS接口。与此同时,操控整个生产线的核心大脑——西门子1500 PLC&…

VEC系列-RabbitMQ 入门笔记

消息队列(MQ)对于开发者来说是一个经常听到的词汇,但在实际开发中,大多数人并不会真正用到它。网上已经有很多关于 MQ 概述和原理的详细讲解,官网文档和技术博客也都介绍得很深入,因此,我在这里…

第5章 使用OSSEC进行监控(网络安全防御实战--蓝军武器库)

网络安全防御实战--蓝军武器库是2020年出版的,已经过去3年时间了,最近利用闲暇时间,抓紧吸收,总的来说,第5章开始进入主机安全(HIDS)领域了,2022年的时候有幸做过终端安全一段时间&a…

安装IK分词器;IK分词器配置扩展词库:配置扩展字典-扩展词,配置扩展停止词字典-停用词

安装IK分词器;IK分词器配置扩展词库:配置扩展字典-扩展词,配置扩展停止词字典-停用词 安装IK分词器IK分词配置扩展词库配置扩展字典-扩展词配置停止词字典-停用词测试配置字典前配置字典后 本文 ElasticSearch 版本为:7.17.9&…

pgsql行列转换

目录 一、造测试数据 二、行转列 1.函数定义 2.语法 3.示例 三、列转行 1.函数定义 2.语法 3.示例 一、造测试数据 create table test ( id int, json1 varchar, json2 varchar );insert into test values(1,111,{111}); insert into test values(2,111,222,{111,22…

Nginx 开启Baise认证

开启Baise认证 需要再站点Server配置中添加一下配置,添加htpasswd文件 server{auth_basic "HTTP Basic Authentication";auth_basic_user_file /etc/nginx/htpasswd;# 其他配置信息... }如果你的 Linux 服务器没有安装 htpasswd 工具,可以通…

基于python实现的疫情数据可视化分析系统

基于python实现的疫情数据可视化分析系统 开发语言:Python 数据库:MySQL所用到的知识:Django框架工具:pycharm、Navicat 系统功能实现 总体设计 系统实现 系统功能模块 系统首页可以查看首页、疫情信息、核酸检测、新闻资讯、个人中心、后…