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 …...

Java日志框架:log4j、log4j2、logback
文章目录 配置文件相关1. properties测试 2. XMl使用Dom4j解析XML Log4j与Log4j2日志门面 一、Log4j1.1 Logges1.2 Appenders1.3 Layouts1.4 使用1.5 配置文件详解1.5.1 配置根目录1.5.2 配置日志信息输出目的地Appender1.5.3 输出格式设置 二、Log4j22.1 XML配置文件解析2.2 使…...

鸿蒙-expandSafeArea使用
应用未使用setWindowLayoutFullScreen()接口设置窗口全屏布局时,默认使能组件安全区布局。可以使用expandSafeArea属性扩展安全区域属性进行调整 扩展安全区域属性原理 布局阶段按照安全区范围大小进行UI元素布局。布局完成后查看设置了expandSafeArea的组件边界&…...

【es6复习笔记】Spread 扩展运算符(8)
在现代前端开发中,JavaScript 的扩展运算符(Spread Operator)是一个非常有用的特性,它允许你将数组或对象展开,以便在函数调用、数组拼接、对象复制等场景中更方便地处理数据。扩展运算符(spread࿰…...

第22天:信息收集-Web应用各语言框架安全组件联动系统数据特征人工分析识别项目
#知识点 1、信息收集-Web应用-开发框架-识别安全 2、信息收集-Web应用-安全组件-特征分析 一、ICO图标: 1、某个应用系统的标示,如若依系统有自己特点的图标;一旦该系统出问题,使用该系统的网站都会受到影响; 2、某个公…...

后端-redis
Redis RedisString类型String类型的常用命令 Hash类型Hash类型的常用命令 List类型List类型的常用命令 Set类型Set类型的常用命令 SortedSet类型SortedSet类型的常用命令 Redis序列化缓存更新策略缓存穿透缓存雪崩缓存击穿 Redis Redis是一个key-value的数据库,key…...

开发场景中Java 集合的最佳选择
在 Java 开发中,集合类是处理数据的核心工具。合理选择集合,不仅可以提高代码效率,还能让代码更简洁。本篇文章将重点探讨 List、Set 和 Map 的适用场景及优缺点,帮助你在实际开发中找到最佳解决方案。 一、List:有序存…...

golangci-lint安装与Goland集成
golangci-lint安装与Goland集成 1.golangci-lint概述2.golangci-lint安装3.Goland 中集成 golangci-lint4.golangci-lint 的使用5.排除代码检查 1.golangci-lint概述 golangci-lint是用于go语言的代码静态检查工具集 官网地址:golangci-lint 特性: 快…...

金仓数据库安装-Kingbase v9-centos
在很多年前有个项目用的金仓数据库,上线稳定后就没在这个项目了,只有公司的开发环境还在维护,已经好多年没有安装过了,重温一下金仓数据库安装,体验一下最新版本,也做一个新版本的试验环境; 一、…...

条款6:auto推导若非己愿,使用显式类型初始化惯用法
一、代理类 所谓的代理类就是以模仿和增强一些类型的行为为目的存在的类 class MyArray { public:class MyArraySize{public:MyArraySize(int size) : theSize(size) {}int size() const { return theSize; }operator int() const { return theSize; }private:int theSize;};…...

蓝桥杯物联网开发板硬件组成
第一节 开发板简介 物联网设计与开发竞赛实训平台由蓝桥杯大赛技术支持单位北京四梯科技有限公司设计和生产,该产品可用于参加蓝桥杯物联网设计与开发赛道的竞赛实训或院校相关课程的 实践教学环节。 开发板基于STM32WLE5无线微控制器设计,芯片提供了25…...