11

就引用的局部性而言,L2 缓存如何在具有 Kepler 架构的 GPU 中工作?例如,如果一个线程访问全局内存中的一个地址,假设该地址的值不在二级缓存中,那么该值是如何被缓存的?是暂时的吗?或者该地址的其他附近值是否也被带到 L2 缓存(空间)?

下图来自 NVIDIA 白皮书。

图片来自 NVIDIA 白皮书

4

1 回答 1

10

统一 L2 缓存引入了计算能力 2.0 及更高版本,并继续在 Kepler 架构上得到支持。使用的缓存策略是 LRU(最近最少使用),其主要目的是避免全局内存带宽瓶颈。GPU 应用程序可以展示两种类型的局部性(时间和空间)。

每当尝试读取它在缓存 L1 和 L2 中查找的特定内存时,如果未找到,它将从缓存行加载 128 个字节。这是默认模式。从下图中可以理解为什么 128 位访问模式会产生好的结果。

在此处输入图像描述

于 2013-10-28T09:29:46.273 回答