基本GPU架构

时间:2018-07-04 11:44:53

标签: gpu computer-science

我已经使用CUDA几周了,但是我对块/线程/线程的分配有一些疑问。

首先,我想了解我是否明白这些事实:

  1. GPU有一些可以并行工作的流处理器。

  2. 每个SM都有块,每个块都有自己的共享内存。

  3. 内部模块具有CUDA内核。

  4. 在每个SM中,我们还具有Warp调度程序。

  5. 每个经线包含32个线程。并在连续工作的方块中扭曲。 这意味着一个扭曲应该完成,然后下一个扭曲可以开始。

  6. GPU中的所有块无法同时并行运行。并且并行运行的块数是有限的。(但我不知道数量是多少)

现在我的主要问题是:

假设我们有两种不同的情况:

  1. 首先,每个块有32个线程(1个扭曲),并且有16384个对象(或操作数)。

  2. 第二,每个块有64个线程(2个扭曲),对象数量相同。

为什么第一个要花更多时间运行程序?(其他条件相同,即使每个块有128个线程,它也比这两个要快)

预先感谢

0 个答案:

没有答案