首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CUDA共享内存

CUDA共享内存
EN

Stack Overflow用户
提问于 2011-02-18 01:40:27
回答 2查看 8.9K关注 0票数 3

我需要知道一些关于CUDA共享内存的事情。假设我在G80卡中分配了50个块,每个块有10个线程。G80的每个SM处理器可以同时处理8个数据块。假设在进行了一些计算之后,共享内存已被完全占用。

当下8个新数据块到达时,共享内存中的值是什么?之前的值会保留在那里吗?或者之前的值将被复制到全局内存中,并为下一个8个数据块刷新共享内存?

EN

回答 2

Stack Overflow用户

发布于 2011-02-18 02:02:25

它说明了类型限定符:

线程寄存器中的应用程序类型变量、线程的全局内存中的应用程序类型变量、块的共享内存中的kernel

  • __device__ __shared__类型变量、网格的全局内存中的kernel

  • __device__类型变量、网格的应用程序exits

  • __device__ __constant__

  • 变量之前、应用程序退出

之前

因此,从这个参考中,你的问题的答案是,如果它们驻留在设备的共享内存中,则应该刷新下8个块的内存。

票数 6
EN

Stack Overflow用户

发布于 2011-04-17 02:38:10

对于内核块,执行顺序和SMs是随机分配的。我怀疑有没有办法做到这一点。模块之间的通信通过片外存储器完成。与片外存储器相关的延迟是性能杀手,这使得gpu编程变得棘手。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5032505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档