CUDA C++ Programming Guide(Version 10.0) —— 1. Introduction

从图像处理到通用并行计算

图1. CPU和GPU的每秒浮点运算CUDA C++ Programming Guide(Version 10.0) —— 1. Introduction
图2. CPU和GPU的内存带宽
CUDA C++ Programming Guide(Version 10.0) —— 1. Introduction
CPU和GPU之间的浮点功能差异背后的原因是,GPU专用于高度并行计算(针对于图形渲染)。因此,在GPU中,更多的晶体管transistor 专用于数据处理(data processing)而不是数据缓存(data caching)和流量控制(flow control)。

CUDA C++ Programming Guide(Version 10.0) —— 1. Introduction
GPU 可以通过计算来隐藏访问内存时的延迟,而不是通过大量数据缓冲以及流控制来避免内存访问延迟。

CUDA 是NVIDIA 提出的一个通用并行编程平台

CUDA C++ Programming Guide(Version 10.0) —— 1. Introduction

可扩展的编程模型

GPU是围绕流多处理器 Streaming Multiprocessors(SMs)阵列构建的,多线程程序被划分为彼此独立执行的线程块。
CUDA C++ Programming Guide(Version 10.0) —— 1. Introduction
核心关键词:

  • 层次线程组,a hierarchy of thread groups
  • 共享内存,shared memories
  • 障碍同步,barrier synchronization