CUDA C++ Programming Guide(Version 10.0) —— 1. Introduction
CUDA编程 - Introduction
从图像处理到通用并行计算
图1. CPU和GPU的每秒浮点运算
图2. CPU和GPU的内存带宽
CPU和GPU之间的浮点功能差异背后的原因是,GPU专用于高度并行计算(针对于图形渲染)。因此,在GPU中,更多的晶体管transistor 专用于数据处理(data processing)而不是数据缓存(data caching)和流量控制(flow control)。
GPU 可以通过计算来隐藏访问内存时的延迟,而不是通过大量数据缓冲以及流控制来避免内存访问延迟。
CUDA 是NVIDIA 提出的一个通用并行编程平台
可扩展的编程模型
GPU是围绕流多处理器 Streaming Multiprocessors(SMs)阵列构建的,多线程程序被划分为彼此独立执行的线程块。
核心关键词:
- 层次线程组,a hierarchy of thread groups
- 共享内存,shared memories
- 障碍同步,barrier synchronization