ScholarGate
助手

GPU架构

图形处理单元(GPU)是一种面向吞吐量、大规模并行处理器,由许多简单的核心组成,这些核心执行数千个线程以隐藏内存延迟,最初用于图形处理,现在广泛用于通用计算和机器学习计算。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

GPU架构是一种高度并行的处理器设计,由许多轻量级核心组成,这些核心分组到多处理器中,以同步方式执行大量线程组,旨在优化高算术吞吐量和延迟隐藏,而非单线程速度。

Scope

本主题涵盖GPU硬件组织:流式多处理器、单指令多线程(SIMT)执行模型、线程束和线程块、寄存器、共享内存和全局内存的内存层次结构,以及GPU如何通过大规模多线程隐藏延迟。它将GPU视为并行架构。它不包括CPU SIMD扩展(SIMD和向量处理器)以及超出架构影响范围的GPU编程软件框架。

Core questions

  • GPU如何通过许多简单的核心而非少数复杂的核实现高吞吐量?
  • 什么是单指令多线程执行模型,以及线程束如何工作?
  • 大规模多线程如何隐藏内存延迟?
  • GPU内存层次结构如何为并行工作负载组织?

Key concepts

  • 流式多处理器
  • 单指令多线程(SIMT)
  • 线程束和线程块
  • 大规模多线程
  • 延迟隐藏
  • 共享内存、全局内存和寄存器内存
  • 内存合并
  • 面向吞吐量的设计

Key theories

通过大规模多线程隐藏延迟
GPU不是最小化单个线程的延迟,而是保持数千个线程在运行中,并在某些线程因内存停顿时在就绪组之间切换,因此充足的并行性使许多算术单元保持忙碌并隐藏长时间的内存延迟。

Mechanisms

GPU包含许多流式多处理器,每个多处理器在SIMT模型下同步执行线程组(线程束)。线程被组织成块,这些块共享快速片上内存并进行局部同步。硬件调度许多线程束,并以接近零的开销在它们之间切换,因此当一个线程束等待内存时,另一个线程束运行,从而使算术单元保持忙碌;合并的内存访问模式最大限度地提高了带宽利用率。

Clinical relevance

GPU已成为高性能计算和人工智能计算的核心:其面向吞吐量的设计使其成为训练和运行深度神经网络以及科学模拟和数据分析的主导平台。其架构奖励数据并行算法和合并内存访问,从而塑造了性能关键型软件的编写方式。

History

GPU从1990年代的固定功能图形流水线演变为可编程着色器,然后是完全可编程的多核处理器。2000年代后期通用GPU计算框架的引入使它们能够处理科学和数据工作负载,其吞吐量使其成为2010年代及以后深度学习时代的核心引擎。

Debates

GPU通用性与专用加速器
GPU是灵活的吞吐量引擎,但日益专业的加速器(如张量和矩阵单元)为特定工作负载提供了更高的效率;设计者权衡GPU的可编程性和广泛适用性与专用硬件的效率。

Key figures

  • David B. Kirk
  • Wen-mei Hwu
  • John L. Hennessy
  • David A. Patterson

Related topics

Seminal works

  • hennessy2019
  • kirk2016

Frequently asked questions

为什么GPU非常适合深度学习?
训练和运行神经网络主要包括具有丰富数据并行性的密集矩阵和张量运算。GPU的众多核心和高内存带宽以非常高的吞吐量执行这些操作,在这些规则的并行工作负载上远远超过通用CPU。
GPU执行中的线程束是什么?
线程束是一组线程(通常为32个),它们在SIMT模型下同步执行相同的指令。将线程分组到线程束中,硬件可以将指令控制分摊到许多数据元素上,尽管线程束内的分支发散会降低效率。

Methods for this concept

Related concepts