mikesomb吧 关注:7贴子:828
  • 9回复贴,共1

GK104架构分析

只看楼主收藏回复

NVIDIA这次发布的“开普勒”架构GK104芯片,流处理器数量1536个,达到了上一代旗舰GTX580的三倍,如此激进,令人始料未及。芯片集成了35亿个晶体管,核心面积却仅仅294平方毫米,TDP功耗更降到了195W,只是GTX580的一半稍多。由此看来,“开普勒”与“费米”在架构上有巨大的不同,明显更高效、更节能。

GK104芯片内建的1536个CUDA流处理器,被分配成16组SM阵列,每组SM包含96个流处理器,接下来的GTX660、GTX650、GTX620...流处理器数量都有可能会比上代产品至少翻一倍。在核心规模上,GK104比GF110复杂很多,但借助28纳米工艺,GK104芯片核心面积只有294平方毫米,远远小于GF110 520平方毫米的规模,也小于对手HD7970的365平方毫米。

GK104芯片内部结构图
  GK104芯片的晶体管数量是35亿个,比GF110芯片30亿个的规模高不了多少,这就又产生了一个很的疑问:三倍的流处理器“建筑”规模,却只多用了1/6的晶体管“砖头”,NVIDIA是如何做到的?

GF110芯片结构图
  正如大家所想,GK104采用了一种“简化CUDA核心”的设计方案。GK104的1536个流处理器,被划分为8个SM单元,每个SM单元内部具有192个流处理器,密度非常大。“开普勒”还在架构内部加入一些固定功能的模块,以提升光栅化、纹理渲染性能,统一调配流处理器的任务分派。“开普勒”还支持全新的GPU Boost 技术,能够动态调节运行频率,针对性能与功耗作出动态调整。


IP属地:上海1楼2012-03-23 07:44回复
    除了CUDA核心数量大增之外,开普勒架构还有个很明显的改变,那就是CUDA核心的频率不再是GPU频率的两倍,现在整颗GPU所有单元的工作频率都是相同的,GTX680的默认频率达到了1GHz! NVIDIA的上代产品,比如GTX560Ti,一些AIC的超频版本默认核心频率可达900MHz,CUDA频率是1800MHz。按理说如果新一代架构改变不是很大的话,在28nm的帮助下核心频率到1GHz没有问题,那CUDA频率应该可以到2GHz才对。而现在的情况则是CUDA的频率“被减半了”。
    NVIDIA官方对CUDA与核心同频的解释是——功耗原因,为了尽可能的控制GTX680的功耗,不再让CUDA工作在两倍频率下。 对于这种解释,笔者并不理解,如果CUDA频率真能工作在2GHz下,性能提升两倍,此时功耗增长两倍又如何?如此增加功耗是值得的,并不影响GTX680显卡的“每瓦性能”。 所以,笔者猜测此次CUDA与核心同频,应该有别的原因,以下猜测纯属虚构,大家随便看看不要当真: 原因一:此次NVIDIA对SMX的结构进行了大幅度的调整,除了控制逻辑单元削减外,过于密集CUDA单元结构也发生了一些变化,导致CUDA单元或控制逻辑单元上不了更高的频率,所以现在就和AMD一样同频了; 原因二:保留实力。NVIDIA官方发言人在AMD发布HD7970之后曾表示:AMD GCN架构“南方群岛”核心的表现并没有超出NVIDIA的预期,一切尽在掌握之中。而Kepler架构则将比南方群岛要强出许多,因为本来NVIDIA为新架构设计的对手是AMD更强的新产品,但实际上南岛并未达到NVIDIA的设想性能。 原因三:确实是功耗问题,强行让CUDA工作在双倍频率下对GPU的电路设计提出了很高的要求,28nm新工艺目前可能还尚未完全吃透,上高频有一定的难度。 虽然CUDA频率达不到两倍,但NVIDIA通过加入类似Intel睿频的技术,一定程度上提高了工作频率,性能也同比增长,而且高于预期,或者说是对手不如预期。
    ● GK104核心为什么只有256bit显存? 大家应该注意到了,NVIDIA近年来的高端显卡,很少有256bit显存的设计,现在就连AMD都升级到384bit显存,256bit已经很难在跻身为高端,为什么NVIDIA新一代的GTX680居然降级到了256bit?
    答案在其核心代号上面,GK104的定位就是取代GF104/GF114,它并非是NVIDIA最高端的GPU,显存方面自然不会用最高端的配置
    更快的高速缓存: GK104的缓存设计与GF100没有区别,都是一级缓存、一级纹理缓存、二级缓存这样的层级设计,而且缓存容量的配比也没有变化,但因为模块化设计的关系,总容量有所减少。

    缓存架构让各流水线之间可以高效地通信,减少了显存读写操作 GK104的每个SMX当中配有64KB的Shared Memory/L1,GK104总共拥有8个SMX,所以一级缓存的总容量是512KB。 GK104的每个光栅单元/64bit显存控制器配有128KB的L2,GK104总共有4个64bit显存控制器,所以二级缓存的总容量也是512KB。 与GF100的1MB一级缓存、768KB的二级缓存相比,GK104的缓存容量确实小了很多,这个可以通过芯片透视图明显的看出。 虽然缓存容量变小了,但速度快了很多,NVIDIA强调GK104的L2带宽比GF110增加了73%,其中改进的算法提高了30%的缓存命中率,另外的43%则是得益于高达1GHz的核心频率。此外,原子操作的吞吐量也大增3.5倍,尤其是单一共享地址的原子操作可提升11.7倍之多! ● 更多的纹理单元: GK104的每个SMX内部拥有16个纹理单元,8个SMX总计128个纹理单元;GF110的每个SM内部拥有4个纹理单元,16个SM总计64个纹理单元;可以看出GK104这次大幅增加CUDA核心数量的同时,也没有忘记纹理单元。
    除了数量翻倍之外,纹理存取的限制也放开了,以前因为DX11 API的限制,GPU最多只能对128个纹理进行操作,而现在GK104可以使用超过100万像素的纹理贴图,而且可以并行的对多个纹理同时操作,在使用超大纹理时的CPU占用率大幅下降。但由于微软DirectX API的限制,目前GK104的这些特性还只能在OpenGL API中体现,未来版本的DirectX可能会加入支持


    IP属地:上海2楼2012-03-23 08:18
    回复


      ▲SMX


      IP属地:上海4楼2012-03-23 09:29
      回复
        熟悉N卡的朋友都知道,之前部分显卡的流出器频率是核心频率的两倍,但kepler现在变成了一个频率:虽然是192个核心,但完全是同一个频率在运行,这样更加节能。


        IP属地:上海5楼2012-03-23 09:30
        回复

          ▲8个SMX 共1536个核心


          IP属地:上海6楼2012-03-23 09:30
          回复
             每一个SMX簇包含192个CUDA核心,16个纹理单元,还有Polymorph Engine 2.0引擎。Polymorph Engine 2.0引擎有倍于上一代Fermi核心的的曲面细分(Tessellator)性能。
            8个SMX让kepler的CUDA核心数量达到1536个,为了让8X192个核心得到更充分的利用,它加入更多控制逻辑单元。
            kepler有8个SMX,也就有8个Polymorph Engine ,比fermi的16个少一半。但是GTX680的Polymorph Engine引擎经过重新设计,可以达到约两倍于Fermi的效能,曲面细分性能相对于HD7970可以提升约4倍。
            


            IP属地:上海7楼2012-03-23 09:30
            回复
              这是FEMI的

              kepler有8个SMX,也就有8个Polymorph Engine ,比fermi的16个少一半。但是GTX680的Polymorph Engine引擎经过重新设计,可以达到约两倍于Fermi的效能,曲面细分性能相对于HD7970可以提升约4倍。
              


              IP属地:上海8楼2012-03-23 09:31
              回复
                第14页:——增强曲面细分 新PolyMorph引擎
                GK104核心的SMX除了在CUDA Core方面的改进外,还有一项较为重大的改进,那就是将PolyMorph引擎升级为2.0版本。PolyMorph引擎的最重要作用是用来处理DX11中的Tessellation工作,NVIDIA设计它的目的在于有了它之后,就算在极高Tessellation扩展系数的情况下,确保GPU的渲染性能仍能保持较高水平。

                相信到了现在,大家对于Tessellation技术已经不陌生了。这项技术能够允许GPU自行生成三角形(在一定的条件下),并且部分情况下能够让三角形的密度比普通情况高出数十倍,以达到精细画面的情况。不过与此同时,光栅化单元的工作压力也就会随之而来。所以NVIDIA为了提升Tessellation的效能,避免Tessellation成为整个图形运算的瓶颈,设计了PolyMorph引擎,同时为了保证光栅单元的效能,在每个GPC中均设有一个光栅引擎(每个GPC中的PolyMorph引擎共用)。


                IP属地:上海9楼2012-03-23 09:45
                回复


                  GTX680的GK104核心中共包含8个2.0版PolyMorph引擎(分布于8个SMX中),在数量上相比GTX580的16个要少。不过,NVIDIA对Kepler架构中的PolyMorph引擎进行了重新设计,使每时钟性能相比Fermi版本提升近一倍。GTX680的传输时钟速度提高了30%以上,能够确保在Tessellation工作中相比之前得到整体性能改善。


                  IP属地:上海10楼2012-03-23 09:45
                  回复
                    楼主 能问一下 你是如何获得这么详细的信息的


                    IP属地:北京11楼2016-03-04 11:30
                    回复