gpt4 book ai didi

caching - NVIDIA Maxwell GPU 中的 L1 缓存有何用途?

转载 作者:行者123 更新时间:2023-12-02 18:44:53 30 4
gpt4 key购买 nike

NVIDIA 推出 Maxwell GPU 一段时间了,但在阅读《Maxwell 调优指南》时,我对 L1 缓存的功能感到困惑。在开普勒时代,全局内存访问仅缓存在L2中,L1用于缓存本地内存访问,这是由寄存器溢出引起的。通过阅读 NVIDIA 的文档,我知道本地内存缓存是唯一能从 L1 缓存中受益的东西。然而,在《Maxwell调优指南》的1.4.2.1节中,NVIDIA表示:

As with Kepler, global loads in first-generation Maxwell are cached in L2 only ... Local loads also are cached in L2 only

CUDA 6.0添加了两个新的设备属性globalL1CacheSupportedlocalL1CacheSupported来检查设备是否支持全局内存L1缓存和本地内存L1缓存,所以我对这些做了测试GTX 780 和 GTX 980 卡上都有两个属性,结果让我更加困惑:

        globalL1CacheSupported    localL1CacheSupported

GTX780 1 1

GTX980 0 0

GTX 980的结果验证了《Maxwell调优指南》中的说法,这让我很困惑,因为如果是这样的话,那么L1缓存是用来做什么的?另一件我无法理解的事情是GTX 780是GK110卡,从GK110白皮书来看,Keper也仅在L2中缓存其全局内存访问,因此对于我来说globalL1CacheSupported对于GTX 780卡返回1没有意义。希望有人能解答我的困惑。

最佳答案

On Maxwell ,L1 功能已与纹理缓存相结合。 tuning guide 中提到了这一点也是如此。

Fermi 器件引入了 L1,用于全局和本地负载缓存。 L1是直写式缓存,因此对全局和本地存储的影响相对较小。

使用 Kepler,L1 对于全局负载被禁用,但对于本地负载仍然有效。

then what is L1 cache used for ?

对于 Maxwell,L1 对于全局负载的默认行为是相同的 - 它们不会被缓存。 但是,您可以“选择”将全局加载缓存在 L1 中,如 Maxwell tuning guide 中所述。您提到过:

"In a manner similar to Kepler GK110B, GM204 retains this behavior by default but also allows applications to opt-in to caching of global loads in its unified L1/Texture cache. The opt-in mechanism is the same as with GK110B: pass the -Xptxas -dlcm=ca flag to nvcc at compile time."

GK110B 是 K40 设备中出现的 GK110 的变体。在 K20/K20x 上,L1 行为不可修改(对于全局负载关闭)。在 K40 上,L1 的默认行为与 K20/K20x 相同。但可以覆盖默认行为以打开 L1 进行全局加载。

关于caching - NVIDIA Maxwell GPU 中的 L1 缓存有何用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28895133/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com