楼主: yguo379
125 0

[图行天下] GPU内部结构与嵌入式系统介绍 [推广有奖]

  • 0关注
  • 0粉丝

准贵宾(月)

学前班

40%

还不是VIP/贵宾

-

威望
0
论坛币
984 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20 点
帖子
1
精华
0
在线时间
0 小时
注册时间
2018-5-9
最后登录
2018-5-9

楼主
yguo379 发表于 昨天 16:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

一、设计思想的差异 —— CPU 与 GPU 的架构哲学

在深入解析GPU内部构造之前,必须首先理解其与CPU在设计理念上的本质区别。两者虽均由晶体管构成,但目标迥异,导致结构大相径庭。

特性 CPU GPU
核心目标 追求低延迟,高效完成单个复杂任务 强调高吞吐量,同时处理大量简单并行任务
核心数量 较少(通常为几个到几十个),每个核心功能强大且独立运行 极多(可达数千甚至上万个),核心小巧高效,专为并行计算优化
缓存体系 多层次、大容量缓存系统,旨在最小化数据读取延迟 相对精简,主要用于支持线程束间的数据共享,而非掩盖延迟
控制单元 占比高,具备强大的指令调度、分支预测和乱序执行能力 占比小,采用SIMT(单指令多线程)模型,统一控制多个线程执行相同指令流
适用场景 操作系统调度、通用程序运行、逻辑判断及串行计算 图形渲染、科学模拟、深度学习训练、密码破解等高度并行任务
比喻形象 “博学家”或“法拉利”:擅长处理复杂事务,单次操作速度极快 “军队”或“巨型卡车”:个体能力有限,但能组织海量单元协同执行简单命令

核心理念在于:GPU将绝大多数芯片面积分配给计算单元,而非复杂的控制逻辑或庞大缓存,通过极致的并行化策略实现最大化的整体吞吐性能。

[此处为图片1]

二、GPU 架构层级解析

以现代 NVIDIA GPU 架构(如 Ampere、Hopper)为例,可将其内部结构划分为多个层次,逐级深入理解其工作原理。

层级1:宏观视角 —— GPU 芯片整体布局

一块完整的GPU芯片由以下几个关键模块组成:

  • 图形处理集群(GPC):芯片中最顶层的功能划分,每个GPC包含若干流式多处理器(SM)、光栅引擎等功能单元。
  • 流式多处理器(SM):GPU的核心运算单元,所有计算任务——无论是图形渲染、AI推理还是科学计算——最终都在SM中完成。高端GPU往往集成上百个SM。
  • 内存控制器:连接GPU核心与显存的关键通道。借助HBM2e或HBM3等高带宽显存技术,提供远超传统内存的数据传输速率。
  • 二级缓存(L2 Cache):所有SM共享的最后一级高速缓存,作为SM与显存之间的中间缓冲区,降低访问延迟。
  • PCIe 接口:负责与主机CPU通信,实现数据交换与指令传递。
[此处为图片2]

层级2:核心动力源 —— 流式多处理器(SM)内部结构

SM 是 GPU 真正意义上的“心脏”,其内部结构决定了计算效率与并行能力。

1. 计算单元

  • CUDA 核心:最基本的标量处理单元,主要承担单精度浮点运算和整数运算。
  • Tensor 核心:专为矩阵乘加运算设计的硬件加速器,可在单个时钟周期内完成 4×4 矩阵的混合精度计算,是推动深度学习性能飞跃的核心组件。
  • RT 核心:用于加速光线追踪中的射线-几何体求交运算,显著提升实时光追渲染效率。

2. 执行上下文与线程束调度机制

SM 基于 SIMT 模型运作,能够同时维护成千上万线程的执行状态(寄存器信息)。

  • 线程束(Warp):GPU的基本执行单位,通常由32个线程组成。这些线程共享同一程序计数器,执行相同的指令,但作用于不同的数据。
  • 调度器:每个时钟周期从就绪队列中选择可执行的线程束,并将其指令分发至对应的功能单元。高效的调度机制有助于隐藏内存访问带来的延迟。

3. 寄存器文件

每个 SM 都配备一个巨大的寄存器堆(例如 256KB)。每个线程拥有专属寄存器空间,用于存储局部变量和中间结果。这一设计使得大量线程之间可以实现快速切换,无需频繁保存/恢复上下文。

4. 内存子系统

  • 共享内存 / L1 缓存:位于 SM 内部的小容量、超高带宽 SRAM。该内存对 SM 中的所有线程可见,程序员可通过代码显式控制其使用,是性能调优的重要手段。
  • 只读缓存 / 常量缓存:专门优化对只读数据和常量数据的访问速度,减少重复加载开销。
[此处为图片3]

层级3:执行模型 —— 软件线程如何映射至硬件资源

掌握“网格-线程块-线程”这一编程模型如何与物理硬件对接,是理解GPU并行机制的关键。

  • 线程:最小的执行实体。
  • 线程块:一组逻辑相关的线程(如 128 或 256 个),可被分配到同一个 SM 上执行,并利用共享内存进行协作与同步。
  • 网格:一次内核启动所包含的所有线程块的集合。

硬件映射流程如下:

  1. 程序员调用内核函数,启动一个网格。
  2. GPU驱动程序将网格中的线程块动态分配到各个可用的SM上。
  3. 每个SM根据资源情况,可容纳一个或多个线程块。
  4. 进入SM的线程块被进一步拆分为多个线程束(每组32个线程)。
  5. SM内的调度器在每个时钟周期选取就绪的线程束,将其指令发送至CUDA核心或Tensor核心阵列。
  6. 同一线程束内的32个线程以锁步方式执行相同指令,在计算单元上并行处理不同数据。
[此处为图片4]

层级4:内存体系结构 —— 数据流动路径与优化原则

GPU拥有层次分明的内存系统,各层级在速度、容量和访问权限方面各有特点:

  • 寄存器:最快,仅限当前线程访问。
  • 共享内存:高速,同一SM内所有线程共享,可用于手动优化数据复用。
  • L1 缓存 / 常量缓存 / 只读缓存:驻留在SM内部,服务于局部数据访问。
  • L2 缓存:全芯片范围内共享,是连接SM与显存之间的桥梁。
  • 全局内存(显存):容量大,但延迟较高,带宽充沛,所有线程均可访问。
  • 纹理内存 / 常量内存:特殊的只读全局内存类型,具有专用缓存机制,适合特定访问模式。

性能优化要点:应尽量让数据保留在寄存器和共享内存中,减少对全局内存的访问频率;同时确保全局内存访问是“合并的”——即一个线程束的32个线程连续访问一段对齐的内存地址,从而最大化带宽利用率。

[此处为图片5]

三、演进趋势与人工智能的深度融合

GPU的发展经历了从专用图形处理器向通用并行计算平台,再到AI时代核心算力引擎的转变:

  • 早期GPU专为图形渲染服务,仅支持固定管线操作。
  • 随着CUDA和OpenCL等通用编程框架的出现,GPU开始支持任意类型的并行计算,迈入GPGPU(通用GPU)时代。
  • 近年来,AI尤其是深度学习的爆发性增长,促使GPU架构持续演进,引入Tensor核心、稀疏化支持、Transformer加速等新技术,成为训练大模型不可或缺的基础设施。

如今,GPU已不仅是图形加速卡,更是高性能计算与人工智能领域的基石性硬件平台。

GPU架构的演进深刻体现了其“吞吐量优先”的设计思想,而Tensor核心的出现则标志着GPU正式迈入AI加速器主导地位。这类核心的设计重心已从传统的通用浮点运算,转向针对深度学习中关键操作——矩阵乘加运算的高度优化。

随着AI模型的发展,稀疏性成为不可忽视的特征:模型中的权重与激活值往往包含大量零值。为应对这一趋势,新一代GPU(如NVIDIA Hopper架构)在Tensor核心中引入了结构化稀疏加速能力。该技术能够识别稀疏模式并跳过无效的零值计算,从而显著提升有效计算密度和能效表现。

与此同时,线程调度机制也在持续进化。细粒度的线程协作模式被引入,例如“线程束簇”(Thread Block Cluster)的概念,使得更小规模的线程组(如16个线程)也能实现高效的同步与通信。这种改进增强了并行执行的灵活性,更好地适应复杂多变的计算负载需求。

[此处为图片1]

嵌入式GPU的架构权衡

尽管嵌入式GPU(如NVIDIA Jetson系列、高通Adreno、ARM Mali等)与桌面级或数据中心GPU共享相同的基础架构理念,但在实际设计中面临不同的约束与目标:

  • 高度集成化设计:通常作为SoC的一部分,与CPU、内存控制器及其他外设共存于单一芯片内,采用统一内存架构,不配备独立显存。
  • 极致能效追求:性能功耗比是核心指标。通过精细调节核心数量、工作频率与电压,并结合动态电压频率调整(DVFS)和功耗门控技术,实现最优能效。
  • 规模缩减但架构完整:虽然仅集成数个至数十个SM单元,但仍保留完整的SM结构,包括CUDA核心、Tensor核心以及共享内存子系统。
  • 专用硬件协同:为满足嵌入式视觉处理需求,常集成图像信号处理器(ISP)、视频编解码器等专用模块,与GPU形成高效协同流水线。
  • 实时性保障:在汽车自动驾驶、工业控制等应用场景中,需确保任务执行的确定性与可预测的最坏响应时间,这与传统GPU侧重最大吞吐量的设计目标形成对比。

总结

GPU的内部组织方式是其高并发计算哲学的具体体现:

  • 以流式多处理器(SM)为基本构建单元,依靠大规模并行实现性能突破;
  • 采用SIMT(单指令多线程)执行模型,在简化控制逻辑的同时驱动海量线程并发运行;
  • 引入专用计算单元(如Tensor核心),精准应对人工智能等新兴负载的核心瓶颈;
  • 构建多层次的片上存储体系,在性能最大化与编程灵活性之间取得平衡。

在嵌入式领域,设计重点进一步向能效比和系统集成度倾斜。理解GPU底层架构,不仅有助于编写高性能的CUDA或OpenCL程序,更是掌握现代异构计算体系与AI硬件加速原理的关键所在。它象征着计算范式从“更快完成单个任务”向“同时处理更多任务”的根本转变。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:嵌入式系统 GPU 嵌入式 transform Cluster

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-9 07:30