ScholarGate
助手

GPU和加速器计算

GPU和加速器计算利用大规模并行多核处理器,将数据并行工作负载的加速能力提升到远超通用CPU的水平。

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

Definition

GPU和加速器计算是利用专门的多核处理器,针对高吞吐量数据并行执行进行优化,在主机-设备编程模型下卸载并加速计算中可并行化的部分。

Scope

本主题涵盖图形处理单元和其他加速器的架构,它们是面向吞吐量的多核SIMD/SIMT机器;针对它们的编程模型(CUDA、OpenCL和基于指令的卸载);线程层次和内存层次抽象(线程、warp、块、网格;全局内存、共享内存和寄存器内存);以及影响可实现吞吐量的性能考量——占用率、内存合并和分支发散。

Core questions

  • 面向吞吐量的多核加速器模型与通用CPU有何不同?
  • 计算如何通过线程层次结构表示为大规模并行核函数?
  • 哪些内存和执行行为(合并、发散、占用率)限制了可实现的性能?

Key theories

SIMT执行模型
GPU运行数千个轻量级线程,这些线程被分组到warp中并同步执行(单指令多线程);性能取决于保持warp忙碌并避免warp内的控制流发散。
分层线程和内存模型
CUDA将线程组织成块和网格,并公开了寄存器、快速共享内存和大型全局内存的内存层次结构;将数据和计算映射到此层次结构是核心性能任务。
通用GPU计算
从固定功能图形管线到可编程通用加速器的演变,使GPU成为科学和数据密集型计算的主流平台。

Clinical relevance

加速器是现代计算密集型应用的主力:深度学习训练和推理、科学模拟、图像和信号处理以及密码学都依赖GPU实现比CPU快一个数量级的速度提升。

History

GPU从固定功能图形硬件发展成为可编程并行处理器;2007年发布的CUDA(由Nickolls及其同事于2008年描述)使通用GPU计算变得可行,此后加速器成为高性能计算和机器学习计算的核心。

Key figures

  • John Nickolls
  • Wen-mei Hwu
  • David Kirk
  • John Owens

Related topics

Seminal works

  • nickolls2008
  • kirk2016
  • owens2008

Frequently asked questions

为什么GPU在某些工作负载下比CPU快得多?
GPU将其更多的晶体管用于算术单元,并运行数千个线程以隐藏内存延迟,从而牺牲单线程速度以换取总吞吐量。这使得它们非常适合规则的、高度数据并行化的工作,但不太适合分支多、对延迟敏感的代码。

Methods for this concept

Related concepts