GPU 英伟达GPU架构回顾

1999 年,英伟达发明了 GPU(graphics processing unit),本节将介绍英伟达 GPU 从 Fermi 到 Blackwell 共 9 代架构,时间跨度从 2010 年至 2024 年,具体包括费米(Feimi)、开普勒(Kepler)、麦克斯韦(Maxwell)、帕斯卡(Pashcal)、伏特(Volt)、图灵(Turing)、安培(Ampere)和赫柏(Hopper)和布莱克韦尔(Blackwell)架构。经过 15 年的发展,CUDA 已成为英伟达的技术“护城河”,Tensor Core5.0,NVLink5.0,NVswitch4.0,Transformer Engine2.0 等技术迭代更新,正如英伟达公司官方宣传语所言:“人工智能计算领域的领导者,推动了 AI、HPC、游戏、创意设计、自动驾驶汽车和机器人开发领域的进步。”

架构名称

中文名字

发布时间

核心参数

特点&优势

纳米制程

代表型号

Fermi

费米

2010

16 个 SM,每个 SM 包含 32 个 CUDA Cores,一共 512 CUDA Cores

首个完整 GPU 计算架构,支持与共享存储结合的 Cache 层次 GPU 架构,支持 ECC GPU 架构

40/28nm, 30 亿晶体管

Quadro 7000

Kepler

开普勒

2012

15 个 SMX,每个 SMX 包括 192 个 FP32+64 个 FP64 CUDA Cores

游戏性能大幅提升,首次支持 GPU Direct 技术

28nm, 71 亿晶体管

K80, K40M

Maxwell

麦克斯韦

2014

16 个 SM,每个 SM 包括 4 个处理块,每个处理块包括 32 个 CUDA Cores+8 个 LD/ST Unit + 8 SFU

每组 SM 单元从 192 个减少到每组 128 个,每个 SMM 单元拥有更多逻辑控制电路

28nm, 80 亿晶体管

M5000, M4000GTX 9XX 系列

Pascal

帕斯卡

2016

GP100 有 60 个 SM,每个 SM 包括 64 个 CUDA Cores,32 个 DP Cores

NVLink 第一代,双向互联带宽 160GB/s,P100 拥有 56 个 SM HBM

16nm, 153 亿晶体管

P100, P6000, TTX1080

Volta

伏特

2017

80 个 SM,每个 SM 包括 32 个 FP64+64 Int32+64 FP32+8 个 Tensor Cores

NVLink2.0,Tensor Cores 第一代,支持 AI 运算,NVSwitch1.0

12nm, 211 亿晶体管

V100, TiTan V

Turing

图灵

2018

102 核心 92 个 SM,SM 重新设计,每个 SM 包含 64 个 Int32+64 个 FP32+8 个 Tensor Cores

Tensor Core2.0,RT Core 第一代

12nm, 186 亿晶体管

T4,2080TI, RTX 5000

Ampere

安培

2020

108 个 SM,每个 SM 包含 64 个 FP32+64 个 INT32+32 个 FP64+4 个 Tensor Cores

Tensor Core3.0,RT Core2.0,NVLink3.0,结构稀疏性矩阵 MIG1.0

7nm, 283 亿晶体管

A100, A30 系列

Hopper

赫柏

2022

132 个 SM,每个 SM 包含 128 个 FP32+64 个 INT32+64 个 FP64+4 个 Tensor Cores

Tensor Core4.0,NVLink4.0,结构稀疏性矩阵 MIG2.0

4nm, 800 亿晶体管

H100

Blackwell

布莱克韦尔

2024

-

Tensor Core5.0,NVLink5.0, 第二代 Transformer 引擎,支持 RAS

4NP, 2080 亿晶体管

B200

Fermi 架构

2006 年英伟达提出 G80 架构,使开发者可以基于 C 语言在 GPU 上进行开发。2008 年基于 G80 架构提出 GT200,增加了流处理器核的数量,更高的精度和并行能力使 GPU 进行科学计算和高性能计算成为可能。

2010 年英伟达提出 Feimi 架构,最大可支持 16 个 SMs,每个 SM 有 32 个 CUDA Core,一共 512 个 CUDA Core,架构设计主要是以当时游戏用户的需求为主,因此整个 GPU 有多个 GPC(图形处理簇),单个 GPC 包含一个光栅引擎(Raster Engine)和 4 个 SM。

GPU 拥有 6 个 64 位内存分区,总共是 384 位内存,最多支持 6 GB GDDR5 DRAM 内存。主机接口通过 PCI-Express 连接 GPU 和 CPU。GigaThread 全局调度器将线程块分配给 SM 线程调度器。因为计算核心较多,因此将 L2 Cache 放在处理器中间位置,使得数据可以在 CUDA Core 之间快速传输。

恩里科·费米(Enrico Fermi)是意大利裔美国物理学家,20 世纪最重要的物理学家之一,被誉为“原子能时代之父”。他在核物理、量子力学和统计力学等领域做出了重要贡献。主要成就包括:

  1. 提出费米子统计,即著名的费米-狄拉克统计,描述了半整数自旋的粒子的统计性质。

  2. 领导了芝加哥大学的“费米堆”课程,成功实现了世界上第一座自持核链反应堆。

  3. 参与了曼哈顿计划,对原子弹的研发做出了重要贡献。

  4. 获得了 1938 年的诺贝尔物理学奖,以表彰他在人类利用新的放射性同位素所作出的贡献。

Fermi 架构采用第三代流处理器,每个 SM 有 16 个加载/存储单元(Load/Store, LD/ST),允许为每个时钟 16 个线程计算源地址和目标地址,支持将每个地址的数据加载并存储到缓存或 DRAM 中。特殊功能单元(Special Function Unit, SFU)执行超越函数,如 sin、cos、导数和平方根。每个 SFU 在每个线程、每个时钟执行一条指令,一次 warp(由 32 个线程组成的线程组)要经过 8 个时钟周期。SFU 管线与调度单元解耦,允许调度单元在占用 SFU 时向其他执行单元发出命令。双精度算法是高性能计算应用的核心,每个 SM、每个时钟可执行多达 16 个双精度融合乘加运算。

每个 SM 有两个 warp 调度器和两个指令调度单元,允许同时发出和执行两个 warp。并行计算主要在 CUDA 中进行处理,每个 CUDA 处理器都有一个完整的流水线整数算术逻辑单元(ALU)和浮点单元(FPU),可以选择 FP 32 或者 INT 8 执行计算,但是 FP Unit 和 INT Unit 的执行不是并行的。

Fermi 架构支持新的并行线程执行 PTX 2.0(Parallel Thread Execution)指令集架构。一个 CUDA 程序被称作并行的 Kernel,线程分为三级,包含线程(Threads)、块(Blocks)和网格(Grid),每个层次结构对应硬件,Thread 可以共享局部内存(Local memory),线程块使用共享内存(Shared Memory),Grid 共享全局内存(Global Memory),具有相应的每个线程专用、每个块共享和每个应用程序全局内存空间。

Kepler 架构

2012 年英伟达提出 Kepler 架构,由 7.1 亿个晶体管组成的 Kepler GK110 将提供超过 1 TFlop 的双精度吞吐量,采用台积电 28 nm 制程,每瓦的性能是费米架构的 3 倍。由 15 个 SMX 单元和 6 个 64 bit 内存控制器,内存子系统提供额外的缓存功能,在每个层次结构的存储器有更大的带宽,实现更快的 DRAM I/O,同时为编程模型提供硬件支持。

约翰内斯·开普勒(Johannes Kepler)是一位德国天文学家、数学家和占星术士,被誉为现代天文学的奠基人之一。他生活在 16 世纪末至 17 世纪初,是科学革命时期的重要人物,他的工作对天文学和物理学领域产生了深远的影响,为后来伽利略和牛顿等科学家的研究奠定了基础。主要成就包括:

  1. 提出了行星运动的三大定律,即开普勒定律:
  • 第一定律:行星绕太阳运行的轨道是椭圆形的,太阳位于椭圆的一个焦点上。

  • 第二定律:行星在其轨道上的矢量面积与时间的比率是常数。

  • 第三定律:行星轨道的半长轴与公转周期的平方成正比。

  1. 通过观测和分析提出了行星运动的椭圆轨道理论,颠覆了当时的圆周运动观念。

  2. 对光学、天文学和数学领域都做出了重要贡献,为日后牛顿的引力理论奠定了基础。

开普勒架构相比上一代 Fermi 架构,SM(Streaming Multiprocessor)更名为 SMX,但是本身的概念没有改变,每个 SMX 具有四个 warp 调度器和八个指令调度单元,允许同时发出和执行四个 warp。Fermi 架构共有 32 核,Kepler 架构拥有 192 核,大大提升了 GPU 并行处理的能力。Fermi 支持最大线程数是 1536,Kepler 最大线程数达到 2048。64 个双精度(Double-Precision,DP)单元,32 特殊功能单元(SFU)和 32 个 LD/ST(load/store)单元,满足高性能计算场景的实际需求。

Kepler 架构支持动态并行(Dynnamic Parallelism),在不需要 CPU 支持的情况下自动同步,在程序执行过程中灵活动态地提供并行数量和形式。Hyper-Q 使多个 CPU 核使用单个 GPU 执行工作,提高 GPU 利用率并显着减少 CPU 空闲时间,允许 32 个同时进行的硬件管理连接,允许从多个 CUDA 流处理,多个消息传递进程中分离出单个进程。使用网格管理单元(Grid Management Unit,GMU)启用动态并行和调度控制,比如挂起或暂停网格和队列直到执行的环境准备好。

英伟达 GPUDirect 可以使单个计算机内的 GPU 或位于网络上不同服务器中的 GPU 直接交换数据,而无需转到 CPU 系统内存,RDMA 特性允许第三方设备直接访问同一系统内多个 GPU 上的内存,减少了对系统内存带宽的需求,释放 GPU DMA 引擎供其它 CUDA 任务使用。

Maxwell 架构

2014 年英伟达提出 Maxwell 架构,麦克斯韦架构相比上一代架构没有太大改进,其中 SM 又使用了原来的名称,整体的核心个数变为 128 个,因为核心数不需要太多,可以通过超配线程数来提升 GPU 并行计算的能力。

SMM 使用基于象限的设计,其中每个 SMM 有四个共 32 核处理块,每个处理块都有一个专用的 warp 调度器,能够在每个时钟调度两条指令。每个 SMM 提供 8 个纹理单元,一个图形的几何处理引擎,以及专用的寄存器文件(Register File)和共享内存(Shared Memory)。单核性能是

<think>好的,用户让我介绍一下自动驾驶域控制器的软件架构图。首先,我需要确认自己对自动驾驶域控制器的理解是否正确。域控制器是汽车电子中的一个重要概念,负责整合和处理特定功能域的信息,比如自动驾驶域。而软件架构图则是展示其内部各个模块及其交互关系的图示。 接下来,我得回忆一下自动驾驶系统的基本组成部分。通常包括感知、定位、决策、规划、控制等模块。这些模块如何集成到域控制器的软件架构中呢?可能需要分层次来介绍,比如硬件层、操作系统层、中间件、功能模块和应用层等。 用户可能希望了解架构的分层结构以及各层的功能。需要确保每个层次都解释清楚,并且模块之间的通信方式,比如使用ROS、AUTOSAR等中间件。此外,还要考虑实时性、安全性和可靠性,这些是自动驾驶系统的关键要求。 还要想到用户可能的背景,可能是汽车工程师、学生或技术爱好者。所以需要用中文清晰解释,避免过于专业的术语,或者在必要时进行解释。结构要清晰,分点说明,可能还需要举例说明各层的具体技术,比如Linux、QNX作为操作系统,CUDA用于加速计算等。 需要检查是否遵循了用户提供的系统级指令:行内公式用$...$,独立公式用$$...$$,但这个问题可能涉及较少的数学公式,更多是架构图描述。不过如果有涉及算法或模型,可能需要提到相关的数学表达式,比如感知模块中的目标检测算法,如YOLO,或者卡尔曼滤波等,但用户的问题更偏向架构而非具体算法,所以可能不需要太多数学内容,但需留意。 另外,用户要求结构清晰,逐步解决问题,所以可能需要按层次从底层到顶层介绍,或者按功能模块划分。同时,确保回答真实可靠,引用常见的架构设计,比如基于AUTOSAR的架构,或者某些车企采用的方案,如特斯拉的FSD,但要注意可能涉及商业机密,所以保持一般性描述。 可能的挑战是如何将复杂的软件架构用简洁明了的中文解释清楚,同时不遗漏关键模块。需要平衡细节和概括,让不同背景的用户都能理解。可能还需要提到通信协议,如CAN、以太网,以及安全机制,如功能安全ISO 26262,信息安全等。 最后,总结部分需要回顾整个架构的优势和设计目标,比如模块化、高内聚低耦合、扩展性等,并指出未来趋势,如云端协同、OTA升级等。确保回答符合用户的所有要求,包括格式和语言规范。</think>### 自动驾驶域控制器软件架构图解析 自动驾驶域控制器是自动驾驶系统的“大脑”,其软件架构需满足**高实时性、功能安全(ISO 26262)**和**多模块协同**的要求。以下是典型的分层架构设计: --- #### 1. **硬件抽象层(HAL)** - **功能**:封装底层硬件差异,提供标准化接口。 - **关键模块**: - **传感器驱动**:摄像头、激光雷达、毫米波雷达的原始数据接入。 - **计算单元管理**:GPU(如NVIDIA Xavier)、ASIC(如特斯拉FSD芯片)的算力分配。 - **通信接口**:CAN、Ethernet、FlexRay等协议的硬件支持。 --- #### 2. **操作系统层(OS)** - **实时操作系统(RTOS)**:如QNX、VxWorks,用于**低延迟任务**(控制指令下发)。 - **通用操作系统**:如Linux,运行**高算力算法**(感知、决策)。 - **安全性设计**:内存隔离(如Hypervisor)、进程权限控制。 --- #### 3. **中间件层** - **核心功能**:模块间通信、资源调度、数据分发。 - **典型技术**: - **AUTOSAR Adaptive**:支持SOA(面向服务架构),实现软硬件解耦。 - **ROS 2/DDS**:用于传感器融合、跨节点数据传输。 - **OTA管理**:软件远程更新与版本控制。 --- #### 4. **功能算法层** - **感知模块** - **目标检测**:使用深度学习模型(如YOLO、BEVFormer)识别车辆、行人。 - **多传感器融合**:通过卡尔曼滤波($x_{k} = F_k x_{k-1} + B_k u_k + w_k$)融合激光雷达与摄像头数据。 - **定位与高精地图** - **SLAM算法**:结合GPS、IMU与视觉特征匹配。 - **决策与规划** - **行为决策**:基于规则或强化学习(如DQN)选择变道、跟车策略。 - **路径规划**:使用A*算法($f(n) = g(n) + h(n)$)或优化方法(如QP)生成轨迹。 - **控制模块** - **横向控制**:PID或模型预测控制(MPC)实现转向。 - **纵向控制**:调节油门/刹车以跟踪速度曲线。 --- #### 5. **功能安全与冗余设计** - **失效检测**:通过心跳机制(Heartbeat)监控模块状态。 - **冗余备份**:双计算通道(如英伟达DRIVE双芯片架构)和降级模式(如L2级接管)。 - **信息安全**:加密通信(TLS/SSL)、入侵检测系统(IDS)。 --- #### 6. **应用接口层** - **车云协同**:与云端交互高精地图、交通数据。 - **HMI交互**:向驾驶员提供状态信息(如AR-HUD显示)。 - **诊断服务**:故障码(DTC)记录与远程诊断。 --- ### 架构图示例(文字描述) ```plaintext +---------------------+ | 应用层(HMI/云服务) | +---------------------+ | 功能算法层(感知/决策/控制) | +---------------------+ | 中间件层(AUTOSAR/ROS 2) | +---------------------+ | 操作系统层(QNX/Linux) | +---------------------+ | 硬件抽象层(传感器/计算单元) | +---------------------+ ``` --- ### 设计目标与趋势 1. **模块化**:支持算法快速迭代(如替换感知模型)。 2. **可扩展性**:兼容不同传感器配置(如L2到L4的硬件升级)。 3. **车规级要求**:满足ASIL-D功能安全等级与AEC-Q100可靠性认证。 4. **未来方向**:引入**端云协同推理**(如5G边缘计算)和**AI芯片异构计算**(如NPU+GPU混合架构)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值