Win7为GPU带来全新定义
Windows Vista的到来让人们体验前所未有的系统互动体验,尤其是在显示系统的软硬件方面更是让人耳目一新。例如硬件方面的显卡,不仅迈进了DirectX 10时代,同时正式进入了显卡核心架构质的变革——统一架构;其次软件方面,系统对显卡需求增加,例如Aero特效等,同时在显卡的非3D复杂并行计算能力在统一架构的协助下得以发挥,尤其是NVIDIA的CUDA架构更是如鱼得水。
DirectX 10和统一架构的组合,开启了显卡在并行计算领域的全面进攻,例如在高精高密的超级计算机领域中原来是唯CPU独尊,但当NVIDIA发布Tesla后,由GPU组成的超级计算机轻松跻身前列;还有在视频线性、非线性编辑上,GPU更是发挥了多线程并行计算优势,基于NVIDIA CUDA的第三方视频编辑软件如雨后春笋般涌现,GPU的能力及地位在一台电脑中的地位再一次提升。
Windows 7!这个即将到来的微软全新一代操作系统,在Windows Vista内核架构基础上衍生而来,最重要微软新一代的DirectX API——DirectX 11也将到来。那么,DirectX 11与DirectX 10有何渊源?它又比DirectX 10先进在何处?基于它的应用是否得到了硬件厂商的全面支持……等等?带着种种疑问,让我们继续往下看。
DirectX 11随着Windows 7的Beta版、RC版和RTM版的出现已经不再神秘,但是基于DirectX 11的全面应用还需等待支持DirectX 11的硬件出现。那么难道现有硬件就无法让我们体验Windows 7带来的视觉冲击力吗?
答案是否定的。首先让我们了解一下DirectX 11与DirectX 10、DirectX 10.1之间的关系。
我们知道,DirectX 10.1是DirectX 10的一个超集。理论上,DirectX 10.1能够实现的功能,DirectX 10也能完成,不过需要更多的计算流程来完成,较为浪费硬件资源。而DirectX 11同样也是DirectX 10和DirectX 10.1的超集,它是基于DirectX 10.X之上开发而来,同时对其进行了功能、性能扩展和完善。
值得一提的是在DirectX 10之中,新近引入的统一架构设计,取消了昔日的顶点、像素独立渲染单元。而在DirectX 11中,其对统一架构的标量流处理器进行了进一步改进,例如增加了“Tessellation(镶嵌)”处理阶段以及Hull Shader、Domain Shader等其他改进;另一个值得注意的是,不仅仅芯片级硬件厂商对GPU的并行计算能力关注,就微软也在Windows 7携带的DirectX 11中加入了Compute Shader,它不仅能够协助3D图形计算实现更加的视觉效果,例如在HDR色调影射(HDR-Tone-Mapping)中,DirectX11将会调用Compute Shader创建场景的平均亮度,这让程序员更容易的对其进行控制,同时Compute Shader还能带来更好的效能。
GPU在DirectX 10(本处特指Windows Vista)中的并行计算能力,已经初露锋芒。而当DirectX 11发布后,GPU在并行计算领域的发展更是一片光明,尤其是Compute Shader的引入。微软引入Compute Shader最重要的目的就是通用计算,微软将使用HLSL语言对其进行全面支持。Compute Shader的特色是支持线程间的数据共享,能够获取DIrectX 3D的所有数据资源。由于Compute Shader正式支持双精度计算,所以在GPU进行通用计算时速度、精度、效能将会想必以前有突飞猛进发展。