gpu硬件架构

张裕  金牌会员 | 2024-12-15 08:35:29 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 708|帖子 708|积分 2124

1.简介


NVIDIA在视觉计算和人工智能(AI)范畴处于领先职位;其旗舰GPU已成为解决包罗高性能计算和人工智能在内的各个范畴复杂计算挑战所不可或缺的。固然它们的规格经常被讨论,但很难掌握各种组件的清晰完备的图景。
这些GPU的高性能源于其许多组件的无缝集成,每个组件在提供顶级结果方面都发挥着至关重要的作用。
本篇文章将对NVIDIA GPU的每个组件进行详细的介绍,从架构和图形处理集群(GPC)到单个核心。别的尚有确保高效数据访问的复杂内存层次布局。
2.nvidia GPU架构


2.1 GPC (Graphics Processing Cluster)

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

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. 内存架构与管理



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张裕

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表