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 架构中的中间层模块,位于 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 核心。
码字不易,若觉得本文对你有用,欢迎点赞 👍、分享 🚀 ,相关技术热点时时看🔥🔥🔥…
相关文章:
NVIDIA GPU 内部架构介绍
NVIDIA GPU 架构 NVIDIA GPU 的 SM(Streaming Multiprocessor) 和 GPC(Graphics Processing Cluster) 是 GPU 架构中的关键组成部分。它们决定了 GPU 的计算能力和性能,以下是对这两个参数的详细介绍: 1. …...
重温设计模式----装饰模式
文章目录 装饰模式定义UML 图其主要优点包括:装饰模式的主要角色有:C 代码示例总结 装饰模式定义 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式必生成子类更加灵活 装饰模式(Decorator Pattern&…...
第十六章 C++ 字符串
C 字符串 C 提供了以下两种类型的字符串表示形式: C 风格字符串C 引入的 string 类类型 C 风格字符串 C 风格的字符串起源于 C 语言,并在 C 中继续得到支持。字符串实际上是使用 null 字符 终止的一维字符数组。因此,一个以 null 结尾的…...
MySQL中Seconds_Behind_Master是怎么计算的
目录 1.Seconds_Behind_Master计算方式2.Seconds_Behind_Master 计算方式会存在什么问题3.更好的方式3.1 实现方法3.2 优点在MySQL中,Seconds_Behind_Master是一个用于表示从库(Slave)落后于主库(Master)的时间(以秒为单位)的指标。 1.Seconds_Behind_Master计算方式 其…...
React Native 集成原生Android功能
React Native 集成原生功能完整指南 前言 在 React Native 开发中,我们经常需要使用设备的原生功能,比如蓝牙、打印机等。本文将以集成打印机功能为例,详细介绍如何在 React Native 项目中集成 Android 原生功能。 集成步骤概述 创建原生…...
Mac mini m4安装PD和Crack和关闭SIP
文章目录 说明PD下载地址Crack下载地址PD版本补丁版本说明SIP简介SIP关闭方法启用 SIP:补充说明 说明 参考文章地址 PD下载地址 PD20.0.0 PD20.0.1 PD20.1.0 PD20.1.1 PD20.1.2 PD20.1.3 Crack下载地址 Parallels Desktop Activation Tool PD版本补丁版本…...
详解C语言中的关键词:extern以及它需要注意的事项
extern 是C语言中一个非常重要的关键字,用于声明变量或函数的 外部链接性,即在当前文件中使用另一个文件中定义的变量或函数。以下是 extern 的作用和使用场景: 1. extern 的作用 跨文件访问: extern 告诉编译器,某个…...
框架程序设计-简答以及论述
目录 maven的pom作用: Pointcut("execution(*com.example.dome.*.*(……))") 缓存的作用,redis配置过程 Redis配置过程: SpringBoot缓存配置过程: AOP的五种增强注解: 论述题:包结构作用、…...
ce第六次作业
1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。 [rootServer ~]# yum install -y mailx [rootServer ~]# yum -y install bind-utils [rootServer ~]# vim /etc/mail.rc set from15339…...
为何页面搜索应避免左模糊和全模糊查询???
前言 在构建高效且可扩展的Web应用程序时,数据库查询的性能是影响用户体验的关键因素之一。特别是对于涉及大量数据的页面搜索功能,选择正确的查询方式不仅可以提升应用的速度,还能显著改善用户交互体验。 B-Tree索引与最左前缀匹配特性 1…...
AI可信论坛亮点:合合信息分享视觉内容安全技术前沿
前言 在当今科技迅猛发展的时代,人工智能(AI)技术正以前所未有的速度改变着我们的生活与工作方式。作为AI领域的重要盛会,CSIG青年科学家会议AI可信论坛汇聚了众多青年科学家与业界精英,共同探讨AI技术的最新进展、挑…...
在 Mac M2 上安装 PyTorch 并启用 MPS 加速的详细教程与性能对比
1. 安装torch 在官网上可以查看安装教程,Start Locally | PyTorch 作者安装了目前最新的torch版本2.5.1,需要提前安装python3.9及以上版本,作者python版本是python3.11最新版本 使用conda安装torch,在终端进入要安装的环境&…...
生成式人工智能在生产型企业中的应用
生成式人工智能(Generative AI)是指使用人工智能来创建新内容,如文本、图像、音乐、音频和视频等。生成式人工智能在生产型企业中的应用涵盖了内容创作与自动化、数据分析与决策支持、生产流程优化、产品设计与开发、客户服务与沟通、员工培训…...
Linux逻辑卷管理
目录 实验要求 实验操作 1、 为Linux新添加一块SCSI磁盘/dev/sdc,容量为1024MB。在该磁盘上创建三个分区sdc1、sdc2、sdc3,大小为128MB,标识为Linux native分区。 2、 在三个分区上创建物理卷;将三个物理卷加入VolGroup00卷组&…...
机器人加装电主轴【铣削、钻孔、打磨、去毛刺】更高效
机器人加装电主轴进行铣削、钻孔、打磨、去毛刺等作业,展现出显著的优势,并能实现高效加工。 1. 高精度与高效率 电主轴特点:高速电主轴德国SycoTec的产品,转速可达100000rpm,功率范围广,精度≤1μm&#…...
opencv sdk for java中提示无stiching模块接口的问题
1、问题介绍 安卓项目中有新的需求,在 jni 中增加 stiching_detail.cpp 中全景拼接的实现。 但是在编译时,出现大量报错,如下截图所示 实际上,其他opencv的接口函数 例如 core dnn等都能正常使用,直觉上初步怀疑 ope…...
今天最新早上好问候语精选大全,每天问候,相互牵挂,彼此祝福
1、朋友相伴,友谊真诚永不变!彼此扶持绿树荫,共度快乐雨后天!一同分享的表情,愿我们友情长存,一生相伴永相连! 2、人生几十年,苦累伴酸甜,风华不再茂,雄心非当…...
五种IO模型- 阻塞IO、非阻塞IO、多路复用IO、信号驱动IO以及异步IO
在操作系统中处理输入/输出(IO)操作的过程中,存在多种方式,包括阻塞IO、非阻塞IO、多路复用IO、信号驱动IO以及异步IO。这些方式在操作系统实现和应用程序编写时有着不同的适用场景和性能特征。接下来,我将逐一介绍它们…...
Vscode GStreamer插件开发环境配置
概述 本教程使用vscode和Docker搭建Gstreamer2.24的开发环境,可以用于开发调试Gstreamer程序或者自定义插件开发。 1. vscode依赖插件 C/C Extension Pack(ms-vscode.cpptools-extension-pack):该插件包包含一组用于 Visual St…...
flask基础
from flask import Flask, requestapp Flask(__name__)# app.route(/) # def hello_world(): # put applications code here # return Hello World!app.route(/) # 路由 当用户访问特定 URL 时,Flask 会调用对应的视图函数来处理请求 def index():return …...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
