运算单元的三个重大改进
从规格上来说,GT200的运算单元有三个重大改进,第一、每个SM的寄存器文件大小提高了一倍,为64KB。NVIDIA认为在游戏中越来越复杂的shader会占用更多的寄存器空间,加大的寄存器空间会令更大更复杂的shader在GT200上运行的更快,根据NVIDIA的测试结果,寄存器大小在翻倍前后的性能差距超过了10%(3DMark Vantage Extreme测试得分)。
![]() |
| GT200运算形态单个SM的架构 |
第二,支持双精度和64位的浮点运算能力,进一步提升其在科学计算等领域的适用性。GT200的每个SM组成一个支持双精度64bit浮点运算的单位,这样每个GT200就拥有30个支持双精度64bit浮点运算的核心。NVIDIA宣称GT200所能提供的双精度性能约90gigaflops,大概和一个八核至强系统相同。
![]() |
| GT200可同时运行的线程数大大高于G80 |
第三,每个SM可同时管理并执行的线程数提升至1024个,这是得益于每个SM中的warps(线程组)由G80的24个提升至GT200目前的32个,这样加上SM数量的增加,GT200可同时并行的线程数就是30720个。协作线程阵列(Cooperative Thread Array),或者CTA,是一种同时或并行执行内核的线程阵列。一个CTA内的线程可以相互通信,CTA内以SIMD方式按组执行的线程就称为warps。
说到warps就不得不说下NVIDIA近期提出的SIMT(单指令多线程)概念,按照NVIDIA的说法,SIMT是在我们熟知的SIMD基础上,在性能和便于可编程性上加以改进而来,目的是保证并行处理器核心始终被充分利用,其实简单理解我们可以把SIMT看成是SIMD的一种。MIMD(多指令多线程)和SIMT就是NVIDIA第二代统一渲染架构所使用的两种不同的处理模型,程序执行在通过TPC时架构是MIMD,通过SM时则是SIMT。