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

gpu硬件架构

1.简介

在这里插入图片描述

NVIDIA在视觉计算和人工智能(AI)领域处于领先地位;其旗舰GPU已成为解决包括高性能计算和人工智能在内的各个领域复杂计算挑战所不可或缺的。虽然它们的规格经常被讨论,但很难掌握各种组件的清晰完整的图景。

这些GPU的高性能源于其许多组件的无缝集成,每个组件在提供顶级结果方面都发挥着至关重要的作用。
本篇文章将对NVIDIA GPU的每个组件进行详细的介绍,从架构和图形处理集群(GPC)到单个核心。另外还有确保高效数据访问的复杂内存层次结构。

2.nvidia GPU架构

NVIDIA GPU采用分层结构设计,可高效处理复杂的图形和计算工作。这种结构可以被视为一个金字塔,每个层次代表一个不同的组织层次。
网格位于层次结构的顶部,代表整个GPU及其资源。以下是它的外观:
A100 GPU

2.1 GPC (Graphics Processing Cluster)

GPCs代表了GPU的高层组织结构
它们对在整个芯片上进行分发工作负载和管理资源起着至关重要的作用。每个GPC可以独立工作并有独立的TPCs(Texture Processing Clusters), SMs(Streaming Multiprocessors), 和共享资源,从而可以高效地进行工作分配和资源管理。

GPU中的GPC数量因特定型号及其预期用途而异。专为游戏、专业渲染和复杂计算工作负载等高要求任务设计的高端GPU通常具有更多的GPC来处理更大的并行处理需求。相反,为低强度任务构建的低端GPU具有较少的GPC。
在这里插入图片描述
这种架构设计允许GPU根据不同应用程序和工作负载的要求高效地扩展性能。
现在,让我们讨论一下TPC。

2.2 TPC (Texture Processing Clusters)

TPC负责执行核心绘图功能相关的构成我们在屏幕上看到的视觉体验的工作负载。他们处理以下任务:

  • 顶点着色:变换三维顶点
  • 将坐标转换为2D屏幕坐标。
  • 纹理映射:将纹理(图像)应用于3D模型。
  • 光栅化:将多边形转换为像素进行显示。

每个TPC都包含多个SM,它们是GPU的主力,并行执行这些任务。它们还包含以下内容:
在这里插入图片描述

纹理单元(TMU)

这些单元处理与纹理映射相关的任务,例如从内存中获取纹理数据、过滤以及将纹理应用于像素或顶点。它们确保纹理正确映射到3D模型上,以创建详细逼真的图像。

L1缓存

一种存储频繁访问的纹理数据和指令的小型快速内存缓存。这有助于减少延迟并提高纹理处理操作的效率。

共享内存

TPC使用共享内存来实现集群内纹理单元和SM之间的高效数据共享。这种共享内存对于高性能纹理映射和过滤操作非常重要。

特殊功能单元(SFU)

TPC中的SFU专门针对纹理映射和渲染操作进行了优化。它们处理复杂的数学函数,但更侧重于纹理处理所需的任务。

光栅引擎

光栅引擎将矢量图形(如3D模型)转换为光栅图像(像素)。它在渲染的最后阶段起着至关重要的作用,决定了如何将纹理应用于屏幕上的单个像素。

在这里插入图片描述

纹理缓存

这些缓存将纹理数据存储在纹理单元附近,以尽量减少从主存储器获取这些数据所需的时间。它们通过减少内存访问延迟来帮助加快纹理映射过程

2.3 流式多处理器(SM)

SM是GPU中的基本处理单元
GPU中SM的数量是决定其整体性能的关键因素。例如,RTX A5000是一款通用GPU,有64个SM,而针对深度学习进行优化的NVIDIA H100有168个SM。以下是其组件的详细分解:

  • 指令缓存(I-Cache):存储SM要执行的指令,通过将频繁使用的指令保持在执行单元附近,实现快速访问并减少延迟。
  • 多线程问题(MT问题):处理向SM内的各个执行单元分派指令。它同时管理多个线程,优化可用计算资源的使用。
  • 常量缓存(C-Cache):此缓存存储在执行过程中不会改变的常量数据。它允许线程快速访问这些常数值。
    在这里插入图片描述
  • 流处理器/CUDA核心(SP):SP,也称为CUDA核心,是SM中负责执行大部分算术运算(例如浮点和整数运算)的核心。多个SP单元支持指令的并行处理。
  • 特殊功能单元(SFU):SM还具有SFU,可以处理更复杂的数学函数,如三角计算、指数和其他比标准算术运算计算量更大的特殊函数。
  • 双精度单位(DP):这些单位处理双精度浮点运算,这对于需要高数值精度的应用程序(如科学计算和模拟)至关重要。
  • 共享内存:与TPC一样,SM也使用共享内存,这是一种可由SM内所有线程访问的快速片上内存。它允许线程之间高效的数据共享和协调,显著加快了需要频繁数据交换的计算速度。

现代GPU中的SM通常包含额外的内核和专用单元,其中可能包括:

  • L1缓存:一种小型、快速的内存缓存,在SM内核附近存储频繁访问的数据和指令,以减少访问时间。
  • 寄存器:每个SM内的高速存储位置专用于存储活动线程的临时数据,允许在计算过程中快速访问。
  • Tensor核心:专门用于深度学习和人工智能任务,执行神经网络训练和推理所必需的矩阵运算​​.
  • 光线跟踪核心(RT核心):专门用于处理光线跟踪计算,提供真实照明、阴影和反射的实时渲染。

GPU中的每个SM都集成了这些组件,以高效地执行各种并行处理任务,平衡通用计算与图形、人工智能和其他要求苛刻的工作负载的专门处理。
在接下来的部分中,我们将深入探讨SM的各个组件,探索CUDA内核、RT内核、Tensor内核和共享内存如何协同工作,以提供NVIDIA GPU所闻名的令人印象深刻的性能。

3. cuda core

NVIDIA GPU从多个CUDA内核中获得卓越的计算能力。这些内核是GPU上并行处理的构建块,使它们能够擅长需要大量计算吞吐量的任务。
以下是典型CUDA Core中关键组件的细分:

算术逻辑单元(ALU):

  • 整数单位:对整数数据类型执行整数算术运算(加法、减法、乘法、除法)。
  • 浮点单元(FPU):对浮点数据类型(例如单精度FP32和半精度FP16)执行浮点算术运算(加法、减法、乘法、除法)

寄存器文件:

  • 寄存器:CUDA核心中的一小部分高速存储位置,用于保存操作数(输入数据)和计算结果。这些寄存器对于在计算过程中快速访问数据至关重要。

指令解码器:

  • 解码指令:接收传入的机器代码指令,并将其解码为ALU可以执行的微操作。

控制逻辑:

  • 控制执行:通过CUDA核心管理指令和数据流,确保操作按正确的顺序执行,并正确存储结果。

装载/储存单位:

  • 内存访问:处理将数据从内存加载到寄存器并将结果存储回内存。该单元负责与GPU的内存层次结构(共享内存、L1缓存、全局内存)进行交互。

在这里插入图片描述

附加组件(可选):

  • 特殊功能单元(SFU):一些CUDA内核可能有一个专用的SFU,用于加速特定的数学函数,如正弦、余弦、指数、倒数等。
  • 分支单元:处理条件分支指令,允许CUDA Core根据比较结果采取不同的执行路径。

3.1 cuda core工作原理

GPU上的基本执行单元是线程。流式多处理器(SM)中的每个CUDA核心一次可以执行一个线程。线程被组织成32个一组的组,称为warp,它们在SM上同时调度和执行。
线程也可以被分组为称为块的较大单元,这使得线程之间能够进行协作和数据共享。一个块被分配给一个SM,该块内的线程共享SM上的资源,包括寄存器和共享内存。如果一个块的线程数多于SM的CUDA核心,则线程将被划分为warp,并在CUDA核心可用时计划执行warp。

CUDA内核在单指令多线程(SIMT)架构下运行,这意味着warp中的所有32个线程都执行相同的指令,并行但在不同的数据元素上。这最大限度地提高了单指令多数据(SIMD)并行性,即单个指令同时对多个数据点进行操作,从而可以高效处理大型工作负载。

GPC中的GPU调度器负责将warp分配给可用的SM以供执行。当warp遇到长延迟操作(如内存访问)时,调度器可以切换到另一个准备执行的warp,防止延迟并最大限度地提高吞吐量
这种动态调度确保了GPU的资源得到有效利用,即使在处理具有不同执行时间的任务时也是如此。

GPU中CUDA核心的数量可以从数百个到数千个不等,具体取决于GPU型号及其预期应用场景。除了标准CUDA内核外,现代NVIDIA GPU还具有专为特定任务设计的专用核心。让我们深入探讨这些专用核心及其在增强GPU功能方面的作用。

4.用于光线追踪和人工智能的专用内核

虽然CUDA核心构成了GPU处理的支柱,但现代NVIDIA GPU已经发展到包括旨在加速特定工作负载的专用核心。这些专门的核心,即RT核心和Tensor核心,彻底改变了实时光线追踪和人工智能应用,突破了图形和计算的极限。
首先,我们将讨论RT核心。

4.1 RT cores

4.2 Tensor cores

NVIDIA的Tensor Core是专门用于加速深度学习操作的处理单元。它们被优化用于执行矩阵乘法和卷积,这是深度神经网络的基本构建块。Tensor Core可以使用单精度和半精度浮点数的组合以混合精度执行这些操作,从而在不牺牲精度的情况下显著提高吞吐量。

在这里插入图片描述
下面介绍tensor core的组件:

  • 矩阵乘法累加(MMA)单位:这些是张量核心中的核心计算单位。每个MMA单元可以在单个时钟周期内执行4x4矩阵乘法累加操作。多个MMA单元并行工作,以加速大型矩阵操作。
  • warp调度器:这些单元调度和管理Tensor核心上warp(线程组)的执行。它们确保MMA单元保持忙碌,并优化数据流以实现高效计算
  • 寄存器和共享内存:Tensor核心可以访问高速寄存器和共享存储器,用于存储warp内线程之间共享的中间结果和数据。
  • 混合精度支持:Tensor Core支持混合精度计算,这意味着它们可以使用不同的数值格式(例如FP16、FP32、INT8、INT4)进行计算。这种灵活性平衡了计算速度和准确性,因为深度学习模型通常不需要对所有操作都有极高的精度要求。

在这里插入图片描述

专用单元(可选):新一代Tensor核心可能包括其他专用单元,例如:
  • 稀疏引擎:这些单元加速了对具有许多零元素的稀疏矩阵的操作。
  • Transformer引擎:这些单元经过优化,可以加速基于Transformer的模型中的注意力机制,这些模型通常用于自然语言处理。

让我们一步一步地分解Tensor Core的工作方式,突出它们在加速深度学习和人工智能基础的矩阵运算方面的作用:

1.输入数据准备:
  • 数据加载:输入数据通常以矩阵形式(例如,表示图像、文本或其他数字特征)加载到GPU的内存中。
  • 数据转换(可选):如果输入数据采用更高精度的格式,如FP32(32位浮点),则可能会转换为较低精度的格式(如FP16(16位浮点)),以使用Tensor Core的混合精度功能。这一步是可选的,取决于特定的深度学习框架和模型。
2.矩阵运算调度:
  • 操作识别:深度学习框架识别需要执行的矩阵乘法和累加(MMA)操作。
  • 任务调度:该框架在可用的Tensor核心上调度这些MMA操作。
3. Tensor核心操作:
  • 数据提取:Tensor核心从GPU的内存中提取相关的数据元素(矩阵值)。
  • 矩阵乘法:每个Tensor Core对提取的数据执行4x4矩阵乘法运算。这意味着它将两个4x4矩阵相乘,得到一个4x4结果矩阵。
  • 累加:张量核累加多个4x4矩阵乘法的结果,以计算更大矩阵乘法运算的最终结果。
  • 输出:MMA操作的结果被存储回GPU的内存中。

在这里插入图片描述

4.混合精密处理(可选):

这一步不会发生在所有GPU和AI模型上,但如果发生了,它的工作原理如下:

  • FP16累加:如果输入数据被转换为FP16,则结果的累加通常在FP16中完成,以实现更快的计算。
  • FP32转换:在FP16中累积后,如果深度学习模型需要,最终结果可以转换回FP32以获得更高的精度。
5.迭代和完成:
  • 重复执行:对所有预定的MMA操作重复步骤3和4,直到整个深度学习计算完成。

Tensor Core已成为加速深度学习研究和开发的重要工具。它们实现了更大、更复杂的训练模型,在各个领域取得了突破。
例如,在自然语言处理中,Tensor Core为GPT-3等大型语言模型的开发提供了动力,GPT-3可以生成类人文本、翻译语言,甚至编写代码。
NVIDIA GPU中RT核心和Tensor核心的结合开创了加速计算的新时代,实现了实时光线追踪和更快的AI训练和推理。

5. 内存架构与管理

在这里插入图片描述


http://www.mrgr.cn/news/80186.html

相关文章:

  • linux常用服务自启配置
  • 工业大数据分析算法实战-day03
  • 每日一站技術架構解析之-cc手機桌布網
  • 高阶函数:JavaScript 编程中的魔法棒
  • 2024.12.11-13——攻防世界unserialize3
  • MySQL常用运维操作(二):grant赋权语句
  • 《拉依达的嵌入式\驱动面试宝典》—前言目录篇
  • 操作系统内存管理
  • c语言数据结构与算法--简单实现线性表(顺序表+链表)的插入与删除
  • Leetcode二叉树部分笔记
  • 单片机最小系统
  • Vue 组件化开发:构建高质量应用的核心
  • CA证书的核心解读:它是什么,以及如何发挥作用
  • Towards Frame Rate Agnostic Multi-object Tracking—迈向帧率无关的多目标跟踪
  • Python粉色圣诞树
  • 网格算法(Grid Algorithm)及其Python实现
  • 公钥基础设施(PKI)全面解析
  • 【WRF安装】WRF编译错误总结1:HDF5库包安装
  • 学习笔记070——Java中【泛型】和【枚举】
  • C++4--类
  • 前缀和的两种构造方法
  • 【Qt】QWidget中的常见属性及其功能(一)
  • ALOHA 协议详解
  • JAVA学习(三)
  • CTFshow-文件包含(Web78-88,Web116,117)
  • 1.5 多媒体系统简介