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 核心。

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/942767.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python + 深度学习从 0 到 1(02 / 99)

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持! ⭐ Keras 快速入门: 神经网络的基本数据结…

MySQL用户授权

什么是数据库 数据库概述:数据库是按照一定的数据结构将数据存储在存储器的集合常见数据库软件 软件名开源跨平台厂 商Oracle否是甲骨文MySQL是是甲骨文SQL Server否否微软DB2否是IBMMongoDB是是MongoDB Inc.Redis是是开源软件Memcached是是开源软件 DB (DataBas…

2025年我国网络安全发展形势展望

展望2025年,我国网络安全产业有望迎来新的快速增长阶段,零信任安全架构将在各行各业加快应用落地,数据安全技术攻关和应用进程加快,关键基础设施安全能力不断提升。同时,也应关注国家级网络对抗风险加剧、网络安全产业…

GitPuk安装配置指南

GitPuk是一款开源免费的代码管理工具,上篇文章已经介绍了Gitpuk的功能与优势,这篇文章将为大家讲解如何快速安装和配置GitPuk,助力你快速的启动GitPuk管理代码 1. 安装 支持 Windows、Mac、Linux、docker 等操作系统。 1.1 Windows安装 下载…

ArcGIS+MIKE21 洪水淹没分析、溃坝分析,洪水淹没动态效果

洪水淹没分析过程: 一、所需数据: 1.分析区域DEM数据 二、ArcGIS软件 1.提取分析区域DEM(水库坝下区域) 2.DEM栅格转点 3.计算转换后几何点的x和y坐标值(精度20、小数位3) 4.导出属性表,形式…

中伟视界:AI识别摄像头+AI预警平台在矿山皮带空载监测中的应用

在矿山开采和矿物处理过程中,皮带运输机扮演着举足轻重的角色。它们负责将矿石、煤炭等物料从一处运送到另一处,是矿山生产流程中不可或缺的一环。然而,皮带运输机在运行过程中也面临着一些挑战,其中之一便是皮带空载问题。皮带空…

探索多模态大语言模型(MLLMs)的推理能力

探索多模态大语言模型(MLLMs)的推理能力 Multimodal Large Language Models (MLLMs) flyfish 原文:Exploring the Reasoning Abilities of Multimodal Large Language Models (MLLMs): A Comprehensive Survey on Emerging Trends in Mult…

AIGC时代:如何快速搞定Spring Boot+Vue全栈开发

文章目录 一、Spring Boot基础二、Vue.js基础三、Spring Boot与Vue.js集成四、性能优化与最佳实践《快速搞定Spring BootVue全栈开发》内容简介作者简介目录前言/序言本书内容本书特点读者对象 随着人工智能生成内容(AIGC)技术的迅速发展,内容…

mongodb和Cassandra

mongodb的一致性问题: 15.MongoDB的一致性(读关注与写关注)_mongo w选项-CSDN博客 孤儿节点问题: 技术干货 | MongoDB 偶遇孤儿文档及处理方法-腾讯云开发者社区-腾讯云 分片集群MongoDB迁移前清除孤儿文档 由数据迁移至MongoDB导致的数据不一致问题…

nginx-rtmp服务器搭建

音视频服务器搭建 本文采用 nginx/1.18.0和nginx-rtmp-module模块源代码搭建RTMP流媒体服务器 流程 查看当前服务器的nginx版本下载nginx和nginx-rtmp-module源代码重新编译nginx,并进行相关配置(nginx.conf、防火墙等)客户端测试连接测试搭…

初始 ShellJS:一个 Node.js 命令行工具集合

一. 前言 Node.js 丰富的生态能赋予我们更强的能力,对于前端工程师来说,使用 Node.js 来编写复杂的 npm script 具有明显的 2 个优势:首先,编写简单的工具脚本对前端工程师来说额外的学习成本很低甚至可以忽略不计,其…

(echarts)数据地图散点类型根据条件设置不同的标记图片

(echarts)数据地图散点类型根据条件设置不同的标记图片 1.用在线工具将本地图片转化base64格式 data(){return { base64Img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQ...",} }在线转换地址:https://www.jyshare.com/front-end/59/ 2.symbol属…

Linux高级--2.4.5 靠协议头保证传输的 MAC/IP/TCP/UDP---协议帧格式

任何网络协议,都必须要用包头里面设置写特殊字段来标识自己,传输越复杂,越稳定,越高性能的协议,包头越复杂。我们理解这些包头中每个字段的作用要站在它们解决什么问题的角度来理解。因为没人愿意让包头那么复杂。 本…

网络下载ts流媒体

网络下载ts流媒体 查看下载排序合并 很多视频网站,尤其是微信小程序中的长视频无法获取到准确视频地址,只能抓取到.ts片段地址,下载后发现基本都是5~8秒时长。 例如: 我们需要将以上地址片段全部下载后排序后再合成新的长视频。 …

小程序租赁系统开发指南与实现策略

内容概要 在如今这个快节奏的时代,小程序租赁系统的开发正逐渐成为许多商家提升服务质量与效率的重要选择。在设计这样一个系统时,首先要明白它的核心目标:便捷、安全。用户希望在最短的时间内找到需要的物品,而商家则希望通过这…

机器人C++开源库The Robotics Library (RL)使用手册(一)

强大的、完整的C机器人开源库 1、是否可以免费商用?2、支持什么平台?3、下载地址4、开始! 1、是否可以免费商用? Robotics Library(RL)是一个独立的C库,用于机器人运动学、运动规划和控制。它涵…

Android unitTest 单元测试用例编写(初始)

文章目录 了解测试相关库导入依赖库新建测试文件示例执行查看结果网页结果其他 本片讲解的重点是unitTest,而不是androidTest哦 了解测试相关库 androidx.compose.ui:ui-test-junit4: 用于Compose UI的JUnit 4测试库。 它提供了测试Compose UI组件的工具和API。 and…

Ngnix介绍、安装、实战及用法!!!

一、Nginx简介 1、Nginx概述 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数 。 2、正向代理 正向代理:如果把局…

国内智能编程助手简易对比:文心一言、通义千问、智谱AI、讯飞星火、Kimi

最近想给IDE选择一个智能编程助手插件,但鉴于国内百花齐放的现状,一时也不好选择用哪个。挑了几个主流的的平台,分别输入“用python实现雪花纷飞的场景”的简单需求,看看效果对比。备注:因国外插件使用成本远高于国内的…

vscode python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。()

问题: PS C:\Users\EDY\Desktop\vscodeTest> pip pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保 路径正确,然后再试一次。 所在位置 行:1 字符: 1 pip …