民用NV显卡的多屏显示
1.多屏的设想
说起多屏幕显示,相信很多人都不会陌生,我们经常可以在卖场、电视和大型的集会上看到这种能给人带来强烈视觉冲击的显示方式。多屏显示可以从简单的双屏显示发展到四屏甚至更多屏幕的电视墙组合,简单来说,多屏幕显示首先可以给人们带来更广阔的视野,例如我们不妨将双屏显示看作是单个更大宽屏显示器,后者的优点相信很多人都了解,比起传统的4:3画面,宽屏显示器带来的16:9画面能让整个画面内容完整不丢失,这在看电影和视频时就显得尤为突出了;同时宽屏显示器也让我们在同一个画面下同时浏览多个窗口和网页成为了可能,或者是平铺或者是并列,这也为办公效率带来了明显的提升;而随着越来越多支持宽屏游戏的出现,人们在选择自己的显示器时就又多了一份斟酌了。
多屏幕显示可以让我们兼顾多个项目,同时免去了窗口之间切换的麻烦
我们知道,专业的图形卡可以通过专门的接口和线缆连接多个屏幕,提供超大分辨率供显示,不过专业显卡的售价也是极其昂贵。例如丽台的Quadro NVS 440,首先显卡具备了2个高密度的DMS-59输出口,可以让单卡支持4屏模拟/数字显示,同时本身的双400MHz RAMDC可以让每个屏幕都能做到2048x1536@75Hz的分辨率。而我们想要知道的是,能否只使用民用级别的显卡,不使用这种专业的图形卡来达到实现多屏幕显示的目的呢?而实际上,Quadro NVS 440也并不能算是目前的主流专业图形卡,就现阶段来看一块中端的专业图形卡都要在1、2万元左右,对于普通用户来说,显然不是一个能够轻易去承受的价格。如果我们能够在民用显卡上实现和专业卡一样的多屏幕显示,那无疑将是一件非常美妙的事情。
不久前曾在韩国展出的由96台15寸LCD搭建成的电视墙,通过使用四块LEADTEK Quodra NVS 400 PCI显卡组建成的特大屏幕显示,这也创造了新的世界记录
双屏显示其实是所有多屏幕组合中最简单的一种,当然它也是其他所有组合的基础。对一台普通的家用PC而言,主机显卡通常会使用D-sub口或者DVI口作为显卡和显示器的连接方式。除了极少数的DVI口是dual-link,大部分的DVI口仍然只能对应输出一个显示器,因此当我们用两台显示器分别连接到显卡的DVI口和D-sub口以后,我们就能做到最简单的多屏扩展--双屏显示了。之后通过在驱动程序和显示设置中的一些调整,我们就可以享受到2个屏幕显示一个屏幕的完整内容了。
不过今天我们要讨论的内容并不是简单的2个屏幕的组合,而是要复杂一些的4个屏幕。为此我们也进行了一些细致的准备,包括4台19英寸的液晶显示器和2块Geforce 7900GX2显卡,之所以选择了Geforce 7900GX2是因为我们很想看看在这种略显BT的设置下,整台主机会有怎样的表现,传说中的Quad SLi究竟具备怎样的性能。当然我们并不否认这种做法多少有些卖弄的味道,但是能由此发掘一下使用非专业卡来实现多屏显示的潜力,也未尝不是一件乐事。
2.丽台Geforce 7950GX2赏析
先来看到的是我们今天的主角之一:丽台的Geforce 7900GX2。
其实每块Geforce 7950GX2都是由两块PCB构成,但是我们并不就此可以认为它就是1+1=2这样的简单组合。如上图是一块丽台Geforce 7950GX2的样品图,每块PCB上都有一颗GPU:G71和对应的256bit/512MB显存。显卡的外部接口被设计在了顶部的PCB上,而底部的PCB则具备了SLi接口和PCIE x16接口。仔细对比两块PCB,我们可以清楚地看到在底部的那一块上我们还能看到一个类似于扩展槽的接口,其实它就是用来连接2块PCB的桥接器。如下图:
这个桥接器的作用就是将上下两块卡连接起来,组成一个显卡,其实连接的原理就是SLi。除了这个桥接器以外,在底部的卡上Nvidia还设计了一颗模样很像HSI的芯片,它同样也是起到了连接两块卡进行协同运转的作用。
如图,这是桥接器被安装到显卡上以后的模样。是不是和普通的SLi桥接器很像?只是换了个位置,换了个样子而已。
#p#page_title#e#
这块看上去很像GPU的芯片其实就是一块位于底部PCB的GPU旁边的芯片,除了上面看到的桥接器外,它也起到了协同两块卡一起工作的重要作用。
这是在两块PCB上都具备了的G71核心,从核心编号上我们看到它的版本是A2。
7950GX2使用的是三星1.4ns的GDDR3显存颗粒。顶部和底部的两块卡都是一样的规格:256bit带宽/512MB容量。
仔细对比一下上下两块显卡的PCB,必须说明的是虽然我们可以认为它们都是独立的7900GTX,不过上下两块卡的PCB并不一样,上方的PCB是P602,负责2个DVI的输出;下方的是P502,承担着Quad SLi模式下MIO口信息的输入输出。
显卡使用的是6pin的辅助供电接口,我们看到这个接口也被设计在了上方的PCB上,也就是P602上。事实证明,7950GX2的功耗还是相当惊人的,特别是在组建了Quad SLi以后,我们使用了两个电源才将它搞定,一个是航嘉的磐石500,另一个是Tt的520W电源,在完成这样的搭配后,我们也终于可以稳定地运行自己的Quad SLi系统了。
我们现在来看看7950GX2的散热器部分,由于是要将两块卡叠合在一起,显卡的散热器肯定没有办法做的很厚,因此在看到略显单薄的单卡槽散热系统后,我们也并不惊讶。上下两块卡使用的散热器是相同的。散热器的主体材料仍然是采用了铝片,不过核心部分散热使用的是镶铜。散热片的设计是一种比较折叠式的架构,从照片中来看,似乎这种折叠并不是非常平均,不过由于散热器设计的比较大,它还是做到了覆盖核心和显存这两个重点需要散热的部分此外,显卡使用的是由风扇抽风,通过散热片向外排出的风道设计,从外部接口旁的风道口我们可以大致判断出显卡对散热的处理方式。总的来说,我们对7950GX2的散热系统并不十分满意,过于简单的设计让我们怀疑它能否保证显卡在超频状态下满足核心及显存的散热需求。不过本次的测试重点并不在此,而事实上我们相信除了一些骨灰级发烧友,没有多少人还会不满足于这块卡本身的性能的。
3.初步尝试,Quad SLi失败
这是组建好了Quad SLI后的模样。它的性能是强大的,而它的功耗同样也是惊人的。这样的配置能否达成我们的多屏显示的梦想呢?怀着兴奋的心情我们开始了此次的探索之旅。硬件上的安装还是非常简单的,在将主板的BIOS升级到了最新版以后,我们也终于可以在华硕的P5N32-SLI Deluxe成功运行自己的Quad SLI了,为了能够保证稳定,我们采用的是双电源系统,两块Geforce 7950GX2都是使用了磐正500W进行辅助供电的。而作为本次测试的主要目的:多屏输出。两块显卡上的四个DVI接口也都被充分利用。我们为显卡配备了四台19英寸的液晶显示器。搭成了2上2下的结构。这样一来我们仍将能显示4:3的画面。
我们的测试系统配置如下:
CPU |
Pentium D 950 |
主板 |
ASUS P5N32-SLI DELUXE |
内存 |
海盗船 DDR2 800 512MBx2 |
显卡 |
丽台 PX 7950GX2 TDH x2 |
硬盘 |
ST 160GB SATA2 |
电源 |
TT 500W+航嘉 磐石500 |
我们此次的重点并不在Quad SLI的游戏性能上,因此我们并没有对显卡在3DMark和具体游戏中的表现进行测试。测试使用了Windows XP SP2系统,同时还安装了DirectX9.0c。显卡使用了两款驱动程序,分别是ForceWare 91.47和ForceWare 95.97,前者则被认为是目前Quad SLI平台中最稳定的一款驱动程序,而经过我们的实际测试发现结果也的确如此。 #p#page_title#e#
在安装完成了系统和驱动程序后,我们进入控制面板开始对系统进行设置。系统顺利认出了显卡,这是我们在硬件信息中可以看到的内容:
之后我们很顺利地在驱动中打开了SLI选项,按照我们本来的预想:在Quad SLI下四块核心可以分别负责一个屏幕的输出,只要在nView中稍作设置,就可以完成了多屏显示系统的第一步了,不过事实并非如此。
是的,我们只看到了一个屏幕可以正常显示系统桌面,而其它三个则完全没有显示内容。此时我们已经将四台显示器都连接上了显卡的DVI口。不过在系统的显示驱动控制中,我们看到只有1台显示器被识别了出来,这是否意味着在Quad SLI下4个DVI接口只有1个是有用的?还是应该理解为4个DVI口等效但是只能支持单个输出?
既然在Quad SLi下暂时找不到办法实现多屏显示,何不尝试一下先舍弃Quad SLi?
4.舍弃Quad SLi,并不完美的多屏显示
在对非SLI模式的描述中我们注意到drive multiple displays,似乎是能够支持多屏显示的?当然我们还必须通过实践来证实。在完成设置保存重起后,我们重新进入了显示驱动的设置画面:
现在我们已经可以在显示设置中看到有4台显示器了,不过实际的屏幕上仍然只有1台有显示内容,其它3台仍旧是“黑脸”。
在将所有的显示器都选择了Attached之后,我们终于可以在4个屏幕上都看到画面了,不过我们此时需要注意的是我们可以选择4个屏幕并联,也就是四个屏幕显示相同的内容;也可以选择延伸(Extend),实现用四个屏幕显示一个完整的桌面。前一种模式并不是我们此次测试的重点,因此我们着重来看看如何通过延伸来实现在4个屏幕上显示一个完整画面。
4屏显示下的桌面背景
这4台显示器现在终于可以为我们带来超大的浏览模式,这在看网页和运行多个窗口时表现的非常明显
4屏显示下的窗口最大化,我们注意到整个窗口被集中在了其中的一个屏幕上,而不是所有的4个屏幕。
同样出现问题的还有之后的FarCry,我们看到游戏画面也是只能显示在一个屏幕下,而后台的Farcry测试工具菜单却又告诉我们这是一个正在多屏显示模式下的系统。
不知道此时应该高兴还是沮丧。我们终于能够通过4个屏幕来显示一个完整的画面内容了,不过此时我们也发现,这和我们所看到过的真正意义上的四屏显示还不完全一样。尽管窗口可以在屏幕上拖动并且能够做到分别在几个屏幕上进行显示,但是桌面的墙纸并不是完整的一块,却是和并行显示一样在4个屏幕上分别显示了完整的墙纸;另外系统的任务栏也并没有扩展开来,而是仍然集中在了一个屏幕上。尽管单个的非最大化窗口能够在屏幕之间拖动,但是窗口最大化时并不是占据所有屏幕,而只是集中在了其中的一个上。看来,这个4屏的显示并不完美,是我们设置上有问题吗?为了能够找到原因,我们决定再进显卡的驱动去看看。
5.深入探索多屏显示原理
在Nvidia的驱动控制面板中,我们已经可以看到系统识别出的2块7950GX2
在显示设置中我们看到驱动已经可以正确识别出4台显示器
由于我们这里使用了2块显卡,每块显卡连接上了2台显示器。因此在驱动中默认要先选择1块显卡,其次我们可以选择显示的模式,共有5种:Single、Clone、Horizontal span、Vertical span和Dualview。接下来我们必须选择要显示内容的2个显示器,从下拉列表我们发现这里有2组显示器可供选择;最后注意到有一个PRIMAry项,根据描述,选定的这个Primary显示器将被作为主显示器。至此对于之前四屏显示中出现的任务栏只能显示在一个屏幕无法延伸到其他屏幕的现象似乎也可以得到一些解释,不过是不是真的就没有办法解决了呢?我们决定继续尝试。
如图,这是我们在刚才的四屏显示模式下,在显示属性中对4个显示器的设定,此时在驱动程序中对应的设定如下:
此时的5个显示模式中我们使用的正是DualView这一项。注意到对应注释中最下面一排:可以独立地设置分辨率和墙纸,由此我们不难理解之前的4个屏幕会显示4个相同的墙纸了。看来至少我们现在可以确定,Dualview无法做到我们需要的效果。不过其他的4项呢? #p#page_title#e#
Single:从字面意思我们不难理解在这个模式下显卡将只能支持单个显示器的输出,这样自然无法达到我们的多显要求,首先排出。
Clone:根据驱动对它的说明,在这个模式下同一块显卡上输出的2个接口将会显示相同的内容。这意味着我们所拥有的4台显示器将不能够显示不同的内容,必然有两台的内容是重复的,因此也不适合我们使用。
Horizontal span:横向显示,这意味着每两台都是横向显示同一个画面的内容么?那么4台显示器呢?
同时我们还注意到对于Horizontal span的说明,可以让两台显示器共享相同的分辨率和色深,同时速度也将比Dualview模式下更快。尽管还不能完全明白这个解释,不过验证其是否可行最好的办法还是通过实际测试。这一次我们使用的是FarCry的测试画面。
游戏的测试画面被集中在了属于同一块显卡上的2个输出口上,而另一块7950GX2则显示的是桌面的背景,比起在Dualview下的效果,我们看到Horizontal span仅仅是做到了让单块7950GX2的两个接口完成画面在横向上的扩展,而无法让两块7950GX2之间进行画面上的扩展和延伸。
Vertical span:垂直显示,这应该是和横向显示正好相对的一种模式。
在对它的解释中,我们看到了和Horizontal span下类似的表述:可以让两台显示器共享相同的分辨率和色深,同时速度也将比Dualview模式下更快。同样地我们也进行了实际的测试。
和Horizontal span下的横向显示游戏画面不同,Vertical span下游戏画面集中在了2个竖直放置的显示器上。而另2个显示器的画面则是桌面的背景,这一点和Horizontal span相同。
6.多屏显示的民用化,希望在前方
通过对Horizontal span和Vertical span两种模式下的测试,首先可以肯定地是它们都无法满足我们要在4屏下显示整个系统画面的需要。而事实上我们甚至可以这样认为:无论是Vertical span还是Horizontal span模式、两块7950GX2都是相对独立的,彼此显示的内容也是相对独立。至此,现实已经离我们开始所期待的结果越来越远了,在尝试了驱动中提供的所有可能后,我们都无法做到完全意义上的4屏显示。尽管在Dualview下能够让4个屏幕拼接出一个完整画面的内容,但是当实际运行某一程序或者将窗口设置成最大化时,整个系统的画面有被集中到了1台显示器上,其他三台仅仅只能显示桌面背景,不过我们现在也终于明白了在多屏显示的设置项中那个Primary的含义,换言之,在Dualview下我们能够将整个桌面扩展到4个显示屏,但是其中1个必将作为主显示屏,当运行具体的程序或者软件时系统将只能在主显示器上显示运行过程。这和我们之前看到的多屏幕显示并不一样。或者我们应该理解为使用Quad SLi并不能为我们带来真正意义上的多屏幕显示效果?
在我们的测试过程中,我们也在多屏显示下进行了视频播放功能的测试:就像之前测试的结果那样,窗口最大化时播放器被集中在了一个屏幕中,如果想要让播放器能够同时出现在4个屏幕中就只能靠拖动非最大化窗口来实现了。
播放器最大化
跨屏幕显示的缺陷:无法同时在多个屏幕显示播放内容
但是我们随后发现,这种通过拖动来实现跨屏幕播放的效果并不尽如人意,事实上播放的内容只能够显示在一个屏幕上,其他屏幕显示的只是黑屏而已。同时我们必须提醒大家的是,必须在显示驱动中关闭D3D硬件加速功能,否则将无法播放视频文件。
如果说Quad SLI不行,那么SLi呢?根据之前的推测,因为Quad SLi这种模式是将4颗GPU并联进行处理,而SLI则是将2颗GPU并联进行处理。它们在原理上是相同的,这样说来,SLi下应该也是无法支持多屏显示的。我们随后用2块7900GS组建了SLI,结果和我们预想的一样,在打开SLI以后,系统只能支持输出一个屏幕。但是事情并没有就此结束,相反我们产生了更多的疑问,如果显卡在SLi下无法支持多屏幕显示,那么单块的7950GX2又是如何做到支持多屏幕显示的呢?正如我们之前在测试中看到的那样,每块7950GX2在连接上2个显示器以后都可以在系统中对显示模式进行配置,包括Single、Clone、Horizontal span、Vertical span和Dualview这五种,但是我们也知道正是通过SLI架构,2块7900GTX组成了7950GX2。然则,同样是SLI架构的7900GS SLI和7950GX2单卡为什么就会出现这么大区别呢?我们在实验了最新的ForceWare95.97和目前最稳定的ForceWare 91.47版的驱动后,都是相同的情况。对此,我们认为只存在有2种可能,一种是7900GS SLI和7950GX2在物理架构上其实并不完全相同,这使得它们在多屏显示上存在差异;一种就是Nvidia有意在驱动中对显卡的多屏幕显示功能进行了限制,这使得7900GS SLI和7950GX2无法表现出类似的效果。
尽管最后的结果并没有达到我们预想的成绩,但是我们并没有因此沮丧,对我们来说,单卡7950GX2能够实现双屏幕显示本身已经向我们展示了民用显卡使用多屏幕的可能,如果能够进行更进一步的探索,也许是在驱动方面也许是其他方面进行一下改进,达到我们的目的未必不是可能的。