Science Blog of Dr. Yuan分享 http://blog.sciencenet.cn/u/albumns This blog is mainly on Molecular molecular modelling and simulations

博文

SLI 技术在GPU计算的应用

已有 6025 次阅读 2011-9-8 01:54 |个人分类:科研笔记|系统分类:科研笔记

最近给实验室的工作站装系统,用了SLES 11 SP1版本。机器本身采用了2块超级强悍的GPU: NVIDIA GTX 590

系统安装之后显卡驱动通常SUSE可以自动根据NVIDIA的安装源安装。奇怪的是,安装完之后一直进不了系统,根据提示应当是驱动配置的问题。

通过YAST查看驱动,SUSE不但安装好了驱动,还将NVIDIA的GPU计算程序也一并装好。以为是SUSE默认的驱动不对,上NVIDIA官网下载.run文件手动安装后问题依旧。后来折腾了半天,一直提示:

fatal error:
no screen found

索性将显示器的2个VGA端口分别接入2块GPU,然后在终端模式下运行sax2 配置显卡,最后总算成功了。在Novell的论坛上也有人提到:
这个是SLI模式,GPU计算的时候使用会很强悍。不过可以通过如下sax命令来配置驱动,这样2块GPU都能发挥出最佳功能:

sax2 -r -m 0=nvidia 1=nvidia


以下是SLI技术的介绍
SLI的全称是Scalable Link Interface,它是通过一种特殊的接口连接方式,在一块支持双PCI Express X16的主板上,同时使用两块同型号的PCIE显卡。 在2004年的Computex2004台北电脑展上,nVIDIA向外界展示了NV45显卡。NV45实际上就是GeForce 6800的PCI Express版本,并且是通过HSI桥接芯片来实现,因此NV45与现在的GeForce 6800并没有大的区别。不过,NV45样卡的顶部位置出现了一个神秘的接口,当时无人知晓其用途,nVIDIA也没有透露。其实那个神秘接口是用于两块显卡的互连,构成一套SLI双显卡并行系统。
我们可以看到,NV45的SLI互连不再是和Voodoo 2一样借助线缆,而是使用一块两端有“MIO”接口的PCB连接子卡。卡上的接口有点儿类似PCI Express×1,而在显卡的顶部位置则预留了对应的接口。这样,该SLI连接卡就可以将两块NV45显卡连接起来,实现SLI并行运作。NVIDIA表示,选择PCB卡连接可充分保证信号通讯的质量与速度,显卡间的数据传输采用数字形式进行,这样可有效防止因信号干扰而导致画面不同步的弊端。Voodoo 2所采用的技术是模拟传输方式,数字信号先被转换为模拟信号后才进行合成,因为干扰的影响,在某些时候会出现数据不匹配的问题,导致合成后的画面往往难以同步或出现其他问题,这也是Voodoo 2 SLI技术的主要缺陷。而改用数字信号传输,显然就不存在这个问题,显卡处理完的帧数据被集合起来合成,然后才转为模拟信号输出,从而确保画面的完整性。

nVIDIA SLI Multi-GPU的确是一项令人疯狂的图形显示技术,不管要求多么高的的3D游戏,再夸张的特效它都可以应付自如,游戏爱好者可以充分体验到这种速度与显示效果都大幅提升的快感,而对于专业设计人员来说,SLI也将带来效率的翻倍提升—渲染工作的费时费力大家想必有所耳闻,为了渲染短时间的虚拟画面,图形工作站可能要连续运行上数个小时直至几天几夜,有了SLI,渲染的时间几乎可以缩短一半,效率提升极其明显。
通过这种先进的SLI技术我们可以得到几乎翻倍的图形显示性能,把它引入实际应用也不再不切实际了,它不再像以前组建Voodoo 2 SLI那样昂贵,最近NVIDIA放出了最新的驱动,可以在无连接桥的Geforce6600标准版中打开SLI功能,普通消费者也可以轻易体现到这种先进的技术,这一方面是因为受到ATi Crossfire带来的压力,而对于长远来说,NVIDIA可以在负载平衡算法以及核心开发上下功夫,这种SLI技术和市场定位也要不断演变,让更多的消费者都能轻易组建自己的SLI系统,例如使新旧显卡一起工作在SLI模式下,用户升级时不用抛弃旧显卡而只需购买一张更快的显卡来构建SLI系统。SLI的发展前景是光明的,要是能使SLI普及化,将会对整个显卡市场产生深远的影响。
为此,nVIDIA另行开发了一套动态负载平衡技术,画面的上下划分并不是按照固定的一半一半方式,而是根据画面的复杂情况进行划分,如可能为4:5或3:2等非均等的模式。这样的分配并不是为了保证工作量在两块卡间的绝对平均分配,而是要将两块显卡完成渲染任务的时间保持一致,以此达到效能的最优化。考虑到主显卡需要承担额外的控制任务,用于实际渲染运算的资源较少,动态负载平衡算法就可以根据这一前提,将任务量适当多给副卡分担。这样,nVIDIA所构建的SLI系统就可以保证两块显卡都工作在最佳效率条件下。要提到的是,这项动态负载平衡算法并不是集成在GPU芯片内部,而是在驱动程序中整合,nVIDIA可以方便对其进行修改,以提供更佳的性能。


但是,这种动态平衡技术并非万能的,NVIDIA SLI的无法支持在不同的显卡间构建并行系统,而两块显卡协同工作时上下两部分画面的V-Sync(垂直同步)也是一个问题,如果打开该功能势必会对游戏性能产生一定的影响,不过nVIDIA表示已采用缓存技术来解决这个问题,另外建立SLI工作模式后的两块显卡也都支持超频,但必须使两块显卡的频率完全保持一致。

Voodoo 2的SLI技术采用帧线方式划分任务:一幅渲染的画面被分成奇数渲染帧和偶数渲染帧两个部分,然后交给两块显卡分别渲染,完毕之后再统一合成。虽然nVIDIA继续沿用了“Scalable Link Interface”的名号,但工作的方式已经有本质性的不同。在nVIDIA的SLI系统中,一幅渲染的画面被划分为上下两个部分,主显卡完成上部分画面,副显卡则完成下半部分的画面,然后副显卡将渲染完毕的画面传输给主显卡,主显卡再将它与自己渲染的上半部分画面合成为一幅完整的画面。这样,一个完整的SLI并行渲染任务就完成了。同理,倘若有四块GPU并行运作,那么画面会被分成四个部分分别渲染,8个GPU并行也是如此。


传统的多GPU技术多半采用任务均分的方式,两块显卡完成的渲染任务量完全均等,Voodoo 2的SLI及之后的Voodoo 5系列都是如此,ATi的MAXX显卡和XGI的Volari Duo系列产品也是采纳类似的思想。但这种任务均等分派的设计并不科学:首先,主显卡或主GPU必须承担额外的控制、任务分配、画面合成和输出等工作,用于渲染的运算资源较少,但它必须完成与副卡一样多的任务。结果自然是,副卡率先将任务完成,把结果数据回传后便处于等待状态,直到主卡将本批次任务处理完毕之后才可以继续进行任务指派;第二,同一幅画面不同区域的复杂度并不相同,所需的运算量也不一样,如果使用Voodoo 2的帧线划分方式那也没什么,但nVIDIA的SLI采用划分上下画面的方式,如在常见的赛车游戏中,画面上半部分几乎是静态的,而下半部分就非常复杂,需要处理的数据量很大,如果单纯将画面作均等的划分也不科学。

以上介绍的只是SLI最表象的特征,真正的关键在于这套系统的运作机制。SLI的两款显卡地位并不是对等的,一块显卡作为主卡(Master),另一块则作为副卡(Slave)。其中主卡负责任务指派、渲染、后期合成、输出等运算和控制工作,而副卡只是接收来自主卡的任务进行相关处理,然后将结果传送回主卡。这里,我们需要明确数据传送的两个途径。两块显卡都是通过PCI Express接口与主板连接,而这两块卡之间还有一个通讯的PCB卡。其中,连接两块显卡的PCB卡用于任务指派指令以及后期处理结果的传送,这部分的数据量不会很大,所以PCB卡所使用的接口和自身结构都较为简单。但是,显卡在渲染过程中必须调用大量的数据,这部分数据只能通过PCI Express接口从系统中获取。换言之,在SLI系统中有两部分不同的数据流向,一部分为主卡将任务指令通过PCB连接卡传送给副卡,副卡将渲染完毕的结果数据返回给主卡合成,另一部分为处理过程中从PCI Express接口得到的原始数据。



https://blog.sciencenet.cn/blog-355217-483996.html

上一篇:Rosetta parallel installation and job running
下一篇:Tips for Desmond
收藏 IP: 178.73.49.*| 热度|

1 宋敦江

该博文允许注册用户评论 请点击登录 评论 (5 个评论)

数据加载中...
扫一扫,分享此博文

全部作者的精选博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 10:48

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部