线程与全局内存的交互

阿卜杜勒

我正在尝试了解GPU编码。我在理解GPU线程与全局内存的交互时遇到了一些麻烦。

我知道当我们在设备上分配或复制某些内容时,它是通过引用完成的。但是,当我们尝试访问线程中的全局内存时,究竟发生了什么?是所有线程都尝试同时访问内存以导致串行执行,还是全部创建自己的副本或其他内容?

任何帮助都感激不尽。

用户名

是所有线程都尝试同时访问内存以导致串行执行,还是全部创建自己的副本或其他内容?

如果要并行执行,则不行。例如,要并行添加数组,您可以执行以下操作:

int idx = blockIdx.x * blockDim.x + threadIdx.x;
outArr[idx] = a[idx] + b[idx];

网格内的每个线程将从两个不同的位置进行两次读取(在右侧),并向另一个位置进行一次写入。全部在全局内存中。您可以让所有线程从全局内存中的同一位置读取/写入。但是,为了防止出现竞争状况,您需要使用atomic functions

从/向全局内存进行读/写操作可能会很慢(它是DRAM),尤其是如果线程没有从合并的内存中读取(即:如果线程0、1、2、3从0x0,0x4,0x8,0xc进行读取,那么它将被合并) 。要了解有关CUDA内存模型的更多信息,请阅读《 CUDA编程指南》中的2.4节。

希望有帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CUDA:使用多个线程访问全局内存

来自分类Dev

OpenCL全局内存

来自分类Dev

CUDA中的全局内存与动态全局内存分配

来自分类Dev

OpenCL同步全局内存

来自分类Dev

将数据从全局内存移动到共享内存是否会使线程停止?

来自分类Dev

GTX Titan Z全局内存

来自分类Dev

GTX Titan Z全局内存

来自分类Dev

CUDA 对全局内存的低效访问模式

来自分类Dev

如何为每个活动线程块处理重用的全局内存的唯一部分?

来自分类Dev

当许多线程同时读取全局内存中的某个位置时,存在多少个事务?

来自分类Dev

如何从全局内存到本地内存进行跨步复制?

来自分类Dev

CUDA __constant__引用全局内存。哪个缓存?

来自分类Dev

C const全局内存段错误(在存在的地址上)

来自分类Dev

全局内存缓存重播如何超过100%?

来自分类Dev

CUDA动态并行和全局内存同步

来自分类Dev

CUDA内核中全局内存负载事务的计算

来自分类Dev

是否合并了不完整的全局内存访问?

来自分类Dev

opencl内核中的动态全局内存分配

来自分类Dev

对GPU上的全局内存位置的合并访问与广播访问

来自分类Dev

如何在CUDA中正确添加全局内存?

来自分类Dev

CUDA动态并行和全局内存同步

来自分类Dev

CUDA中的静态分配的全局内存结构

来自分类Dev

在CUDA中访问全局内存的速度很慢

来自分类Dev

将表单本地内存写入全局时是否需要本地和全局内存屏障

来自分类Dev

1D纹理内存访问比1D全局内存访问快吗?

来自分类Dev

OpenCL:如何将全局内存的连续块复制到私有内存?

来自分类Dev

如何找出GPU的共享内存和全局内存大小?

来自分类Dev

1D纹理内存访问是否比1D全局内存访问快?

来自分类Dev

OpenCL中工作项和全局内存之间的内存传输?

Related 相关文章

  1. 1

    CUDA:使用多个线程访问全局内存

  2. 2

    OpenCL全局内存

  3. 3

    CUDA中的全局内存与动态全局内存分配

  4. 4

    OpenCL同步全局内存

  5. 5

    将数据从全局内存移动到共享内存是否会使线程停止?

  6. 6

    GTX Titan Z全局内存

  7. 7

    GTX Titan Z全局内存

  8. 8

    CUDA 对全局内存的低效访问模式

  9. 9

    如何为每个活动线程块处理重用的全局内存的唯一部分?

  10. 10

    当许多线程同时读取全局内存中的某个位置时,存在多少个事务?

  11. 11

    如何从全局内存到本地内存进行跨步复制?

  12. 12

    CUDA __constant__引用全局内存。哪个缓存?

  13. 13

    C const全局内存段错误(在存在的地址上)

  14. 14

    全局内存缓存重播如何超过100%?

  15. 15

    CUDA动态并行和全局内存同步

  16. 16

    CUDA内核中全局内存负载事务的计算

  17. 17

    是否合并了不完整的全局内存访问?

  18. 18

    opencl内核中的动态全局内存分配

  19. 19

    对GPU上的全局内存位置的合并访问与广播访问

  20. 20

    如何在CUDA中正确添加全局内存?

  21. 21

    CUDA动态并行和全局内存同步

  22. 22

    CUDA中的静态分配的全局内存结构

  23. 23

    在CUDA中访问全局内存的速度很慢

  24. 24

    将表单本地内存写入全局时是否需要本地和全局内存屏障

  25. 25

    1D纹理内存访问比1D全局内存访问快吗?

  26. 26

    OpenCL:如何将全局内存的连续块复制到私有内存?

  27. 27

    如何找出GPU的共享内存和全局内存大小?

  28. 28

    1D纹理内存访问是否比1D全局内存访问快?

  29. 29

    OpenCL中工作项和全局内存之间的内存传输?

热门标签

归档