实机评测 – Windows 7 RTM对Nvidia CUDA技术的支持 – Windows7之家,Win7之家

Win7之家:AMD: Windows 7和DirectX 11将在2009年发布?

Win7之家:实机评测 – Windows 7 RTM对Nvidia CUDA技术的支持

Vista之家:AMD: Windows 7和DirectX 11将在2009年发布?

图形巨头NVIDIA推
出的GPU通用计算技术CUDA相信大家都有所了解,然而随着Windows
7逐渐成为热门的关注对象,有一部分人对Windows
7是否支持CUDA、能否很好的支持CUDA产生了质疑。原因很直接——因为Windows
7支持微软自家的Direct compute!

微软明年将正式发布Windows
7?这个口水话题在过去几周已经被翻来覆去的炒作了好几轮,现如今AMD对其表示了兴趣。在近日举办的日本CEATEC电子高新科技博览会上,AMD放出
了一段幻灯片,上面的标题为“What to Expect in 2009”,其中主要有如下几项:

但事实真的是这样吗?今天,笔者就再一次针对CUDA的概念、架构等进行剖析,并且分别在Windows
Vista与Windows 7操作系统上对CUDA性能进行对比测试,以达到拨乱反正的效果。

新葡萄京官网,在 这张图片的第2行特意说明了”Windows 7 and DirectX
11″,不知道AMD是否已经获知内幕消息明年正式发布Windows
7?也许AMD讨论的只是明年的预发布版本,不过从字里行间我们可以体会的出,AMD和我们一样,还是很希望Windows
7明年能够发布的。 2009年发布Windows
7的声音似是而非,目前为止微软始终没有明示具体发布时间,不过微软已经砍掉了Windows
Mail、Windows Photo Gallery和Windows Movie
Maker等非必要程序,相信这也是赶进度的手段之一。
另外有消息信誓旦旦的宣称,Windows 7微软内部压盘日期为明年六月初。
按照ZDNet作者Ed
Bott的说法,微软必须在明年夏天来临之前把时间进度表搞明白,这对于微软来说应该不算什么难事,因为之前也有先例,在Win2000发布仅仅20个月之后他们就推出了Windows
XP。

在进行正式的对比评测之前,我们首先必须要了解CUDA到底是什么?而笔者也发现正是因为很多人没有对CUDA进行真正准确客观的了解,才导致了对CUDA和Direct
Compute的误解。我们先来看看NVIDIA官方如何解释CUDA这个概念:

Vista之家,爱上网,爱上Vista123.com

CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
它包含了CUDA指令集架构以及GPU内部的并行计算引擎
开发人员现在可以使用C语言来为CUDA架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA的处理器上以超高性能运行。将来还会支持其它语言,包括FORTRAN以及C++。

NVIDIA提供的CUDA开发包中的C语言编译器版本更新很快

可以看到,CUDA真正意义上来说是一种通用并行计算架构,但又包含了CUDA指令集架构和GPU内部的并行计算引擎。就如同CPU的情况一样,X86的架构也包含ISA和执行指令的硬件架构。各种应用程序都基于这个架构进行开发并在此上运行。可以说CUDA架构的GPU是图形渲染架构与并行计算架构的合体!

CUDA本意就是一种架构,但很多人认为CUDA是一种语言、或者是开发平台,这可能跟NVIDIA最初的宣传、推广策略有关系。在CUDA架构诞生之初,尚不存在专门针对GPU并行计算的开发平台以及编程语言,因此NVIDIA必须给程序员提供一种简单、易上手、并且完整的软件开发解决方案,这样NVIDIA所发布的CUDA包当中就包括了针对GPU的C语言编译器、纠错器/制模器、专用驱动和标准函数库等。

除了支持自家C语言编译器之外,更多的语言及API都能运行在CUDA架构

上图就很好的反映出了CUDA与应用程序接口以及各种语言编译器的关系,其中的DX11计算也就是Direct
Compute,可以看出CUDA架构和Direct
Compute并无冲突。包括CUDA自家编译器所采用的C语言扩展、OpenCL应用程序接口、Fortran甚至C++等都可以运行在CUDA架构之
上,未来CUDA还将支持更多的语言。在整个产业的共同推动下,GPU计算可谓是前途无量!

实际上,在微软的一份Direct Compute宣传PPT中,我们也可以看到Direct
Compute是完全建立在符合统一渲染架构GPU的基础之上的。实际上,从DirectX
10开始,NVIDIA和AMD纷纷淡化管线和顶点的概念,就是为了使得流处理器可以执行更多非3D的应用,而如今微软推出的Direct
Compute,无疑对GPU通用计算应用有很大的推动性。


小贴士:DirectX Compute还是Direct Compute?

很多朋友应该会发现,早期我们将微软的DirectX
11中包含的GPU通用计算成为DirectX Compute,但近期我们又改成了Direct
Compute,这是为什么呢?实际上,微软为了将GPU通用计算和主要是3D应用的DirectX区别开,所以通知了所有合作伙伴以及媒体,将
DirectX Compute改为Direct Compute,微软想要达到的效果应该是让Direct
Compute和DirectX一样重要吧,其实也可以看出微软对GPU计算的重视。

理清了CUDA以及Direct Compute的关系,我们来进入测试阶段,看看Windows
7中的Direct Compute到底对NVIDIA CUDA有没有影响,再一次验证Direct
Compute到底和CUDA是否存在冲突与竞争的关系。

● 测试平台

本次我们采用封装接口为LGA1156的i7搭配刚刚发布的P55主板进行测试,并分别在不支持Direct
Compute的Windows Vista操作系统和支持Direct Compute的Windows
7操作系统下进行对比。其中Windows Vista为64Bit,Windows 7为32Bit。

测试程序我们选择了三个最具代表性的CUDA软件,分别为国产转码软件MediaCoder、CyberLink推出的视频编辑软件Power
Director以及大家非常熟悉的转码软件Badaboom,并分别以同样的方法在Windows
Vista和Windows 7下进行测试。

Badaboom是NVIDIA联合Elemetal制作的Geforce
GPU视频转码工具,在CUDA标准推出初期,这技术是唯一一款支持CUDA加速的视频转码软件,通过这款软件可以直接利用CUDA加速给iphone、
iTouch、PSP、Apple TV等多种设备转换视频。

下载:Badaboom

本次测试所采用的片源为电影《X战警3》的一个长达11分钟的预告片,原分辨率为1920×1080,在本次测试中我们将其转换成720P的MP4格式,以下分别是在Windows
Vista和Windows 7下的性能截图:

Windows Vista下:转换时间为5分23秒

Windows 7操作系统下,转换时间同样为5分23秒

从两次转换的完成时间来看,在Windows Vista和Winows
7下,所花费的时间完全一样,都为5分钟23秒,可以看出操作系统完全不影响CUDA效能。我们接着来看下一个测试!

MediaCoder是一款国产转码软件,在之前我们已经对这款软件有过非常详细的测试。这款软件相对于前面的Badaboom来说,最大的优势就在于其不仅仅可以利用GPU中的流处理器单元进行视频转码加速,同时还可以利用CPU进行加速,也就是说其采用了GPU+CPU联合加速。性能要比Badaboom好很多。

本次我们利用这款软件转换1080P高清影片《007皇家赌场》的一个预告片,并分别在Windows
Vista和Win 7下进行测试。下面是测试成绩:

Windows Vista:358秒完成,压缩率31.83:1

Windows 7:花费时间374秒,压缩率31.62:1

可以看出,在Vista和Win7中,两次测试所花费的时间仅差16秒,而这主要的原因就是在不同的系统平台下压缩率不一样造成,如果排除压缩率差距的话,相信这两者仍然不会有差距,所以再一次证明了在Win7操作系统下,CUDA的效能并没有一点损失。

接下来我们将要通过一个视频编辑软件来测试NVIDIA
CUDA在Vista或Win7操作系统下的性能差距,这款软件名叫威力导演,出自着名的多媒体软件公司CyberLink。NVIDIA
CUDA在这款软件中的主要作用是加速视频预览与视频渲染,其实也是编码的过程。

这一部分测试我们选择了一段AVI视频,并对其加上万花筒特效,测试渲染时间,最后的成绩如下:

Windows Vista:花费时间7分44秒

Windows 7:花费时间7分35秒

在这一部分测试中,我们惊奇的发现在Windows
7操作系统下,视频渲染的速度竟然比Vista还快9秒,而输出的格式、大小完全一样,又一次证明了Windows
7中的Direct Compute丝毫不影响CUDA的发挥。

通过几个软件的测试,我们已经完全可以充分的证明前文所说的Direct
Compute和CUDA不存在冲突与竞争的关系,反而是一种互补的关系,如果没有CUDA架构的GPU,那么Direct
Compute也根本不可能实现。所以,担心CUDA不支持Windows
7完全是莫须有的想法。

前面我们说到,CUDA从本质上将是一种硬件架构,但又含有一个CUDA
C编译器,而实际上,CUDA C与Direct
Compute以及OpenCL等等应用程序接口从定位上就不一样,或者说使用人群不一样。CUDA
C是一种高级语言,那些对硬件了解不多的非专业人士也能轻松上手;而Direct
Compute则是针对硬件的应用程序开发接口,它能给程序员更多对硬件的控制权,相应的上手及开发会比较难一些。

我们现在回头看NVIDIA为Windows
7做出的事情,首先在硬件上CUDA架构的GPU可以完美的支持Windows 7以及DirectX
11中的Direct
Compute技术;另一方面,驱动程序上NVIDIA也是首先提供了Windows7驱动以及Direct
Compute的支持,并且在最近的Power of 3三剑平台的宣传中,将Windows
7作为Power of 3推荐操作系统,可见NVIDIA已经完全为Windows
7的正式到来做好了准备。

发表评论

电子邮件地址不会被公开。 必填项已用*标注