据我所知,GPU按照以下步骤(全局内存-L2-L1-寄存器-共享内存)将数据存储到以前NVIDIA GPU体系结构的共享内存中。
但是,maxwell gpu(GTX980)物理上分离了统一缓存和共享内存,我想知道这个体系结构也遵循相同的步骤将数据存储到共享内存中?还是支持全局内存和共享内存之间的直接通信?
发布于 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。
这两部分之后的其他部分和子部分也教和/或显式地介绍了关于共享内存大小/带宽、缓存等的其他有用的细节。
https://stackoverflow.com/questions/36735233
复制相似问题