如何快速理解CUDA GPU并行编程?

2020-07-27  本文已影响0人  Hennyxu

理解线程(Thread)、线程块(Block)、网格(Grid),线程块数(BlockDim)、网格数(GridDim)以及核函数(Kernel)的概念,是CUDA学习的一个难点。本文会详细介绍如何在CUDA中使用一维、二维核函数,并索引其下标。

Dim3类型的数据

这是CUDA自定义的一种数据结构,一般为三维的无符号整型,其定义及引用方式如下;

Dim3 BlockSize(16, 16, 1)
// BlockSize.x = 16; BlockSize.y = 16; BlockSize.z = 1;
// 也可以写为  Dim3 BlockSize(16, 16),最后一维默认为1;

一维的CUDA核函数

所以要索引第三个Block(序号2)中第4个线程(序号3)的下标index,其过程如图所示:

一维结构及一维下标索引

二维的CUDA核函数

而x、y的方向如下图所示:

二维结构及二维下标索引

以上就是两种最常见的索引方式,在大部分任务中应该已经够用了。

上一篇 下一篇

猜你喜欢

热点阅读