CUDA C++ 高效入门第二章 -- 英伟达 GPU 硬件知识 101

发布时间:2026/7/26 8:21:36
CUDA C++ 高效入门第二章 -- 英伟达 GPU 硬件知识 101 CUDA C 高效入门第二章 -- 英伟达 GPU 硬件知识 1011 资料2 正文2.1 英伟达 GPU 都有哪些系列2.2 英伟达 GPU 的 CC2.3 英伟达 GPU 的 CUDA 核张量核光线追踪核SM2.4 GPU 显存2.5 GPU 算力如何度量3 总结1 资料本文是 CUDA C 高效入门系列第二篇主要介绍英伟达 GPU 的型号和硬件参数以及介绍算力的度量单位。本文参考资料如下1樊哲勇CUDA编程 基础与实践 第一章2cuda-programming-guide 1.2 节3CUDA GPU Compute Capability4Legacy CUDA GPU Compute Capability5什么是张量本系列博客汇总链接CUDA C 高效入门系列。2 正文2.1 英伟达 GPU 都有哪些系列1GeForce 系列主要用于游戏和娱乐价格相对低廉性价比高也是大家接触最多的系列。大多数个人 PC 搭载的都是这个系列虽然便宜但也支持 CUDA 编程用来学习完全没有问题。2Tesla/NVIDIA 系列这是数据中心系列产品主要用于 AI 训练与推理、高性能科学计算。这个系列早年都是以 Tesla 开头CCCompute Capability下节会讲解 7.0 架构以后改为以 NVIDIA 开头。由于大模型的爆火这个系列的产品炙手可热供不应求一定程度上也影响了中美大国竞争的走势美国不让卖给不友好国家。这个系列具体有如下细分训练旗舰: H100, B200, A100推理优化: L40S, L4, T4超级芯片: GB200 (Grace CPUBlackwell GPU)3Quadro/NVIDIA RTX / RTX PRO 系列支持高速 OpenGL 渲染主要用于专业绘图设计比如 3D 游戏影视特效等。早年以 Quadro 开头CC 8.0 架构以后改为以 NVIDIA RTX 开头。4Jetson 系列是面向机器人/自动驾驶等嵌入式设备中的 GPU行业广泛采用的有 Jetson Xavier NXJetson Orin NXJetson Thor。2.2 英伟达 GPU 的 CC1CCCompute Capability计算能力以 X.Y 表示版本号X 为主版本号Y 为次版本号这个网址列出了所有英伟达 GPU 的 CC 版本号CUDA GPU Compute Capability。2CC 的含义初学者刚接触这个名字时往往会误认为这个数字代表 GPU 的性能但实际上这个数字代表 GPU 硬件架构和指令集的版本号。数字越大架构越新新功能越多目前最大的版本是 12.1。特别提示架构新不代表性能强新架构的 GPU 也有高性能版和普通性能版。3每一代 CC 的代号美国人喜欢用代号称呼事物比如 ros 的版本就用各种乌龟名指代ROS高效入门第一章 – ROS历史与现状 第 2.4 节。而英伟达每一代 GPU 的 CC 版本使用的是大科学家的名字具体如下X 1 特斯拉Tesla 2006X 2 费米Fermi 2010X 3 开普勒Kepler 2012X 5 麦克斯韦Maxwell 2014X 6 帕斯卡Pascal 2016X 7 伏特Volta 2017X.Y 7.5 图灵Turing 2018X.Y 8.0 安培Ampere2020X.Y 8.9 艾达·洛夫莱斯Ada Lovelace2022X.Y 9.0 赫柏Hopper2022X.Y 10.0 布莱克韦尔Blackwell2024X.Y 12.0 布莱克韦尔Blackwell 20262.3 英伟达 GPU 的 CUDA 核张量核光线追踪核SM1CUDA 核在上一篇 CUDA C 高效入门第一章 – 为什么要学习 GPU CUDA 文章中我们提到 GPU 将更多的片上空间用于计算而弱化了片上缓存和流控制。因此相比 CPU 有若干个大处理核4/8/16/32 核GPU 有数量远大于 CPU 的很多小处理核如 GeForce RTX 5090 拥有 21760 个处理核而这些小处理核也叫 CUDA 核即专门跑 CUDA 程序的处理核。2张量核Tensor Core张量是数学里的概念零阶张量就是数字一阶张量就是数组二阶张量就是二维数组矩阵三阶张量就是三维数组具体可以参考这篇博客什么是张量。张量核自 CC 7.0 架构后引入是专门用于处理矩阵二阶张量乘加运算的处理核速度是 CUDA 核进行矩阵运算的数十倍例如 GeForce RTX 5090 有 680 个张量核。3光线追踪核RT Core光线追踪指的是通过追踪光线与物体的交互反射、折射、阴影模拟真实世界中光线的物理行为来渲染图像从而生成极其逼真的光影效果。光线追踪核是专门用于游戏和 3D 图形中“光影计算”的处理核例如 GeForce RTX 5090 有 170 个光线追踪核。4SMsStreaming Multiprocessors 中文名为流式多处理器。前面讲了 GPU 有众多的 CUDA 核张量核以及光线追踪核但这些处理核并不是铁板一块而是先被分成不同的 GPCsGraphics Processing Clusters 图形处理集群然后再分为多个 SM 组下图例如 GeForce RTX 5090 有 170个 SM 组每个 SM 组 有 128个CUDA核心 4个张量核 1个光线追踪核。这么安排足够灵活能适应不同的计算需求。图注一个 GPU 包含许多流式多处理器SM每个 SM 又包含许多功能单元。图形处理集群GPC是 SM 的集合。GPU 是一组连接到 GPU 内存的 GPC。CPU 通常有多个核心和一个连接到系统内存的内存控制器。CPU 和 GPU 通过诸如 PCIe 或 NVLINK 的互连技术连接。2.4 GPU 显存1显存容量和显存带宽类似 CPU 有内存条GPU 也有内存条如上图GPU 的内存也叫显存显存的大小和速度也是影响 GPU 性能的关键指标。显存大小即显存容量显存速度即显存带宽。2目前主流 GPU 显存主要分为 GDDR 系列和 HBM 系列消费级游戏和 3D 图形 GPU 使用 GDDR 系列如 GeForce RTX 5090 的显存使用 GDDR732 GB 显存容量1.79 TB/s 显存带宽大模型训练和推理 GPU 使用 HBM 系列如 NVIDIA H200 的显存使用 HBM3e141GB 显存容量4.8 TB/s 显存带宽。补充目前 HBM 显存市场基本被三家垄断SK海力士58%、三星电子21%和美光21%2026 年上半年的 AI 基建潮让他们赚到了大钱股票一飞冲天2.5 GPU 算力如何度量1FLOPSFloating-point operations per second每秒浮点运算次数简单来说就是电脑每秒钟能做多少次带小数的数学运算如加减乘除。这个数据才是处理器性能或者叫算力的度量单位。2半精度单精度双精度浮点数运算半精度浮点数FP16指的是使用 16 bit 存储一个浮点数能支持小数点后 3-4 位单精度浮点数FP32指的是使用 32 bit 存储一个浮点数能支持小数点后 6-7 位双精度浮点数FP64指的是使用 64 bit 存储一个浮点数能支持小数点后 15-16 位因此FLOPS 也分半精度单精度和双精度三种在 Ai 训练和推理领域一般使用 FP16/BF16 FLOPS在图形和游戏领域一般使用 FP32 FLOPS在科学计算领域一般使用 FP64 FLOPS。通常情况下Tesla/NVIDIA 数据中心系列 GPU 的单精度 FLOPS 是双精度的两到三倍GeForce 游戏和娱乐系列 GPU 的单精度 FLOPS 是双精度的 32~64 倍双精度被大幅阉割。3FP16 vs BF16在 AI/深度学习领域GPU 开始广泛使用 BF16 FLOPS即 Brain Floating Point脑浮点格式。BF16 与 FP16 同样使用 16 bit 存储一个浮点数但是他的 bit 分配更类似 FP32通过强化指数位弱化尾数位使得 BF16 的浮点数运算既有 FP16 的速度又有 FP32 的范围更适合 AI 模型神经网络对指数范围比尾数精度更敏感因此牺牲少量精度换取计算效率是可接受的。4不同数量级的 FLOPSMFLOPS每秒百万次10^6GFLOPS每秒十亿次10^9—— 主流 CPU英特尔 Xeon638 FP32 GFLOPSTFLOPS每秒万亿次10^12—— 主流 GPUGeForce RTX 5090104.8 FP32 TFLOPS1.637 FP64 TFLOPSPFLOPS每秒千万亿次10^15—— 大型数据中心节点EFLOPS每秒百亿亿次10^18—— 目前顶尖超算的水平5TOPSTera Operations Per Second每秒万亿次10^12整数运算 (INT8, INT4)次数。AI 模型为了推理更快普遍使用量化技术即把高精度的 FP32 和 FP16 浮点数压缩成低精度的 INT8 和 INT4 整数。因此INT8 精度下的 TOPS 值也成为衡量 GPU 性能的重要指标。3 总结通过这篇文章读者能对英伟达 GPU 的硬件参数进行解读能评估一款 GPU 的性能。下一篇我们将介绍英伟达 GPU 的 CUDA 生态能基于 Ubuntu 系统搭建 CUDA 开发环境。