许多游戏玩家应该都有这样的经历,在欣喜某款游戏大作发布之余也会为自己的老显卡不能支持新的特效而痛苦,于是升级显卡成为了唯一选择。那么旧卡怎么办?折价出售或闲置?这可不一定,因为近的一项新技术可以让旧显卡焕发青春,与新显卡同时工作在一个平台上。
现有多卡并联方案的局限
从早期的Riva 128到经典的GeForce2 GTS,再到令NVIDIA重振雄风的GeForce 6800 Ultra,望着一块块曾经为我们带来无数欢乐的显卡躺在废品堆里,心里总是会有一种凄凉的感觉。我们或许时常会想,能不能让它们重新披挂上阵,和可爱的GeForce 9800 GT一起工作呢?这样的情况还真有可能出现!这就是来自以色列Lucid公司的新成果—Hydra Engine,一个第三方多显卡并联解决方案。与现有的SLI、CrossFire等多显卡并联技术相比,它到底特别在何处?
长期以来,NVIDIA与AMD都花了不少力气在多显卡并联领域进行发展,通过多块相同显卡的组合来实现显示性能的提升。这里我们不谈它们在性能提升等方面的优点,就目前来看,它们两家的SLI和CrossFire技术还是有一些不能让人满意的地方。首先当然是只能支持相同的显卡,有所局限。另一方面,SLI和CrossFire采用的是分割帧渲染(SFR)和交替帧渲染(AFR)模式,而这两种模式都存在着其固有的缺陷。在SFR模式下,每块显卡都需要重复保存所有的纹理和几何信息,单块显卡显存带宽和几何着色单元的限制仍然存在。而在AFR模式下,每帧画面都需要在显卡间切换,因此存在着延迟。
Hydra Engine工作原理解析
图一:Hydra Engine工作原理图
与SLI、CrossFire相比,Hydra Engine有什么不一样呢?首先,Hydra Engine是一项完全独立于GPU的图形分布式计算技术,其芯片功耗仅为5W,内部结构包括一颗RISC处理器以及专用处理电路,配合对应的软件实现相应的功能。Hydra Engine芯片采用了与SLI和CrossFire完全不同的模式,该芯片并不负责任何GPU运算工作,它的职责在于将图形渲染工作实时分配到各个GPU身上。对应的独立软件驱动则负责在DirectX架构和GPU厂商驱动间进行交互。
图二:功耗仅有5W的Hydra Engine芯片
看明白了吗?Hydra Engine就好像扮演着一个任务分配员的工作,那它具体是怎么做的?Hydra Engine会在NVIDIA或AMD的驱动程序前,读取来自于游戏或其它应用程序传输到DirectX或OpenGL的信息,并将信息划分为多个任务,这些任务可能是一个特定的光照效果,一种后期处理,一个特定模型的绘制等等。此前,如何将一个复杂的游戏画面划分为多个任务是一项十分困难的工作,但Lucid公司通过专利算法在Hydra Engine上很好地解决了这一难点问题。任务被划分完成后,就会通过PCI-E总线传输到Hydra Engine芯片,随后分配到各个GPU中。GPU完成自己的运算任务后,会把结果(它们可能是一部分数据,也可能是一些像素)交还Hydra Engine芯片,该芯片再将这些信息交给其中一颗GPU来完成后的混合输出。说得形象一点,Hydra Engine这位有经验的任务分配员,既不像SFR模式一样简单地直线分割每一帧的画面,也不会机械地像AFR模式那样将各帧画面分配给各个GPU,而是将整个画面渲染工作灵活地分配完成。