论文部分内容阅读
光线追踪——光线处理的魔术师
VSIA
光线,永远是3D画面中最为显眼的因素。适宜的光线会让画面看起来和谐美观,在DirectX 9时代,计算机对于光线的计算和处理达到了一个新的高度一特别是HDR技术的引入,使得细微光线和明暗对比都得到了重大的进步。但我们仍然没有停止对画面品质的追求。光线追踪技术开始加快了它普及的步伐。
游戏画面中,我们感觉场景中的物体缺少和光线的互动。这是因为目前的计算机实时计算水平让“光线”丧失了反射、折射、散射等特性。我们无法看到树叶、墙壁、云彩等环境物体自身的反射折射光。结果就算我们在画面中使用精密的顶点模型及大量细致的多层贴图,最后也无法摆脱计算机实时渲染画面带给人的“假”的感觉。
光线追踪——找回失去的光线
光线追踪(RayTracing),这个古老而年轻的术语或许将弥补未来光线的缺失。说它古老,是因为它早已应用在CG动画以及一些高级图形处理中。说它年轻,是因为受制于计算机硬件技术的缺陷和计算能力的不足,很少出现在实时运算的3D画面中。光线追踪实际上是以模拟真实世界中的物理状况为目标,对光线的各种照射和折射情况作出模拟的运算技术。在光线追踪中,我们可以通过模拟光的自然流动,并模拟有关折射、反射以及光在半透明物质中的阴影以及色渗的物理效果,完成对各类相关画面效果的处理。在现实世界中光源和它们所发出的光线的散射、折射、漫射等活动构成了光环境。在计算机处理中,往往由于硬件水平不足,只能减少光线的处理。一般情况下,对于烟雾、光线等物质的处理都采用非常简化的计算方法,一般处理中,单光源或者双光源的场景比较常见,多至4光源就不多见了,更不要说复杂的光线追踪处理。
目前我们可以在计算机上实现的是在一个物理场景中对于光线进行简单的追踪处理。仅仅处理那些最终能够“到达”屏幕的光线,并对光线的折射反射次数做出限制。这样能一定程度改善光照效果:
1.首先确定光源点。将观察者的眼睛作为光源点,仅仅计算能够“看到”的部分。
2.对于每束光,找出光束与表面最近的交叉点,确定交叉点的表面颜色,并且根据场景中的光照调整此颜色。
3.追踪计算每一束光线的照射,并且使用光线的折射或者反射光线再次计算,最后得到整个场景的光照效果。
实际操作远比描述的复杂。目前,一些游戏爱好者和厂商已经在开发相关光线追踪补丁。在著名游戏Quake4中加入了光线追踪的算法后整体游戏的光影效果为之改观。
追踪未来——下一个特效热点
在德国,一些玩家用20个AthlonXP 1800+处理器集群和一个自行设计的FPGA(现场可编程门阵列),完成了Quake 3的512×512画面光线追踪渲染,效果相当惊人。
光线追踪技术对于画面效果的改善是如此的明显,但也需要极高的硬件条件。光线追踪将在DircetX 10甚至更新的版本中被强力支持。在统一渲染架构的GPU/VPU成熟之后,光线追踪计算应该被显卡的强力浮点运算性能支持。可以预见的是,光线追踪必将成为未来显卡的基础支持功能,就像HDR那样火热起来,随之而来的是画面效果的又一次飞跃——我们越来越接近真实了。
Core 2 Quad的劲敌——AMD Barcelona四核处理器浅析
八 戒
AMD首款原生四核心处理器
相对于Intel的Kentsfield及此前的Quad FX平台,AMD强调Barcelona是首颗原生四核CPU。Kentsfield仅是将2颗双核cPU集成在一起,并不是原生四核处理器,Core 2 Duo芯片内部的双核心可以共享二级缓存,具有较高的协作效率,但如果两颗Core 2 Duo芯片要进行任务协作,缺乏直接的通讯渠道,只能通过“共享前端总线一北桥(内存控制器)一内存”才可以完成二级缓存的数据同步,这个过程需要耗费较长的延迟,从而导致运作效率的降低。而AMD的Barcelona是真正将四核心集成在一片晶圆上,最大好处就是降低了四核心之间传输瓶颈,而且借助内置内存控制器的特点大大降低内存延迟,使得对cPU的缓存的依赖也大幅减少。
全面提升浮点性能及SSE指令执行效率
Barcelona一项重要的改进就是和core2架构一样具备128位SSE执行位宽,一个频率周期内可执行一个128位SSE指令。配合完整的128位SSE执行单元以及庞大的执行单元数目,Barcelona架构可在一个频率周期内同时执行128位乘法、128位加法、128位数据加载与128位数据回存,或者是4个32位单倍浮点精度乘法与4个32位单倍浮点精度加法运算,将是目前的K8的两倍。Barcelona架构大幅改进的SSE效能,更利于多媒体应用。
除了扩展SSE执行位宽外,Barcelona处理器的浮点调度单元也扩展到128位,使Barcelona架构处理器在浮点运算单元(FPU)、向量SSE数据的分派、传输、解码速度三方面同时达到现有K8架构同频率处理器的两倍速度。这也使Barcelona架构在基于x87浮点指令的应用程序中的性能大幅提高。但在基于SSE/2/3的浮点应用程序中,Barcelona仍会输给Core 2 Quad Barcelona实现了单周期执行同一种并行SSE2指令,这点和Core 2 Quad是一样的,而K8需要2周期。不过,Core 2 Quad可以利用SSE2指令每个周期实现两个双精度乘/加运算,而Barcelona却受到限制,同时在整数应用中,Barcelona还是处于劣势。游戏性能由Core 2 Quad领先的局面,不会有太大的改变。
Barcelona对浮点单元做扩展也将带来一些问题,那就是Barcelona主频将难以提升,将抵消65nm工艺的优点。因此,早期的Barcelona在主频上将低于Core 2 Quad,在效率上也不是同频Core 2Quad的对手。Barcelona的最优竞争力是x87浮点应用,但是SSE/2/3浮点应用、游戏性能也将继续和K8一样弱于同频Core 2 Quad。
增强型分支预测机制及专用堆栈管理器
引入增强型分支预测器也是Barcelona一大特色。一般而言,CPU采用的分支预测技术的精准性决定该CPU构架最适合的流水线宽度和级数。分支预测器能够正确预测的数据就相当于cPu能够处理的最佳数据量,只有这部分数据能够成为被准确处理的信息。在K8时代,由于当时技术的原因,K8架构最重要的软肋就是没有间接分支预测器。而Prescott芯片加入间接分支预测器后,整体预测错误率降 低了12%,因此,AMD在Barcelona中增加了一个512路的间接分支预测器,相对直接分支预测器给予CPU一个精准的地址,间接分支预测器给予了CPU大量的内存中所可能使用的数据,对Barcelona的性能提高有相当的好处。
Barcelona不仅仅加入了新的间接分支预测器,它的数据存储器也扩大了两倍,并记录了更多的历史预测结果,从而提升分支预测的正确率。除此之外,Barcelona处理器也引入了类似Pentium M的专用堆栈管理器功能来减少处理量。Barcelona还将具有Out-of-order load execution(乱序载和处理)能力,某些指令在实际运行当中可以绕过其他指令的处理,而且指令的存储也可以不按顺序进行,这在某些环境下对效率的提高有着很关键的作用。
共享式L3缓存设计
AMD的CPU架构一直在缓存容量上落后于Intel,拥有整合内存控制器的K8架构仅依靠512KB的1.2缓存就能够击败当时的对手Pentium 4。直到现在主流的Athlon 64 X2也依然保持着512KD缓存。现在,考虑到多线程软件对多核心的要求,也需要更高速的缓存来保持更好的性能,AMD处理器的缓存终于走上扩容之路。
但AMD并不像Intel那样采用大容量L2 cache设计,而是在Barcelona中追加一个2MB的L3缓存,并且4个核心共享。在缓存设计上,Barcelona处理器的每个核心都有32KB+32KB的一级缓存,256KB的二级缓存和共用的2MB三级缓存,其中L1缓存和L2缓存依然分别是2路和16路,L3缓存则是32路。快速的32路L3缓存不仅可以更好地满足多任务并行,而且对单任务的执行也有着较大积极作用。尤其在3D运用方面,2MB的L3缓存将对性能产生极大的推进作用。
更为高效的内存控制器
Barcelona仍将整合内存控制器。Intel处理器必须通过前端总线共享内存,如果系统中存在多个处理器,这些处理器无法直接通讯,必须通过“前端总线—芯片组一内存”的链路实现数据共享,不仅内存延迟时间较长,而且耗费资源。虽然Intel未来将通过多个内存控制器和FB-DIMM模组来缓解问题,但随着处理器数量的增加,系统很容易出现内存资源紧张,导致协作效率越来越差。处理器的数量越多,这样的冲突就越频繁。为了尽可能降低冲突,Intel拿出的办法就是使用大容量的缓存,但缓存必须与内存数据保持同步,缓存容量越大,保持数据同步的资源开销就越大。
AMD的Barcelona架构拥有专门的内存控制器,可同时支持DDR3/DDR3/FB-DIMM等内存规范,每颗处理器都拥有属于自己的内存资源,访问延迟极低。其次,Barcelona通过5.2Gbps的低延迟Hyper Transport 3.0总线与其他的Barcelona处理器连接,如果采用32位总线,总线带宽将达到20.8Gbps,通过直连总线,系统内的多个处理器可以直接通讯,始终保持极高的任务协作效率。Barcelona处理器的内存控制器采用双64bit设计,两个控制器可以独立运行,使处理器执行多任务能力有一定提高。而且Barcelona还改进了数据预取器的数据寄存方式,直接将数据寄存入L1缓存中,相比K8架构中寄存入L2缓存的做法,新的数据预取器准确率更高,速度更快,内存性能及CPU整体性能将得益于此。
Barcelona还可以支持DDR3内存和FB-D1MM标准,非常弹性,可以让厂商和用户自己决定采用何种内存。
更为先进的省电技术
伴随核心的增加,随之而来的是功耗问题。Barcelona除了采用更先进的65nm制程外,还引入一项名为DICE(Dynamic Independent Core Engagement)的新技术。通过DICE功能,Barcelona的处理器核心和北桥部分将采用不同的电源通道,可令每个处理器核心都能使用独立的动态电源管理,ACPI层可以单独动态地控制每个核心功耗,当部分核心处于闲置时可把它的核心电压及频率降低,就不会影响正在全速运算的其他核心。当用户只运行双路任务时,Barcelona就只开启两颗核心,从而达到省电的目的。而当执行电脑多任务时,Barcelona就自动开启所有核心。
Intel Core微架构的电源管理机制基本上改良自Pentium M与Yonah的设计。处理器内各功能单元并非随时保持启动状态,可根据预测机制,仅启动需要的功能单元。同时Core微架构导入分离式总线,遇到特殊状况时,才会启动全部的总线宽度,平时仅启动——半的宽度,以节约电力。从理念方面,AMD的Barcelona在功耗控制上无疑更先进。
总结
尽管Barcelona架构比Core 2 Duo迟了一年左右发布,但是它仍然被AMD寄予厚望,担当起夺回技术领先地位的重任。AMD表示原生四核的CPU将比非原生四核的CPU性能强。采用Barcelona架构的服务器版本将会在2007年中上市,桌面处理器也会在第三季度上市。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
VSIA
光线,永远是3D画面中最为显眼的因素。适宜的光线会让画面看起来和谐美观,在DirectX 9时代,计算机对于光线的计算和处理达到了一个新的高度一特别是HDR技术的引入,使得细微光线和明暗对比都得到了重大的进步。但我们仍然没有停止对画面品质的追求。光线追踪技术开始加快了它普及的步伐。
游戏画面中,我们感觉场景中的物体缺少和光线的互动。这是因为目前的计算机实时计算水平让“光线”丧失了反射、折射、散射等特性。我们无法看到树叶、墙壁、云彩等环境物体自身的反射折射光。结果就算我们在画面中使用精密的顶点模型及大量细致的多层贴图,最后也无法摆脱计算机实时渲染画面带给人的“假”的感觉。
光线追踪——找回失去的光线
光线追踪(RayTracing),这个古老而年轻的术语或许将弥补未来光线的缺失。说它古老,是因为它早已应用在CG动画以及一些高级图形处理中。说它年轻,是因为受制于计算机硬件技术的缺陷和计算能力的不足,很少出现在实时运算的3D画面中。光线追踪实际上是以模拟真实世界中的物理状况为目标,对光线的各种照射和折射情况作出模拟的运算技术。在光线追踪中,我们可以通过模拟光的自然流动,并模拟有关折射、反射以及光在半透明物质中的阴影以及色渗的物理效果,完成对各类相关画面效果的处理。在现实世界中光源和它们所发出的光线的散射、折射、漫射等活动构成了光环境。在计算机处理中,往往由于硬件水平不足,只能减少光线的处理。一般情况下,对于烟雾、光线等物质的处理都采用非常简化的计算方法,一般处理中,单光源或者双光源的场景比较常见,多至4光源就不多见了,更不要说复杂的光线追踪处理。
目前我们可以在计算机上实现的是在一个物理场景中对于光线进行简单的追踪处理。仅仅处理那些最终能够“到达”屏幕的光线,并对光线的折射反射次数做出限制。这样能一定程度改善光照效果:
1.首先确定光源点。将观察者的眼睛作为光源点,仅仅计算能够“看到”的部分。
2.对于每束光,找出光束与表面最近的交叉点,确定交叉点的表面颜色,并且根据场景中的光照调整此颜色。
3.追踪计算每一束光线的照射,并且使用光线的折射或者反射光线再次计算,最后得到整个场景的光照效果。
实际操作远比描述的复杂。目前,一些游戏爱好者和厂商已经在开发相关光线追踪补丁。在著名游戏Quake4中加入了光线追踪的算法后整体游戏的光影效果为之改观。
追踪未来——下一个特效热点
在德国,一些玩家用20个AthlonXP 1800+处理器集群和一个自行设计的FPGA(现场可编程门阵列),完成了Quake 3的512×512画面光线追踪渲染,效果相当惊人。
光线追踪技术对于画面效果的改善是如此的明显,但也需要极高的硬件条件。光线追踪将在DircetX 10甚至更新的版本中被强力支持。在统一渲染架构的GPU/VPU成熟之后,光线追踪计算应该被显卡的强力浮点运算性能支持。可以预见的是,光线追踪必将成为未来显卡的基础支持功能,就像HDR那样火热起来,随之而来的是画面效果的又一次飞跃——我们越来越接近真实了。
Core 2 Quad的劲敌——AMD Barcelona四核处理器浅析
八 戒
AMD首款原生四核心处理器
相对于Intel的Kentsfield及此前的Quad FX平台,AMD强调Barcelona是首颗原生四核CPU。Kentsfield仅是将2颗双核cPU集成在一起,并不是原生四核处理器,Core 2 Duo芯片内部的双核心可以共享二级缓存,具有较高的协作效率,但如果两颗Core 2 Duo芯片要进行任务协作,缺乏直接的通讯渠道,只能通过“共享前端总线一北桥(内存控制器)一内存”才可以完成二级缓存的数据同步,这个过程需要耗费较长的延迟,从而导致运作效率的降低。而AMD的Barcelona是真正将四核心集成在一片晶圆上,最大好处就是降低了四核心之间传输瓶颈,而且借助内置内存控制器的特点大大降低内存延迟,使得对cPU的缓存的依赖也大幅减少。
全面提升浮点性能及SSE指令执行效率
Barcelona一项重要的改进就是和core2架构一样具备128位SSE执行位宽,一个频率周期内可执行一个128位SSE指令。配合完整的128位SSE执行单元以及庞大的执行单元数目,Barcelona架构可在一个频率周期内同时执行128位乘法、128位加法、128位数据加载与128位数据回存,或者是4个32位单倍浮点精度乘法与4个32位单倍浮点精度加法运算,将是目前的K8的两倍。Barcelona架构大幅改进的SSE效能,更利于多媒体应用。
除了扩展SSE执行位宽外,Barcelona处理器的浮点调度单元也扩展到128位,使Barcelona架构处理器在浮点运算单元(FPU)、向量SSE数据的分派、传输、解码速度三方面同时达到现有K8架构同频率处理器的两倍速度。这也使Barcelona架构在基于x87浮点指令的应用程序中的性能大幅提高。但在基于SSE/2/3的浮点应用程序中,Barcelona仍会输给Core 2 Quad Barcelona实现了单周期执行同一种并行SSE2指令,这点和Core 2 Quad是一样的,而K8需要2周期。不过,Core 2 Quad可以利用SSE2指令每个周期实现两个双精度乘/加运算,而Barcelona却受到限制,同时在整数应用中,Barcelona还是处于劣势。游戏性能由Core 2 Quad领先的局面,不会有太大的改变。
Barcelona对浮点单元做扩展也将带来一些问题,那就是Barcelona主频将难以提升,将抵消65nm工艺的优点。因此,早期的Barcelona在主频上将低于Core 2 Quad,在效率上也不是同频Core 2Quad的对手。Barcelona的最优竞争力是x87浮点应用,但是SSE/2/3浮点应用、游戏性能也将继续和K8一样弱于同频Core 2 Quad。
增强型分支预测机制及专用堆栈管理器
引入增强型分支预测器也是Barcelona一大特色。一般而言,CPU采用的分支预测技术的精准性决定该CPU构架最适合的流水线宽度和级数。分支预测器能够正确预测的数据就相当于cPu能够处理的最佳数据量,只有这部分数据能够成为被准确处理的信息。在K8时代,由于当时技术的原因,K8架构最重要的软肋就是没有间接分支预测器。而Prescott芯片加入间接分支预测器后,整体预测错误率降 低了12%,因此,AMD在Barcelona中增加了一个512路的间接分支预测器,相对直接分支预测器给予CPU一个精准的地址,间接分支预测器给予了CPU大量的内存中所可能使用的数据,对Barcelona的性能提高有相当的好处。
Barcelona不仅仅加入了新的间接分支预测器,它的数据存储器也扩大了两倍,并记录了更多的历史预测结果,从而提升分支预测的正确率。除此之外,Barcelona处理器也引入了类似Pentium M的专用堆栈管理器功能来减少处理量。Barcelona还将具有Out-of-order load execution(乱序载和处理)能力,某些指令在实际运行当中可以绕过其他指令的处理,而且指令的存储也可以不按顺序进行,这在某些环境下对效率的提高有着很关键的作用。
共享式L3缓存设计
AMD的CPU架构一直在缓存容量上落后于Intel,拥有整合内存控制器的K8架构仅依靠512KB的1.2缓存就能够击败当时的对手Pentium 4。直到现在主流的Athlon 64 X2也依然保持着512KD缓存。现在,考虑到多线程软件对多核心的要求,也需要更高速的缓存来保持更好的性能,AMD处理器的缓存终于走上扩容之路。
但AMD并不像Intel那样采用大容量L2 cache设计,而是在Barcelona中追加一个2MB的L3缓存,并且4个核心共享。在缓存设计上,Barcelona处理器的每个核心都有32KB+32KB的一级缓存,256KB的二级缓存和共用的2MB三级缓存,其中L1缓存和L2缓存依然分别是2路和16路,L3缓存则是32路。快速的32路L3缓存不仅可以更好地满足多任务并行,而且对单任务的执行也有着较大积极作用。尤其在3D运用方面,2MB的L3缓存将对性能产生极大的推进作用。
更为高效的内存控制器
Barcelona仍将整合内存控制器。Intel处理器必须通过前端总线共享内存,如果系统中存在多个处理器,这些处理器无法直接通讯,必须通过“前端总线—芯片组一内存”的链路实现数据共享,不仅内存延迟时间较长,而且耗费资源。虽然Intel未来将通过多个内存控制器和FB-DIMM模组来缓解问题,但随着处理器数量的增加,系统很容易出现内存资源紧张,导致协作效率越来越差。处理器的数量越多,这样的冲突就越频繁。为了尽可能降低冲突,Intel拿出的办法就是使用大容量的缓存,但缓存必须与内存数据保持同步,缓存容量越大,保持数据同步的资源开销就越大。
AMD的Barcelona架构拥有专门的内存控制器,可同时支持DDR3/DDR3/FB-DIMM等内存规范,每颗处理器都拥有属于自己的内存资源,访问延迟极低。其次,Barcelona通过5.2Gbps的低延迟Hyper Transport 3.0总线与其他的Barcelona处理器连接,如果采用32位总线,总线带宽将达到20.8Gbps,通过直连总线,系统内的多个处理器可以直接通讯,始终保持极高的任务协作效率。Barcelona处理器的内存控制器采用双64bit设计,两个控制器可以独立运行,使处理器执行多任务能力有一定提高。而且Barcelona还改进了数据预取器的数据寄存方式,直接将数据寄存入L1缓存中,相比K8架构中寄存入L2缓存的做法,新的数据预取器准确率更高,速度更快,内存性能及CPU整体性能将得益于此。
Barcelona还可以支持DDR3内存和FB-D1MM标准,非常弹性,可以让厂商和用户自己决定采用何种内存。
更为先进的省电技术
伴随核心的增加,随之而来的是功耗问题。Barcelona除了采用更先进的65nm制程外,还引入一项名为DICE(Dynamic Independent Core Engagement)的新技术。通过DICE功能,Barcelona的处理器核心和北桥部分将采用不同的电源通道,可令每个处理器核心都能使用独立的动态电源管理,ACPI层可以单独动态地控制每个核心功耗,当部分核心处于闲置时可把它的核心电压及频率降低,就不会影响正在全速运算的其他核心。当用户只运行双路任务时,Barcelona就只开启两颗核心,从而达到省电的目的。而当执行电脑多任务时,Barcelona就自动开启所有核心。
Intel Core微架构的电源管理机制基本上改良自Pentium M与Yonah的设计。处理器内各功能单元并非随时保持启动状态,可根据预测机制,仅启动需要的功能单元。同时Core微架构导入分离式总线,遇到特殊状况时,才会启动全部的总线宽度,平时仅启动——半的宽度,以节约电力。从理念方面,AMD的Barcelona在功耗控制上无疑更先进。
总结
尽管Barcelona架构比Core 2 Duo迟了一年左右发布,但是它仍然被AMD寄予厚望,担当起夺回技术领先地位的重任。AMD表示原生四核的CPU将比非原生四核的CPU性能强。采用Barcelona架构的服务器版本将会在2007年中上市,桌面处理器也会在第三季度上市。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。