0%

显卡中的这些词儿都啥意思?

2020 年 9 月 2 日凌晨,RTX 30 系列显卡发布,新一代 Titan 正式命名为 RTX 3090,拥有高达 10496 个 CUDA Core,同时还搭载了第 2 代 RT Core 和 第 3 代 Tensor Core。等等,什么是 CUDA Core,它和流处理器有什么关系?RT Core 和 Tensor Core 又是干嘛的?为什么说老黄刀功精湛?拥有显示功能的芯片这么多,显卡/独显/核显/集显/GPU/APU 有什么区别?


拥有显示功能的芯片们

  • 显卡(Video Card/Display Card/Graphics Card):个人电脑的基础组成部分之一,计算和转换计算机需要显示的信息,提供扫描信号并控制显示器正确显示。

  • GPU(Graphics Processing Unit,图形处理器):显卡的核心,它与显存、PCB 等一同组成显卡。

  • APU(Accelerated Processing Unit,加速处理器):是 AMD 公司的处理器品牌。AMD 公司在并购 ATI 公司后,公布了代号为 AMD Fusion 的项目,目标是在一块芯片上集成传统的 CPU 和 GPU。AMD 提供半客制化 APU 服务,广为人知的例子就是 PS4 和 Xbox One 采用了客制化 APU。

  • 独显:独立显卡(External Video Card),由 GPU、显存、PCB 等组成,需要插在主板对应的接口上。一般语境下的显卡便是指独显。

  • 集显:集成显卡( Integrated Video Card),集成在主板的北桥芯片上,没有独立显存,需要占用内存。已淘汰。

  • 核显:核芯显卡,是 Intel 公司于 2010 年推出的显示核心 HD Graphics 的中文品牌名称,其高端系列为 Iris Graphics。它集成于 CPU 中,没有独立显存,需要占用内存。Intel 将北桥的功能集成在 CPU 上,包括集显,这种设计是为了回应 AMD Fusion 项目。

产品线

NVIDIA

NVIDIA 公司的产品线最为丰富,从用于移动设备的 Tegra,到消费级的 GeForce,再到专业级的 Quadro,还有数据中心使用的 Tesla,遍布游戏、设计、深度计算等各个领域。下文也围绕 NVIDIA 的 GeForce 系列产品的相关技术进行介绍。

  • GeForce:消费级产品,用于个人电脑,一般用来打游戏。
  • Quadro:专业级产品,用于工作站,用在计算机辅助设计和数字内容创作等特定行业。
  • Tegra:SoC 产品,用于移动设备,比如 Nintendo Switch。
  • Tesla:高性能计算(HPC)产品,用于数据中心的服务器,用来进行深度学习。

AMD

  • Radeon:消费级产品。
  • Radeon Pro:用于工作站和高性能计算。

Intel

Intel 公司的显示芯片集成在 CPU 中,一般用来点亮屏幕。

  • HD Graphics:普通核显。
  • Iris (Pro) Graphics:最高端的核显。

显卡核心架构

命名

众所周知,NVIDIA 近些年喜欢以物理学家的名字对显卡的核心架构进行命名,如 Pascal(帕斯卡,GeForce 10 系列),Volta(伏特,无 GeForce 系列产品),Turing(图灵,GeForce 20 系列)、Ampere(安培,GeForce 30 系列)。

nvidia-gpu-roadmap

NVIDIA GPU 路线图

代号与产品

近些年 NVIDIA 推出了不同架构、不同核心的多款产品,这里只列举 GeForce、Quadro 和 Tesla 三个系列的桌面端产品:

代号新特性核心代号产品
PascalGP100Tesla P100, Quadro GP100
GP102TITAN X(p), GTX 1080 Ti, Tesla P40, Quadro P6000
GP104GTX 1080, GTX 1070(Ti), GTX 1060(GDDR5X), Tesla P6/P4, Quadro P5000/P4000
GP106GTX 1060, Quadro P2200/2000
GP107GTX 1050(Ti), Quadro P1000/P620/P600/P400
GP108GTX 1030
Volta为深度学习设计的 Tensor CoreGV100TITAN V(CEO Edition), Tesla V100, Quadro GV100
Turing用于光线追踪的 RT core,借助 Tensor Core 实现 DLSSTU102TITAN RTX, RTX 2080 Ti, Quadro RTX 8000/6000
TU104RTX 2080(Super), RTX 2070 Super, Tesla T4, Quadro RTX 5000/4000
TU106RTX 2070, RTX 2060(Super)
阉割了 RT Core 和 Tensor CoreTU116GTX 1660(Ti/Super), GTX 1650 Super
TU117GTX 1650
Ampere第 2 代 RT Core,第 3 代 Tensor Core,全新 SMGA100Tesla A100
GA102RTX 3090, RTX 3080
GA104RTX 3070

可以看出,每一代架构一般都设计了多种不同的核心,以代号进行区分,同时每种核心又对应多种产品。

硬件架构

GP100架构

完整的 GP100 GPU 包含 6 个 GPC(Graphics Processing Cluster,图形处理集群),每个 GPC 包含 5 个 TPC(Texture Processing Cluster,纹理处理集群),每个 TPC 包含 2 个 SM(Streaming Multiprocessor,流多处理器)。

SM 里面绿色的 Core 便是 CUDA Core,也就是我们常说的 SP(Streaming Processor,流处理器);黄色的 DP Unit(Double Precision Unit,双精度单元)是用来进行双精度浮点计算的;LD/ST(Load Store Unit,载入储存单元)是用来操作内存的;SFU(Special Function Unit,特殊运算单元)负责特殊的 ALU 运算,如 SIN 和 COS。

每个 CUDA Core 由控制单元(Dispatch Port 和 Operand Collector)、浮点计算单元(FP Unit)、整数计算单元(INT Unit)以及计算结果队列组成。

衡量 GPU 性能的重要指标是浮点计算能力。单精度浮点数采用 4 个字节(32 位)来表达一个数字,双精度浮点数采用 8 个字节(64 位)来表达一个数字,此外还有半精度浮点数(16 位)。对于数字范围大而且需要精确计算的科学计算来说,要求采用双精度浮点数;对于常见的多媒体和图形处理计算单精度浮点数已经足够了;而对于一些要求精度更低的机器学习等应用来说,半精度浮点数就够用了。

可以看出,在 GP100 这个 Pascal 系列最专业的核心中,计算单精度浮点数的 FP Unit 和计算双精度浮点数的 DP Unit 的数量之比为 2:1,而在消费级产品中,更是砍掉了计算双精度浮点数的 DP Unit。

GV100架构

完整的 GV100 GPU 包含 6 个 GPC,每个 GPC 包含 7 个 TPC,每个 TPC 包含 2 个 SM,每个 SM 包含 64 个 FP32 核心(计算单精度浮点数)、32 个 FP64 核心(计算双精度浮点数)、64 个 INT32 核心(计算整数)、8 个 Tensor 核心、4 个纹理单元。

Tensor Core 的首次亮相便是在 Volta 架构中,第一代 Tensor Core 专为深度学习而设计,通过 FP16 和 FP32 下的混合精度矩阵乘法提供了突破性的性能。

TU102架构

完整的 TU102 GPU 包含 6 个 GPC,每个 GPC 包含 6 个 TPC,每个 TPC 包含 2 个 SM,每个 SM 包含 64 个 CUDA Core 和 8 个 Tensor Core。

Tensor Core 是专门为执行张量/矩阵运算而设计的专用执行单元,这些运算是深度学习中使用的核心计算功能。第二代 Tensor Core 首次为 GeForce 带来了基于深度学习的新 AI 功能——DLSS。DLSS(Deep Learning Super Sampling,深度学习超级采样)利用深度神经网络来提取渲染场景的多维特征,并智能地组合多个帧中的细节以构建高质量的最终图像。

在现代游戏中,渲染的帧并非直接显示,而是要先对其执行后期处理图像增强步骤。在此步骤中,将来自多个渲染帧的输入组合在一起,可以在保留细节的同时,消除诸如锯齿等视觉失真现象。例如,随机采样抗锯齿(TAA)是一种基于着色器的算法,使用运动矢量组合两帧,以确定在何处对前一帧进行采样。 然而这种图像增强过程从根本上来说很难正确实行。对于这类没有清晰算法解决方案的图像分析和优化问题可通过应用 AI 来完美解决。DLSS 通过消除细节,能够以更低的输入样本数更快地渲染,这意味 DLSS 得到的画质与传统渲染方式相差无几,但性能更高

Turing 引入了实时光线追踪功能,该功能使单个 GPU 可以渲染视觉逼真的 3D 游戏和有着精确阴影、反射和折射的复杂专业模型。 RT Core 用于加快光线追踪,可提供实时光线追踪体验。

GA100架构

RTX 3090 的 TU102 GPU 包含 7 个 GPC,每个 GPC 包含 6 个 TPC(其中某个 GPC 的 1 个 TPC 被屏蔽了),每个 TPC 包含 2 个 SM,每个 SM 包含 128 个 CUDA Core 和 4 个 Tensor Core。

在新的架构中,给 SM 每个分区中的 INT32 整数计算单元处添加了 FP32 浮点计算单元,使得这部分计算单元可以切换工作状态为 INT32 或 FP32,实现 FP32 操作两倍吞吐量的一设计目标。

刀法精湛

无论是 CPU 还是 GPU,同样一款核心,会根据品质不同做成不同型号的产品。也就是说,i3/i5/i7 可能是在同一条流水线上生产的,RTX 2080Ti 和 TITAN RTX 也可能出自同一片晶圆。通过调整核心的规格以及显卡的用料,可以让不同级别的产品拥有不同的性能,老黄便精于此道。

老黄刀法精湛

老黄展示精湛的刀法
TU102-Block Diagram]

TU102 核心有以下几款产品:

  • RTX TATIN:完整核心。共 72 组 SM 单元,4608 个 CUDA Core。
  • RTX 2080Ti:屏蔽了 4 组 SM 单元。共 68 组 SM 单元,4352 个 CUDA Core。
TU104-Block Diagram

TU104 核心有以下几款产品:

  • RTX 2080 Super:完整核心。共 48 组 SM 单元,3072 个 CUDA Core。
  • RTX 2080:屏蔽了 2 组 SM 单元。共 46 组 SM 单元,2944 个 CUDA Core。
  • RTX 2070 Super:屏蔽了 8 组 SM 单元。共 40 组 SM 单元,2560 个 CUDA Core。
TU106-Block Diagram

TU106 核心有以下几款产品:

  • RTX 2070:完整核心。共 36 组 SM 单元,2304 个 CUDA Core。
  • RTX 2060 Super:屏蔽了 2 组 SM 单元。共 34 组 SM 单元,2176 个 CUDA Core。
  • RTX 2060:屏蔽了 6 组 SM 单元。共 30 组 SM 单元,1920 个 CUDA Core。

营销过头的CUDA

NVIDIA 出于营销的考虑,在许多技术上都冠以 CUDA 之名,因此 CUDA 在不同语境下可能有不同的含义。

CUDA与OpenCL

CUDA(Compute Unified Device Architecture,统一计算架构)是 NVIDIA 于 2006 年推出的通用并行计算架构,同时也是 GPGPU 技术中的一种主流框架。NVIDIA 提供了 SDK 和 API,允许开发者使用 CUDA C 语言开发需要通用并行计算能力的程序,只能用于 NVIDIA 的硬件中。

OpenCL(Open Computing Language,开放计算语言)是一项与 CUDA 类似的技术。与只能在 N 卡中使用 CUDA 不同,OpenCL 的功能可以被多种显卡使用,包括 A 卡和 N 卡。

CUDA Core与流处理器

CUDA Core 的数量和流处理器数量有什么关系?

![CUDA Core 核心数](/GPU/CUDA Core 核心数.png)

NVIDIA 在介绍显卡的硬件规格时会标注出 CUDA Core 核心数,在比较不同产品纸面性能的差距时也会通过 CUDA Core 的数量来判断,其实这里的 CUDA Core 的数量就是我们以前常说的 SP(Stream Processors,流处理器)数量。

虽然每一代架构计算单元都会发生变化,但 NVIDIA 一直将 FP32 的数量作为 CUDA Core 的数量进行宣传。在工艺提升和新架构允许切换 INT32 为 FP32 的影响下,RTX 3090 实现了 CUDA Core 数量一万的突破。

CUDA与水银加速

Adobe Premiere 中的水银加速与 CUDA 之间是什么关系呢?

Pr-水银加速

被我们称为“水银加速”的 Mercury Playback Engine 是 Adobe Premiere Pro CS5 及以后大量性能改进的名称。这些改进包括:

  • 64 位程序。
  • 多线程程序。
  • 使用 CUDA 进行某些计算(OpenCL 要到 Premiere Pro CS6)。

Mercury Playback Engine 包括软件优化和硬件加速这两部分改进,不仅单指使用 CUDA/OpenCL 处理,在项目设置里也可以看到分为“GPU 加速”和“软件”。

光追性能

为了方便各大媒体制作 RTX 30 系显卡的相关评测,飞燕群岛工作室发布了 《光明记忆:无限》光线追踪 基准测试软件 ,采用了光线追踪和 DLSS 2.1 技术,支持光线追踪的 20 系显卡同样可以运行。

使用 R5 3600X + RTX 2060 Super 进行基准测试,成绩如下:

分辨率 RTX质量 DLSS FPS
2560x1440 Ultra OFF 12
2560x1440 Ultra Quality 24
2560x1440 Ultra Performance 34
2560x1440 High Performance 41
2560x1440 Normal Performance 45
2560x1440 Low Performance 54
1920x1080 Ultra OFF 20
1920x1080 Ultra Quality 36
1920x1080 Ultra Performance 57
1920x1080 High Performance 62
1920x1080 Normal Performance 68
1920x1080 Low Performance 81
点击查看测试结果截图

光明记忆无限RTX基准测试

RTX 2060 Super 能够满足 1080p 分辨率下畅玩光追游戏的需要,但要想在 2K 分辨率下以 60 FPS 稳定运行光追游戏,至少需要 2070 及以上性能。开启光线追踪和 DLSS 运行 Ghostrunner Demo ,也得到了同样的结论。


参考资料
Nvidia GPU架构 - Cuda Core,SM,SP等等傻傻分不清?
techpowerup NVIDIA TP100
techpowerup NVIDIA TU102
techpowerup NVIDIA GA100
CUDA, OpenCL, Mercury Playback Engine, and Adobe Premiere Pro

  • 本文作者: SANNAHA
  • 本文链接: https://sannaha.moe/GPU/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!