【发布时间】:2016-07-14 10:52:34
【问题描述】:
我没有一次偶然发现
tech papers 与图形编程相关。我一直在寻找一个简单明了的解释,但发现大多是this 类型的“硬核”论文。我很高兴收到关于什么是相干内存的外行风格的回答关于 GPU 架构以及它与其他(可能是不连贯的)内存类型的比较。
【问题讨论】:
-
“连贯”意味着如果一个数据对象被多个代理(或多条路径)访问,每个代理将看到完全相同的状态。这两个代理可能是一个 CPU 和一个 GPU。两个读取路径的示例可能是通过纹理缓存与 L1 缓存。保持一致性通常需要额外的硬件机制,例如用于跟踪缓存行的 MESI 或 MOESI 状态的位,并且可能导致大量的一致性流量用于传送数据,尤其是在有很多代理的情况下。
-
GPU 中的纹理缓存是“不连贯”机制的典型示例。如果纹理映射底层的数据发生变化,则纹理缓存中的任何缓存内容都可能不会失效或刷新,随后对纹理缓存的访问会导致读取过时的数据。