CUDA C Programming Guide 笔记——1.简介

1.简介

1.1 使用GPU的理由

GPU的浮点运算能力远高于CPU

GPU和CPU的浮点运算对比

GPU的内存带宽高于CPU

GPU和CPU的内存带宽对比

GPU的浮点运算能力高于CPU的原因是,GPU的浮点计算单元多余CPU,而控制和缓存单元少于CPU。

GPU将更多的晶体管用于数据处理

GPU适用于计算密集的应用,数据并行,充分发挥浮点运算性能,并且用计算掩盖访存。

 1.2 CUDA平台简介

CUDA:NVIDIA GPUs的通用并行计算平台和编程模型,提供了软件环境使得开发者能够使用C语言编程,并且提供了对其他语言和应用的支持。

CUDA平台语言和应用

 1.3 可扩展的编程模型

为了解决并行性随着核数增加得到扩展的问题,CUDA并行模型的有三个重要的抽象:线程组、共享内存、同步,对于编程者而言就是语言上的扩展。

这样的抽象在粗粒度数据并行和任务并行中嵌套了细粒度的数据并行和线程并行,编程者把问题划分成独立的线程组并行的粗粒度子问题,又将每个线程组上的子问题划分成更细粒度让线程并行解决。

线程组的并行是可扩展的,每个线程组可以被分配到GPU任意空闲的核上,编程者只需要把任务分配到线程组,至于物理上有多少个核,是运行时系统需要关心的事,这样的编程模型使得内存分区和核数可扩展,核数多的GPU比核数少的GPU执行得快。线程组Block和物理核Block对应关系如图。

可扩展性

猜你喜欢

转载自www.cnblogs.com/suxi1314/p/10779405.html