GPU没有像CPU那样的二级缓存?

来源:网络

点击:1531

A+ A-

所属频道:新闻中心

关键词: 芯片,GPU,CPU,缓存

      近日,有网友问RT,cpu有核心,一级,二级,甚至三级缓存。而GPU没有像CPU那样的二级缓存?关于这个问题,小编收集了一些有关专业的网友的回答,带大家看看GPU究竟有没有二级缓存?

        网友1

      首先明确一下是否有二级缓存这个问题,我的确记不住什么时候GPU开始带二级缓存,至少英伟达的GPU芯片发展到Kepler这个级别的时候,都已经带2级缓存。

      我猜楼主是对GPU为什么以前没有二级缓存有疑惑吧,只是简单地提一下。

      首先明确的是,CPU对访存时延的要求很高,所以用了大缓存+乱序执行的方式容忍访存的高延时。但是缓存在什么情况下才能用得上呢?当然是时间局部性/空间局部性比较强的时候缓存才能发挥效果,减少对内存的直接访问。

      然而,常规的GPU应用大多是流处理,时间局部性比较低,这是其一。第二是GPU是通过多个warps(32个threads一组)并发的方式来容忍访存时延的(也就是有多个warps,如果warpA需要访存,那么就看warpB,C,D,E....是否已经得到数据,可以切换到其他的warp进行执行)。所以在一定程度上,GPU不需要特别大的cache。另外,在部分应用中,程序员可以将频繁访问的数据放在sharedmemory上,从而降低对显存的访问。

      但是GPU从原本规则的图形计算发展到现在的通用计算,一些非常规应用表现出的空间局部性或者时间局部性的特点,这可能是加L2缓存的原因。

      另外要说明的是,显卡不是只有流处理器和纹理单元,GPU的存储体系有点倒三角的味道,片上有大量的寄存器,还有可划分的L1缓存和sharedmemory。

      网友2

      现在GPU一般是有二级缓存的。

      下图为NVIDIA的keplerGK110显卡框架图:

    GPU没有像CPU那样的二级缓存?

      而NVIDIAKepler显卡架构的内存层次结构如下图(其二级缓存大小为1536k):

    GPU没有像CPU那样的二级缓存?

      网友3

      这是AMD的GCN

    GPU没有像CPU那样的二级缓存?

      NVIDIA从很久以前就有了

    GPU没有像CPU那样的二级缓存?

     

    (审核编辑: 小丸子1)

    声明:除特别说明之外,新闻内容及图片均来自网络及各大主流媒体。版权归原作者所有。如认为内容侵权,请联系我们删除。