全新绘图时代DirectX 11 GPU架构深度解析

2009-10-9 作者: 後藤弘茂 来源: Impress Watch

关键字: DirectX 11 GPU API 架构解析 

  一、芯片尺寸增加

  ●基于DirectX 10改革的DirectX 11

  对DirectX 11的支持在某种程度上对地GPU来说应该是一个重担·但是在设计上,担子也许并不那么重。至少在与向DirectX 10发展时,在芯片设计以及成本上要小。说到原因是由于GPU厂商在上次向DirectX 10的发展中,已经结束了GPU架构的变革。因此DirectX 11可以说是在DirectX 10的基础上进行简单的扩展。

  同时DirectX 11与DirectX 10一样也是向通用性的处理器的方向发展。DirectX 10的图形管线变得更有灵活性,同时GPU预备的处理器也增强了通用性。其结果就是几乎再也没有专门的图形处理硬件,而对更具通用性处理器的支持也就更容易了。虽然DirectX 11加入的专用硬件,但是其发展的基本方向没变。这种情况与Intel的“Larrabee(LARAB)”进入高容许量CPU图形处理一样。同时也指出了GPU之后向可编程化发展的可能性。 同时3D图形API吸引GPU架构变化的趋势也正在发生变化。DirectX和GPU架构的变化是持续进行,不过不再具有支配性。而不是由DirectX所定义的部分扩展,也开始变成了GPU架构的变化。

  实际上NVIDIA GPU在G80架构上的扩展,图形API只占了一小部分。同时所说的GPU DirectX Compute Shader的使用与图形API没有关系的部分进行功能扩展的关系现在也开始出现。如同Larrabee一样,在高容许量CPU里加入图形管线的方法也开始得到应用。

  ●因DirectX发展带来的芯片尺寸增加

  到目前为止,DirectX 每一次的发展与架构的变化都会让芯片变大。


GPU的核心尺寸图

  芯片变大有两个主要原因。1个是因为性能的增加。要提高运算性能就会需要更多的资源,这会增加晶体管的数量。另1个就是为了发展可编程化。需要让单一的可编程处理器包括个别进行处理的固定功能硬件,这必然也会增加晶体管数量。可是这样会让性能出现大幅度下滑,因此为了保持同样的性能也需要大幅度增加运算资源。结果就是对于GPU的情况需要从固定硬用向可编程硬件转换,晶体管数和核心尺寸也因此而增加。 在过去的数次DirectX较大的更新,比如DirectX 7→DirectX 8→DirectX 9→DirectX 10,也是因为这样的理由使得芯片变大。在向DirectX 8的转移使得可编程的硬件进入管线成为了双重构造。对于DirectX 9的顶点处理与像素处理,则被真正的可编程处理器调换。而在向DirectX 10的转移为了实现更灵活的可编程性,需要GPU建筑进行根本的改革。 因此哪个世代的改变以及生产什么样的GPU都关乎根本性的改革。特别是DirectX 10时代架构的改革,从根本上改变了GPU的本质。从DirectX 8向DirectX 9通过API的改革牵动了GPU架构的改革,迎来了顶点的转折点是DirectX 10。而向DirectX 11的转移也会伴随这样的情况,不过GPU的微架构的变革与地去相比要小了许多。

  二、API管线与GPU发展

  ●API管线与GPU发展的背离

  DirectX 10时代GPU架构的改革成为了转换点,与逻辑上的图形API的管道与GPU的物理管道实现了分离。直到DirectX 9为止的GPU,都是使用硬件实现图形API定义的图形管线的方向。也就是所说的顶点处理→栅格化→像素处理&texture拳击场→frame bufferprocessing,这些一连串的图形管线,这个与实现了可编程化的DirectX 9时代没有变化。顶点着色器(Vertex Shader)处理器和像素着色器(Pixel Shader)处理器都是各自实现。


DirectX 8 API和GPU


DirectX 9 API和GPU

  但是DirectX 10在API定义方面则基本相同。同时管线途中对存储器的输出也加入了“Stream Out”。为此为了实现共通化选择的处理器“Unified-Shader”也就变得很合理。

  结果就是标准的DirectX 10 GPU,是通过一种Shader单元实现所有的Shader操作。在这里Texture过滤单元和光栅引擎等固定硬件变成了附属的架构。这个是GPU架构在根本上的转换,这个也成为了对GPU来说最大规模的架构改革。这个不仅仅是对Shader进行扩张,可以通过一种Shader按比例提升其他各种Shader操作。

  当时带领ATI Technologies向PCGPU发展的Rick Bergman先生(Senior Vice President, AMD)介绍DirectX 10时曾经表示“为了支持DirectX 10,有必要增加(DirectX 9代GPU)30~40%左右的逻辑(电路)”。并且如果同时想要提升性能的话,晶体管的数量也需要倍增。


DirectX 10 API和GPU




责任编辑:熊东旭