首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CUDA将数据从全局内存中缓存到统一缓存中,以便将它们存储到共享内存中?

CUDA将数据从全局内存中缓存到统一缓存中,以便将它们存储到共享内存中?
EN

Stack Overflow用户
提问于 2016-04-20 06:13:15
回答 1查看 1.6K关注 0票数 3

据我所知,GPU按照以下步骤(全局内存-L2-L1-寄存器-共享内存)将数据存储到以前NVIDIA GPU体系结构的共享内存中。

但是,maxwell gpu(GTX980)物理上分离了统一缓存和共享内存,我想知道这个体系结构也遵循相同的步骤将数据存储到共享内存中?还是支持全局内存和共享内存之间的直接通信?

  • 使用选项"-dlcm=ca“启用了统一缓存。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-20 13:11:12

这可能回答了大多数关于Maxwell体系结构中的内存类型和步骤的问题:

与开普勒一样,Maxwell中的全局负载仅在L2中缓存,除非使用开普勒引入的LDG只读数据缓存机制。 以类似开普勒GK110B的方式,GM204默认保留这种行为,但也允许应用程序选择在其统一的L1/纹理缓存中缓存全局负载。opt机制与GK110B相同:在编译时将-Xptxas -dlcm=ca标志传递给nvcc。 局部负载也仅缓存在L2中,如果L1本地负载命中率较高,则会增加寄存器溢出的成本。因此,应重新评估占用率与溢出量之间的平衡,以确保最佳业绩。特别是考虑到算术延迟的改进,为Maxwell构建的代码可能会受益于占用率较低(因为每个线程的寄存器增加),以换取更低的溢出。 统一的L1/纹理缓存充当存储器访问的合并缓冲器,在将该数据交付给经纱之前收集由经纱的线程请求的数据。这一功能以前是由费米和开普勒的独立L1缓存提供的。

从"1.4.2.内存吞吐量“,子部分"1.4.2.1.统一L1/纹理缓存”从麦克斯韦调谐导轨从Nvidia。

这两部分之后的其他部分和子部分也教和/或显式地介绍了关于共享内存大小/带宽、缓存等的其他有用的细节。

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

https://stackoverflow.com/questions/36735233

复制
相关文章

相似问题

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