追溯到2003,ATI和微软宣布了一份开发协议——由ATI来为XBOX的下一代主机开发业界尖端的图形单元。这打破了先前微软和nVidia的合作关系,意味着XBOX下一代主机的图形部分将更换一位新的合伙人。
到了2005年,微软透露360将使用由ATI设计的专用图形单元,它工作在500MHz的时脉上,拥有48条统一着色器和10M嵌入式内存。这些数字让你毫无感觉?别担心,下面有详细介绍。
我们有幸对ATI的技术部副总裁Bob Feldstein先生进行了一次访谈,通过这次访谈我们可以更深入的了解360GPU的能力。
 
对于开发360的GPU,ATI面临着怎样的挑战,获得了怎样的收获?
Bob Feldstein: 一个挑战就是如何能让它(GPU)在无法升级和扩展的情况下(相对于PC显卡)保持5年的活力。微软向我们提出十分苛刻的设计目标,这迫使我们不能再用对PC显卡市场那套来对付游戏机,是的,我们必须更换思路。我们必须首先考虑到它是专为游戏机设计的,这样便有了如智能内存、统一单元设计、建模影擎这样的设计目标。然后我们的架构小组便以创纪录的速度来实现这些目标。
 
GPU的细节是事先由微软完全制订好的,还是他们只是提出了目标、而细节方面由你们来负责?
Bob Feldstein: 微软对GPU提出了一个宽泛的要求。他们特别关心内存带宽和系统整体效能。微软希望图形单元的设计能很好的发挥CPU多核心多线程的优势,而且其设计必须要有能让游戏开发者容易熟悉和易于掌握的架构。微软和ATI一起进行GPU的架构设计,微软制订目标,ATI则来实现它们。例如统一着色器和智能内存,就是这样产生的。
 
接下来我要问的是,我们从未知晓这个GPU的明确名字,有的叫Xenos,有的叫C1,有时它还被称作R500。传闻ATI避免使用这个代号(R500),是因为那会让360的GPU看上去不如ATI的PC显示芯片——R520。那么,360GPU的名字到底是什么?
Bob Feldstein:360的GPU和PC显示单元没什么关系。我们从未把它叫做R500。C1和Xenos是我们使用过的名字,C1是合同签署前的代号,Xenos则是我们赢得合同后对开发项目的命名——但是C1更加深入人心。当我们一开始将它叫做C1后,这便很难改变了。
 
有多少工程师投入其设计?
Bob Feldstein:最多时我们对其投入了175位工程师。包括架构设计师、逻辑设计师、电气工程师、验证工程师、测试工程师等。开发小组分散到奥兰多、佛罗里达、马尔伯勒、马萨诸塞等地。开发小组的规模随时改变。
 
在芯片的起步生产阶段,你们是否帮助过微软?
Bob Feldstein:ATI的确这样做了。这对于微软是很重要的。在这方面微软有个不错的小组来负责,但我们拥有更多的经验,所以很自然的,ATI帮助微软更快的将产品推向市场。
Xenos由两部分组成,主体部分是统一着色器和北桥,子芯片则负责传统意义上单芯片GPU的一些如FSAA(全屏抗锯齿)、alpha(透明处理)、Z Logic(Z轴)部分。
 
为什么要这样设计呢?是因为考虑到制造的原因还是架构的需要?
Bob Feldstein:这个和架构没关系。之所以这样做,更多的是考虑到成本的原因。子芯片包含了FSAA、alpha、stencil(模版处理)、Z(轴处理)和一块较大的内存。我们在这片内存中植入了逻辑器件,所以我们将它叫做智能内存。由于这种高速内存的制造废品率较高,分离式的设计有利于我们降低成本(分离的设计如果出现废品,只要报废子芯片即可,而单芯片设计会让整个芯片报废)。我想,在将来,随着制造工艺的进步和成熟,我们可以将两个芯片再整合在一起来节省成本。
border=0>



 
人们对数字很感兴趣。Xenos包含多少晶体管?您能否对主芯片和子芯片分别介绍?能否把一些如2-terabit(万亿位)、32GB/sec和22.4GB/sec的带宽作一说明?
Bob Feldstein: 主芯片包含2亿3千5百万晶体管,子芯片有9千万晶体管。智能内存的带宽可以由以下式子算出:
8(2次4格采样)/周期*4(样本)*8(4字节色彩+4字节Z轴)*2(读和写)*500mhz=256 gbytes/sec(也就是2-terabit)。
22.4GB/sec指的是连接主内存的带宽(特别要指出的是,360的512MB主内存是统一的,它可以让开发者更容易对其进行访问)。GPU和CPU的L2 cache也有连接——这个带宽是24GB/sec(强的!),因为它很重要,所以我们花了不少工夫在这个上面。幸运的是,从一开始就是整个系统一起设计,使我们能得心应手的为其设计惊人的带宽(想想PS3那个半路加上的nVidia图形单元,汗一个~)。
 
连接系统内存使用128位总线,这是否会成为GPU的瓶颈?为什么在PC显存都使用256位总线的情况下,Xenos还要使用128位?
Bob Feldstein:这个问题问得很好,它正好切中了系统设计的核心。在子芯片上,我们有一块较大容量的内部高速内存。事实上这块高速内存也充当写回式缓存的作用。而且,所有的抗锯齿处理、Z-缓冲和阿尔法混合都在这块内存中进行。这意味着,那些耗带宽的大户(Z,Alpha,FSAA)都是在内部高速内存中进行处理,不需要去访问主内存。这个设计,使得128位的系统内存接口,便足够满足我们的需要,因为内部高速内存为其卸去了很多负担
 
让我们来谈谈统一着色器架构。首先我很关心它的效能如何。我相信统一着色架构会为开发者带来很多方便,但这种统一着色管线的设计,是否和现在PC显卡上使用的像素着色与顶点着色分离的设计一样好呢?
Bob Feldstein:统一着色架构能够显著提高整体效能。为什么我这样说呢?让我们先来了解一下什么是统一架构。
现有的分离式着色架构,不同的着色器使用不同的指令集和不同的缓存。我们发现,在实际应用中,无论是像素着色器还是顶点着色器,当一个占据支配权的时候,另一个往往处于闲置状态。为了应付这种情况,传统的方法是设计很多并行管线——虽然在处理像素向顶点转换的过程中它们很多处于闲置状态。
统一着色架构合并了指令集,配备了合适的缓存,任何情况下,它们都可以被无差别的使用。因此,当像素着色占据支配的时候,我们可以让所有48条管线全部处理像素着色。当顶点着色占据支配的时候,我们可以让所有48条管线全部处理顶点着色。当两者都有处理任务时,我们可以根据处理量为它们分配相应数量的着色管线。
 
统一着色架构是否在硬件和软件级别上都是统一的,还是程序员针对像素着色与顶点着色使用不同的语法编写程序,然后由GPU来对其进行处理,使其应用于统一着色管线?
Bob Feldstein:对于任何着色数据,程序员都可以使用这套指令扩展集。这将把程序员从局限于考虑如何去操作顶点和像素,以及其他任何需要程序员决策的着色数据中解放出来。
 
当360GPU的细节公之于众之时,nVidia对统一着色架构,特别是对其效能持怀疑态度。您看这是否是因为包括RSX在内的nVidia所有产品,都还未引入统一着色架构的原因(吃不到葡萄说葡萄酸)?
Bob Feldstein:是的。绝对是这样。
在Windows Vista中,无论实际硬件的规格,WGF 2.0会使用统一着色来对待所有GPU。这实际上也就是对将来GPU都使用统一着色架构进行了建议(规定)。
 
ATI通过Xenos GPU的设计,已经掌握了统一着色架构,这是否意味着在将来的一段时间内,ATI在竞争中将占据优势地位?
Bob Feldstein: 我不清楚nVidia将来的计划,但在统一着色的研发上,ATI已经先行了一步。这看上去显然是个优势 border=0>



 
Xenos和PC显卡是否具有可比性?还是由于它们使用不同的着色架构、操作系统、其他系统硬件,让其很难比较?
Bob Feldstein: 比较Xenos和PC显卡的确是很困难。针对不同硬件环境优化的应用程序,会产生不同的结果。我不建议大家去对它们进行比较。游戏机有它的优势,这就是其固定的硬件环境。这使得我们可以充分的利用其硬件机能,比如利用智能内存克服内存带宽瓶颈,以及充分高效地利用所有的48条管线。就算一个硬件上拥有无穷多的着色器,如果没有内存带宽去满足它,那它什么也干不了。
 
RSX拥有550MHZ的时脉。10%的时脉优势,是否意味着PS3的GPU比Xenos更强大?当然了,我们还是要眼见为实。如果这是真的话,拥有双1080P显示能力的RSX岂不是听上去比Xenos强啊...
Bob Feldstein:不是这样的!这个数字跟系统效能毫无关系。1080P对于理解系统效能毫无用处(SONY真会忽悠)。时脉会对效能产生影响,但很有限。
需要认清的是,内存带宽才是显示系统的瓶颈所在。ATI的智能内存提供了几乎无穷的带宽——这意味着统一着色单元不必为等待数据去闲置着。SONY的处理器将经常面对内存带宽不足的情况,这样时脉的优势将不复存在。
SONY那个双1080P输出和效能根本挂不上钩,但这对市场来说确是个很好的卖点。双头显示的功能,更加表明了RSX是基于PC显卡的设计,只是将PC显卡和游戏机拙劣的拼凑到一起罢了。
 
当提到Xenos GPU时,经常会提到它拥有超过Shader Model 3.0的特性,按照DirectX来说,应该用个+号。您能给个数字来反映这个Shader Model 3.0+的能力吗?
Bob Feldstein: 在众多另人影响深刻的特征里,其中一个就是,它可以执行1000条指令/程序,提供很高的精度并着色输出。而且,统一着色架构,使得像素着色与顶点着色都可以使用全部的指令集。
 
微软已经宣布HD-DVD将作为360的外置光驱,我们很想知道,如果Xenos GPU拥有像Radeon X1800的Avivo所包含的那些功能,如H.264、VC-1的硬件加速,微软是用其进行HD解码(硬解压),还是用3核心的PowerPC处理器来解码(软解压)?
Bob Feldstein:看微软的了
当AGEAI公布了其物理处理器后,大家都在期待下一代主机能否集成物理处理器,但实际上让大家失望了。有传言Xenos GPU,特别是其子芯片,可能会含有物理加速功能。是这样吗?如果确实如此的话,这种硬件物理加速功能能显著提高Xenos的图形性能啊?
Bob Feldstein:我们的GPU的确具有物理加速能力。而且XBOX360的CPU(3个高速核心,每个核心都具有多线程处理能力)也具有强大的处理能力,所以我们有很多的方式可以用来实现强大的AI。我们致力于寻求所有方法。
 
除了设计硬件,ATI通常也为游戏开发者提供开发工具、源代码和例程等。我们听说ATI奥兰多研究室的Vineet Goel研究出贴图置换表面算法。你们是否也会为游戏开发者提供帮助,还是这个仅仅由微软来做?
Bob Feldstein:我们与微软一起共同为游戏开发者提供帮助。我们在微软有技术协力和工具开发的外派人员。我们随时为开发者提供帮助,但有一件事给我们留下了深刻的印象,那就是微软对于与开发者的关系处理得非常好。
我们会把如Vineet(也包含其他人的工作)的算法这样的好东东介绍给微软。XBOX360有很大的发展空间,我们可以在GPU上实现如可变光照和贴图置换表面之类的算法。因为拥有如着色输出这样独特的设计,我们实现了其他显示单元几乎无法即时完成的算法。
 
最后想问的是,您对今后几年的即时图象技术如何展望?是由GPU还是由一个独立的处理器(如AGEIA的PPU)来负责物理加速?GPU是否也会像CPU那样多内核化,或者是通过Crossfire/SLI这样的技术来实现性能的增强?
Bob Feldstein:在制造成本可接受的情况下,我们有多种选择来实现性能强化,多内核就是一种选择。
我无法确定物理加速器以及它们在游戏平台上的表现。GPU相对单一的物理加速器有更大的优势。物理加速器看上去似乎和GPU处于同一市场(游戏机),但它们却不是专为这个目的设计的。而且,现在就把这些CPU的任务分离出来,似乎有些为时过早。