NVIDIA GPU 架构
NVIDIA GPU 的 SM(Streaming Multiprocessor) 和 GPC(Graphics Processing Cluster) 是 GPU 架构中的关键组成部分。它们决定了 GPU 的计算能力和性能,以下是对这两个参数的详细介绍:
1. GPC(Graphics Processing Cluster)—— 图形处理集群
定义:
GPC 是 GPU 中更高层次的组织单元,负责管理多个 SM 和其它子单元,协调图形渲染、计算任务的调度与执行。
性能意义:
- GPC 的数量直接影响 GPU 的渲染能力,更多的 GPC 允许显卡在更复杂的场景下保持高性能。
- 在最新架构中,GPC 的设计进一步优化以支持更高分辨率、更复杂的几何和光追任务。
架构示意图
一个典型 NVIDIA GPU 的架构层级可以表示为:
GPU
├── GPC (Graphics Processing Cluster)
│ ├── TPC (Texture/Processor Cluster)
│ │ ├── SM (Streaming Multiprocessor)
│ │ │ ├── CUDA 核心 (CUDA Cores)
│ │ │ ├── 张量核心 (Tensor Cores)
│ │ │ ├── RT 核心 (Ray Tracing Cores)
│ │ │ └── 纹理单元 (Texture Units)
│ │ └── PolyMorph Engine
│ └── Raster Engine (光栅引擎)
└── L2 Cache (共享缓存)
- TPC(Texture/Processor Cluster):每个 GPC 包含多个 TPC,每个 TPC 包括两个 SM 单元。
- Raster Engine(光栅引擎):负责光栅化任务,将 3D 场景转换为像素。
- PolyMorph Engine:支持几何处理、顶点着色、投影等任务。
- L2 Cache:为 GPC 提供数据缓存,提高数据访问效率。
总体架构关系
- GPC 是最顶层的计算集群,包含多个 TPC。
- 每个 TPC 包含多个 SM,以及负责几何运算的 PolyMorph Engine。
- 每个 SM 包含大量的 CUDA Core 和 Tensor Core,分别执行标量计算和矩阵运算任务。
- CUDA Core 与 Tensor Core 是具体的计算执行单元,协作完成复杂的并行计算任务。
通过 GPC 和 SM 的协同工作,NVIDIA 显卡实现了强大的图形处理和计算性能,能够满足游戏、渲染、AI 和科学计算的高需求任务。
2. TPC(Texture/Processor Cluster)—— 纹理/处理集群
TPC 是 NVIDIA GPU 架构中的中间层模块,位于 GPC 和 SM 之间。它起到整合和协同 SM 工作的作用,是 GPU 架构中关键的组织单元。
定义:
TPC 是由 NVIDIA 定义的硬件集群单位,包含多个 SM(流多处理器) 和纹理处理单元。TPC 作为 GPC 的子单元,为 GPU 提供高效的计算和纹理处理能力。
架构位置:
- 每个 TPC 包含 2 个 SM(部分架构中可能不同,如早期架构有单个 SM)。
- 每个 GPC(图形处理集群)包含多个 TPC。
- 每个 GPU 包含多个 GPC,因此整个 GPU 架构分为 GPU > GPC > TPC > SM。
组成:
一个典型的 TPC 包含以下子模块:
-
SM(Streaming Multiprocessor)
- TPC 的主要计算单元,每个 TPC 包含 2 个 SM(在 Ampere 和 Ada Lovelace 架构中)。
- SM 内部包含 CUDA 核心、张量核心、RT 核心、纹理单元等。
-
纹理单元(Texture Units)
- 专门处理纹理采样、纹理过滤等任务。
- 与 SM 协同工作,加速纹理数据的加载和计算。
-
PolyMorph Engine(多变形引擎)
- 负责几何处理,包括顶点变换、投影和曲面细分。
- 每个 TPC 中包含一套独立的 PolyMorph 引擎。
-
缓存模块
- 包括一级缓存(L1 Cache)和纹理缓存,为 SM 和纹理单元提供快速的数据访问能力。
功能:
TPC 是连接 GPC 和 SM 的桥梁,主要功能包括:
-
并行计算能力扩展:
- 每个 TPC 通过包含多个 SM,显著提升 GPU 的并行计算性能。
-
纹理处理:
- 集成了纹理单元和纹理缓存,用于高效处理游戏和渲染中的纹理任务,如采样、过滤和贴图。
-
几何处理:
- PolyMorph 引擎负责几何阶段的计算,例如顶点着色和几何曲面变换,支持复杂的 3D 场景。
-
模块化扩展:
- NVIDIA 的 TPC 设计使 GPU 架构具备高度模块化,方便扩展性能和功能,适应不同的市场需求(游戏、AI、科学计算)。
架构变化
不同架构中 TPC 的设计有所变化:
- Pascal 架构(如 GTX 10 系列):每个 TPC 包含 1 个 SM。
- Turing 架构(如 RTX 20 系列):每个 TPC 包含 2 个 SM,首次引入 RT 核心。
- Ampere 架构(如 RTX 30 系列):每个 TPC 包含 2 个 SM,改进了张量核心和 RT 核心。
- Ada Lovelace 架构(如 RTX 40 系列):延续每 TPC 2 个 SM 的设计,进一步优化性能。
示例分析:RTX 4090 的 TPC 设计
-
RTX 4090 的架构细节:
- GPC 数量:12
- TPC 数量:72
- SM 数量:128(每 TPC 包含 2 个 SM)
- CUDA 核心总数:16,384(每 SM 包含 128 个 CUDA 核心)
-
每个 TPC 的具体配置:
- SM 数量:2
- PolyMorph 引擎:1
- 纹理单元:4(每个 SM 包含 2 个纹理单元)
这种设计允许 RTX 4090 在高分辨率和复杂场景中表现出色。
TPC 的重要性
TPC 的模块化设计在性能和效率上具有以下优势:
- 性能扩展:通过增加 TPC 的数量,GPU 可线性扩展计算能力。
- 灵活性:TPC 内部功能整合度高,可以适应计算密集型任务和图形渲染任务的需求。
- 效率提升:将 SM 和纹理单元紧密结合,减少了数据传输的延迟。
TPC 是 NVIDIA GPU 架构中不可或缺的组成部分,它在 SM、纹理单元和几何处理单元之间起到整合和调度的作用。通过 TPC 的模块化设计,GPU 能够在性能和效率之间找到平衡,同时支持不同的应用场景,如游戏、图形渲染和深度学习。
3. SM(Streaming Multiprocessor)—— 流多处理器
定义:
SM 是 NVIDIA GPU 的核心计算单元,包含一组执行通用计算和图形任务的子模块。每个 SM 包含多个 CUDA 核心、TMU(纹理映射单元)、张量核心和其他支持单元。
组成与功能:
- CUDA 核心:负责执行通用计算任务(整数运算和浮点运算)。
- 张量核心:加速深度学习任务中的矩阵计算。
- RT 核心:用于处理光线追踪计算(部分架构中)。
- 共享内存(Shared Memory):提供快速的中间数据存储。
- 寄存器文件:为线程分配寄存器资源。
- 纹理和缓存单元:加速纹理采样和数据读取。
性能意义:
- SM 的数量决定了 GPU 的并行计算能力,更多的 SM 意味着可以处理更多的线程。
- 现代 NVIDIA GPU 使用分级架构,例如 Ampere、Ada Lovelace,每一代的 SM 内部结构都有优化,例如更高效的缓存、更强的计算单元。
示例:
- NVIDIA RTX 4090 拥有 128 个 SM,每个 SM 包含 128 个 CUDA 核心,总计 16,384 个 CUDA 核心。
码字不易,若觉得本文对你有用,欢迎点赞 👍、分享 🚀 ,相关技术热点时时看🔥🔥🔥…