当我启动新的内核/应用程序时,是否会清除内存?

时间:2016-01-13 20:39:15

标签: cuda gpgpu

一般性问题。 我想知道当我启动新的内核/应用程序时是否清除了全局/共享/高速缓存存储器和寄存器(内容设置为0)? 谢谢

1 个答案:

答案 0 :(得分:3)

不,你必须自己初始化内存。 __shared__内存和全局内存都不会自动初始化。(1)

缓存将是"一致"与记忆中的任何东西(2)。你不必担心这些。

通常无法从CUDA C / C ++源代码访问寄存器,但如果您使用的是内联PTX或其他方法,则除非您明确地将寄存器放在那里,否则不保证寄存器具有任何特定值。

(1)像thrust::device_vector 这样的构造将暗示某种形式的初始化。所以我指的是普通的CUDA C / C ++"这里。

(2)"一致"对于给定的高速缓存行,意味着:

  • 标示高速缓存行"无效" (或)
  • 高速缓存行标记为"有效"它准确地表示了缓存内存的内容。
相关问题