九头蛇的撕咬:Hydra Engine多显卡互联解析
技术空间
显卡的升级换代日益频繁,我们常常会为了一个接口或是一款游戏而更换显卡,然而在使用新显卡的同时,也常常会为旧显卡而叹息。该怎么处理它呢?除了将它闲置一边或当二手货卖掉之外,能不能将它和新显卡一起使用呢?这一点恐怕是所有用户都曾想过的问题。现在有一项新技术可以让旧显卡发挥余热,与新显卡工作在一起了。
来自以色列的半导体公司Lucid宣布了名为Hydra Engine的第三方多显卡互联方案。它可以在任意芯片组主板上实现任意厂商显卡的互联工作,并根据负载分配各个显卡的渲染任务。目前基于它的产品已经由日本艾尔莎公司推出,由此可见,这种方案是具有可行性的。“Hydra”是希腊神话中的九头蛇,那么我们就来看看它的“撕咬”力量。
一、突破SLI、交火互联的局限
显卡GPU的图形性能的竞争从来都没有停歇过,除了GPU本身规格升级之外,NVIDIA与AMD花了不少工夫在多显卡互联领域,通过多块相同显卡组合SLI、CrossFire交火来实现图形性能的提升。
不过目前SLI、CrossFire并不能让人完全满意,由于它们都只能支持相同核心以及相同型号的显卡,不能将如8600GT和9600GT这样的不同时期显卡组成SLI,因此具有很大的局限性。而且它们采用的是SFR分割帧渲染和AFR交替帧渲染模式,这两种模式都存在着缺陷。例如,在SFR模式下,每个GPU都需要重复保存所有的几何信息,单一GPU的显存带宽和着色单元的局限性仍然存在;而在AFR模式下,每帧画面都需要在多个GPU之间切换,因此存在着一定延迟。而Hydra Engine互联方案则可以避免SLI、CrossFire那样的问题。

二、Hydra Engine的工作原理
1.嵌入式芯片

与SLI、CrossFire不同,Hydra Engine是一种不需要依靠GPU的分布式图形计算技术,它主要包括一个Hydra 100芯片和驱动软件。其中Hydra 100是SoC(硅片上系统)芯片,内部结构包括一个RISC(精简指令集计算)处理器以及处理电路,它本身不负责任何GPU运算工作,只是将图形渲染工作实时分配给各个GPU。由于功耗仅为5W,所以不用担心有过高的能耗。而软件驱动是在DirectX架构和GPU厂商驱动之间进行交互通信。
2.图形任务调度员
简单地说,Hydra Engine就像是一个调度员在分配工作,它会在NVIDIA或AMD显卡驱动程序运行之前,读取来自于3D游戏以及其他应用程序传输到DirectX或OpenGL的信息,并将信息划分为多个任务。这些任务可能是独立的光影效果、后期渲染或建模等。在以前,如何将一次复杂的画面处理划分为多个任务是一项十分困难的工作,而Lucid公司通过专利算法在Hydra Engine上很好地解决了这一难题。
当在系统中使用不同类型的显卡时,Hydra驱动首先会识别各个显卡的类型,并估计其GPU的运算能力,在分配任务时将合适的运算量分配给它。比如让GeForce 9600GT计算7项任务,而GeForce 8600GT只计算3项。任务被划分后,就会通过PCI-E总线传输到Hydra 100芯片,随后又被Hydra 100分配到多个GPU中。每个GPU在完成自己的图形处理任务后,会把一部分结果送回Hydra 100芯片,该芯片再将这些信息交给其中一个GPU来完成最后的混合输出。也就是说,Hydra Engine不像SFR和AFR模式那样,而是将整个画面处理灵活地分配完成。
3.灵活调整工作比例
在运算过程中,Hydra 100芯片能动态地实时读取GPU的使用时间、显存利用量、剩余图形纹理结构、像素阴影带宽以及其他工作状态的数据,还能动态地计算出系统内每个GPU的性能。如果某块显卡性能较弱,在渲染中拖了后腿,Hydra 100芯片会调整分配比例,少分配一些图形处理任务给性能较弱的显卡,相应地分配更多的任务给性能强劲的显卡。这些动态分配工作都在后台实时完成,几乎不会消耗任何CPU资源,相比单卡处理也不会有明显的延迟。


三、性能成倍地增长
新的互联方案将会使得多块显卡通力合作,共同提升系统的图形性能。从硬件接口来看,Hydra Engine初始状况下最高支持PCI-E 2.0 ×32连接,也可以将该连接分成两条PCI-E ×16连接或者再分割成四条PCI-E ×8连接,最高支持4块不同的显卡互联工作。因此如果使用4块双核心的GTX295互联就可以形成8个GPU互联的工作状态,性能相当于提高了几倍,自然是相当强劲的。
在实际应用中,我们发现SLI、CrossFire的性能提升幅度逐渐降低,经测试显示,双卡GeForce 7600GT组建SLI时,性能提升幅度约为70%;当GeForce 8600GT双卡组建SLI时,增幅降至55%,而最新的GeForce GTX 285的SLI性能提升只有45%。这是由于随着GPU的Shader流处理单元数量增加,任务分配的难度越来越大,GPU中Shader的利用率也就越来越低。Hydra Engine的出现正好解决了这个问题,它最多支持4块显卡协同工作。在分配任务时,它会平衡每个GPU的任务,将合适的运算量分配给它们。据Lucid公司表示,Hydra Engine方案可以实现多显卡性能成倍地增长,比SLI、CrossFire的效率高得多。
四、任意显卡都能玩互联
除了性能表现不俗之外,Hydra Engine最受人关注的是它能实现任意显卡互联,也就是说无论核心和规格,N卡、A卡甚至是VIA S3等任何不同时代的显卡都能够工作在一个平台上。如果用户在以后买了一块性能更强劲的显卡,那么也不用扔掉老显卡,可以用Hydra Engine互联起来,物尽其用,这必然会受到有“恋旧情结”的用户的欢迎。
不过由于操作系统不允许不同GPU厂家的驱动程序同时运行,因此N卡和A卡目前暂时还不能互联。如果Hydra Engine能够依靠它的开放性得到市场认可的话,未来让操作系统支持它还是有希望的。到时我们或许就能看到N卡、A卡在一个平台上“和谐”工作了。
Hydra Engine根据需要设计了两种不同的实现方式,一种方式是作为PCI-E桥接芯片安装在多核心显卡上。另一种是直接将芯片设计在主板上,无论使用什么芯片组都能实现多卡互联,这种方式效果比较好,应用也比较方便。开放包容的模式使得Hydra Engine先天就有了不错的亲和力,能提供给硬件制造商更多的选择。

五、通用计算的桥梁
Hydra Engine的推广前景是美好的,这点我们可以从Intel作为Lucid公司的股东,为它投资了1200万美元看出来。由于Lucid是一家无工厂的半导体设计公司,Intel还将为它提供半导体设计、制造方面的一些技术支持。由此可见,投资Lucid对于Intel是十分重要的一步棋。
对于高端产品,支持多卡互联是提升性能的必然之路。虽然X58芯片组最终实现了对CrossFire和SLI的支持,但Intel获得授权也不容易,因此它急于寻求第三方解决方案。Hydra Engine将成为Intel与NVIDIA、AMD对峙的重要武器,有了它,Intel就不需要SLI和CrossFire那样的授权了。另外,在NVIDIA大力推行物理加速以及通用计算的背景下,业界厂家也在研发如Larrabee、GPGPU(通用图形处理器)这样的处理器,也有可能用Hydra Engine把多个处理器互联起来,这样就会在通用计算上发挥极其重要的协同作用。目前日本艾尔莎公司推出的产品就是一块GPU通用计算扩展板,提供4个PCI-E ×16插槽,使用Hydra芯片进行显卡运算任务分配,再通过专用接口连接主机或进行互联分布式计算。

后记
Hydra Engine方案比较独特,在技术上十分先进,特别是在应用前景方面被业界广泛看好,但要在NVIDA与AMD两大GPU巨头把持的显卡领域有一番作为还是需要时间的。目前有消息称,Lucid公司已经和一些厂商深入合作,集成了Hydra Engine的产品将于近期正式上市,届时就能知道Hydra Engine的市场情况如何了。我们也希望在九头蛇的“撕咬”下,用户在SLI、CrossFire之外将有更多的应用性方案选择。