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将其更多的晶体管用于算术单元,并运行数千个线程以隐藏内存延迟,从而牺牲单线程速度以换取总吞吐量。这使得它们非常适合规则的、高度数据并行化的工作,但不太适合分支多、对延迟敏感的代码。