本地内存:cuda演示

本地内存:cuda演示,cuda,gpgpu,gpu-local-memory,Cuda,Gpgpu,Gpu Local Memory,我正在阅读此演示文档: 在陈述的第3页,作者陈述: 存储总是发生在加载之前 –只有GPU线程可以访问LMEM地址 谁能给我解释一下原因吗?他指的是本地内存首次初始化的时间吗?在这方面,本地内存类似于共享内存 为了使用共享内存做任何有用的事情,您必须首先初始化(存储某些内容)。本地内存也是如此 只有CUDA线程代码可以访问本地内存。没有像cudaMemcpy这样的CUDA API调用可以访问本地内存。无法从主机代码初始化本地内存 对于共享内存,同样的评论基本上是正确的。他指的是本地内存首次初始化

我正在阅读此演示文档:

在陈述的第3页,作者陈述:

存储总是发生在加载之前 –只有GPU线程可以访问LMEM地址


谁能给我解释一下原因吗?他指的是本地内存首次初始化的时间吗?

在这方面,本地内存类似于共享内存

  • 为了使用共享内存做任何有用的事情,您必须首先初始化(存储某些内容)。本地内存也是如此

  • 只有CUDA线程代码可以访问本地内存。没有像
    cudaMemcpy
    这样的CUDA API调用可以访问本地内存。无法从主机代码初始化本地内存

  • 对于共享内存,同样的评论基本上是正确的。

    他指的是本地内存首次初始化的时间吗?—是的


    无法将“cudaMemcpy()”复制到本地内存,因为它位于全局地址空间之外。如果您尝试显式初始化局部变量,编译器将生成存储到本地内存,因为每个块都需要重复初始化。因此,如果不先在本地内存中写入定义的值,就无法在本地内存中定义它。

    我认为这是指它是一个不同于全局内存的内存空间,因此在使用它之前,您需要使用存储对其进行初始化。请不要在问题得到回答后再更改(并大大扩展)您的问题。如果你有一个新的,关于主题的问题,那么用一个新的问题来提问。谢谢大家的确认@tera,你的答案实际上就是我所说的“初始化”的意思。我已经在我最初的问题中添加了几个问题,如果你能帮忙的话,谢谢you@ThierryBrown:这不是工作原理。你问了一个问题。你得到了两个很好的答案。你应该接受其中一个答案。如果你有一个新问题,那么发布一个新问题。这不是你的个人帮助线程,它是一个独立的问题,存在帮助每个人。