GPU编程之CUDA初学名词解释

来源:互联网 发布:家用脱毛仪 知乎 编辑:程序博客网 时间:2024/05/17 23:43

1.主机与主机代码

       将CPU及系统的内存(内存条)称为主机。主机代码在CPU上运行,CPU代码用来管理设备端的环境、代码和数        据。

2.设备与设备代码

       GPU及其内存(设备内存)称为设备,设备代码在GPU上运行,主要用来提高并行数据集的执行速度,是硬件的        加速器。

3.线程(thread)

线程是 GPU 运算中的最小执行单元,线程能够完成一个最小的逻辑意义操作。

4. 线程束(warp)

线程束是 GPU 中的基本执行单元。GPU 是一组 SIMD 处理器的集合,因此每个线程束中的线程是同时执行的。这个概念是为了隐藏对显存进行读写带来的延迟所引入的。一个 SM 中的所有 SP 在物理上分成 warp 的,共享同一个 memory 和 instruction unit。warp 是 GPU 执行程序时的调度单位,目前 CUDA 的 warp 的大小为 32,这个 warp 中的 32 个 threads(SP) 是一起工作的,执行相同的指令。也就是当进行并行计算时,线程数尽量为 32 的倍数,如果线程数不是 32 的倍数,假如是 1,则 Warp 会生成一个掩码,当一个指令控制器对一个 Warp 单位的线程发送指令时,32 个线程中只有一个线程在真正执行,其他 31 个进程会进入静默状态。

5. 线程块(block)

一个线程块包含多个线程束,在一个线程块内的所有线程,都可以使用共享内存来进行通信、同步。但一个线程块能拥有的最大线程/线程束,和显卡型号有关。

6. 线程网格(grid)

      多个线程块被组织成一维、二维或三维的线程网格,一个网格内的线程块数往往由被处理的数据量而不是系统的         处理器数决定,前者往往远超后者。

7. 流多处理器(SM)

多个 SP 加上其他的一些资源组成一个 SM,GPU 硬件的并行性就是由 SM 决定的。流多处理器就相当于 CPU 中的核,负责线程束的执行。同一时刻只能有一个线程束执行。

8. 流处理器(SP)

最基本的处理单元, 最后具体的指令和任务都是在 SP 上处理的。GPU 进行并行计算,也就是很多个 SP 同时做处理。SP 也可以称为 CUDA Core 或者 thread,一个 SP 对应一个 thread。


原创粉丝点击