当前位置: 首页 > article >正文

NVIDIA GPU 内部架构介绍

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 架构中的中间层模块,位于 GPCSM 之间。它起到整合和协同 SM 工作的作用,是 GPU 架构中关键的组织单元。

定义
TPC 是由 NVIDIA 定义的硬件集群单位,包含多个 SM(流多处理器) 和纹理处理单元。TPC 作为 GPC 的子单元,为 GPU 提供高效的计算和纹理处理能力。

架构位置

  • 每个 TPC 包含 2 个 SM(部分架构中可能不同,如早期架构有单个 SM)
  • 每个 GPC(图形处理集群)包含多个 TPC。
  • 每个 GPU 包含多个 GPC,因此整个 GPU 架构分为 GPU > GPC > TPC > SM

组成:

一个典型的 TPC 包含以下子模块:

  1. SM(Streaming Multiprocessor)

    • TPC 的主要计算单元,每个 TPC 包含 2 个 SM(在 Ampere 和 Ada Lovelace 架构中)。
    • SM 内部包含 CUDA 核心、张量核心、RT 核心、纹理单元等。
  2. 纹理单元(Texture Units)

    • 专门处理纹理采样、纹理过滤等任务。
    • 与 SM 协同工作,加速纹理数据的加载和计算。
  3. PolyMorph Engine(多变形引擎)

    • 负责几何处理,包括顶点变换、投影和曲面细分。
    • 每个 TPC 中包含一套独立的 PolyMorph 引擎。
  4. 缓存模块

    • 包括一级缓存(L1 Cache)和纹理缓存,为 SM 和纹理单元提供快速的数据访问能力。

功能:

TPC 是连接 GPC 和 SM 的桥梁,主要功能包括:

  1. 并行计算能力扩展

    • 每个 TPC 通过包含多个 SM,显著提升 GPU 的并行计算性能。
  2. 纹理处理

    • 集成了纹理单元和纹理缓存,用于高效处理游戏和渲染中的纹理任务,如采样、过滤和贴图。
  3. 几何处理

    • PolyMorph 引擎负责几何阶段的计算,例如顶点着色和几何曲面变换,支持复杂的 3D 场景。
  4. 模块化扩展

    • 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 的模块化设计在性能和效率上具有以下优势:

  1. 性能扩展:通过增加 TPC 的数量,GPU 可线性扩展计算能力。
  2. 灵活性:TPC 内部功能整合度高,可以适应计算密集型任务和图形渲染任务的需求。
  3. 效率提升:将 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 核心。

码字不易,若觉得本文对你有用,欢迎点赞 👍、分享 🚀 ,相关技术热点时时看🔥🔥🔥​​​…



http://www.kler.cn/a/454263.html

相关文章:

  • 学习 Python 编程的规则与风格指南
  • 小程序基础 —— 07 创建小程序项目
  • Linux axel 下载加速命令详解
  • 转运机器人推动制造业智能化转型升级
  • leetcode 27. 移除元素
  • K8s证书过期
  • 剑指Offer|LCR 014. 字符串的排列
  • Spring02 - 代理和事务篇
  • ModbusTCP从站转Profinet主站案例
  • LangChain教程 - 表达式语言 (LCEL) -构建智能链
  • windows下Redis的使用
  • Python vs PHP:哪种语言更适合网页抓取
  • 计算机基础复习12.22
  • 记录jvm进程号
  • jangow-01-1.0.1靶机
  • 16.3、网络安全风险评估项目流程与工作内容
  • 骑砍2霸主MOD开发(26)-Mono脚本系统
  • 《VQ-VAE》:Stable Diffusion设计的架构源泉
  • 在 Ubuntu 服务器上添加和删除用户
  • Redis篇--应用篇4--自动提示,自动补全
  • Oracle怎么写存储过程的定时任务执行语句
  • 骁龙 8 至尊版:AI 手机的变革先锋
  • 青少年编程与数学 02-005 移动Web编程基础 02课题、视口与像素
  • QT--模型/视图
  • 如何使用 Django 框架创建简单的 Web 应用?
  • Android native+html5的混合开发