首页 > 范文大全 > 正文

经典总在下一代

开篇:润墨网以专业的文秘视角,为您筛选了一篇经典总在下一代范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

NGC是任天堂的电视游戏机,NCG是核动力导弹巡洋舰,那么GCN是又是什么呢?这是AMD下一代的显示核心架构的暂用名称,全称是“Graphics Core Next”,直译也就是“下一个图形核心”。这就是我们接下来要介绍的主角,号称是对3D和并行计算的平衡性架构。

回顾历史,在DirectX 9之前的时代,AMD和NVIDIA两家总是在显示核心顶点渲染引擎和像素渲染引擎上做文章。进入DirectX 10时代后,AMD和NVIDIA的产品则彻底分道扬镳。AMD选择了传统的4D+1D的流处理器架构,而对手NVIDIA,在G80时代后,就彻底走向了1D统一流处理器的大道,并在每次更换架构的同时,大幅度加强GPU的通用计算和并行计算能力。

目前的GPU市场,纯3D图形的利润并不高,并且这部分市场还要受到越来越强大的集成显卡、APU的挤压。因此,NVIDIA很早就转向了利润更为肥厚,发展前景更为广阔的专业市场,依靠Quadro专业卡和Tesla计算卡,攫取了相当多的专业市场利润。而AMD也必须积极转向这个市场,才能在未来的竞争中占据一席之地。最近,AMD公布了其下一代全新图形架构“Graphics Core Next”(下一代图形核心,简称为GCN)的详细资料和规格,这次AMD的改革可谓翻天覆地。

传统VLIW无法适应新的需求

传统的AMD GPU采用的是VLIW(超长指令流)架构。比如之前的Radeon HD 5800系列,使用的是VLIW 5,也就是每一个流处理器组中拥有四个ALU单元和一个多功能处理单元。在新的Radeon HD 6900系列中,AMD又将它调整为VLIW 4,每一个流处理器组中设计了四个对等的ALU单元。AMD这种VLIW架构的满载理论值相当高。

理论归理论,问题在于实际应用中VLIW架构效能表现距理论值有相当大的差距。AMD的这种设计要求每次处理的指令组恰好满足一组流处理器的需求,比如每次都来4D+1D的指令,这样可以令Radeon HD5800满载吞吐,或者每次都是4D指令,这样Radeon HD6900系列也可以满载,计算效率可以达到100%。但实际上,大量的指令都是随机到来的,有些只需要1个ALU计算,有些需要2个ALU计算,在这样的情况下,AMD的这种设计最差的情况下只能发挥20%的计算效能(平均也不到70%),大量的晶体管在等待中被浪费了。再加上VLIW本身需要编译器的很好优化,对于那些时常涌现的新应用、新计算,编译器肯定难以跟上,架构效率就更难令人满意了。

而VLIW架构在通用计算方面的弱点在于本身没有预调度机制,在指令执行过程中无法进行动态调度。除此之外,VLIW对编译器的依赖相当大,需要强大的编译器进行非常完美的编译工作才能良好运行。可是VLIW命令又较为复杂,进行人工优化和手工调试难度也相当高。这样的“特点”令它在通用计算的程序编写上变得相当困难。通用计算和图形计算在程序编写上有很大不同,程序员往往需要多次编译、调整、优化代码才能最终达到较好的效果,但VLIW无疑是通用计算程序员的恶梦,困难的编译和反汇编工作让其始终难以大规模发展,并且很难预测实际性能表现,进一步对程序做出优化也在这些困难面前变得更为遥远。

现在,AMD对GPU架构做出了彻底改进,改用全新的non-VLIW SIMD。这个架构将之前VLIW的指令级并行改成了线程级并行。虽然从字面来看只是将“指令”改成了“线程”,但背后的意义相当深刻。

全新non-VLIW SIMD架构

在non-VLIW SIMD架构中,传统的流处理单元被新的计算单元(Compute Unit,简称CU)替代。每一个CU中有四个SIMD单元,每个SIMD单元又由16个标量ALU组成。AMD还为每一个CU配备硬件分支单元、16KB的纹理和数据L1缓存,64KB本地数据存储单元。

传统的VLIW由于过于依赖编译器,很难在通用计算上有良好的表现,新的硬件控制单元则可以在各种情况下不过于依赖编译器,从而让核心达到很高的效率。比如在遇到完全不相关的指令时,效率可以保证100%,而遇到VLIW很难处理的有相关性的指令时,硬件调度可以允许一定的乱序执行存在,因此效率并不会有太大的下降。

新架构的优势还不止于此。除了提升效率,加强灵活性外,新架构的适应性也大大提升,特别是对编译器要求的降低,使得编译器从繁重的调度任务中转移出来;另外,新架构可以让程序员更为从容地优化指令,进行细致的性能调节和优化。这些对AMD未来在通用计算上的发展都是相当有利的。

并行计算的新特性

新架构为GCN带来了并行计算方面强大的性能和功能。GCN将会全面支持C/C++以及其他高级语言,包括指针、虚拟函数、异常处理、递归循环等都会得到良好支持。CPU和GPU程序将会在同样的程序下编程,使用的也是程序员最为熟悉的C++等,并且大部分特性都可以支持,有效提高AMD产品在通用计算方面的接受程度。而对消费者来说,这意味着未来可以有大量直接使用GPU加速的程序涌现。

另外,新架构还加入了系统的统一内存寻址空间,并且改用了X86 64位的寻址空间。这就可以让CPU和GPU的寻址空间统一起来,互相调用数据不再是难题。这令程序员在编写程序时不用特意区分CPU和GPU,因为它们都在同一内存空间中,因此也可以随时随地应用系统内存,更为轻松方便。

图形方面大幅度改进

图形部分AMD也进行了大刀阔斧的改革。AMD对缓存设计进行了调整。传统的AMD缓存设计依旧维持着最传统的图形缓存方案,一般都设计了只读缓存,灵活性相当差,而新的架构中,AMD设计了只读的L1缓存和容量更大、自由度更高的L2缓存,并将缓存和显存控制器、ROP等单元进行搭配。这样不同档次的显卡搭配不同的显存控制器位宽和ROP数量,就能有效控制缓存的大小,节约晶体管。

在任务分配和效率执行方面,AMD新设计了全新的异步计算引擎,这个引擎的作用类似之前的超线程分发器,主要作用都是接受任务,并自动调配给不同的CU单元进行处理。这种新的架构更注重并行处理的操作,对资源分配、任务切换以及不同的任务优先级排序等拥有更好的性能,并且还具有一定乱序执行能力。核心可以通过调整优先级别进行任务排序,从而减少等待时间,节省资源。

在很多用户最为关心的几何能力部分,包括曲面细分、几何转换等,还有置换贴图等部分,AMD的GCN架构由于弹性和扩展能力更出色,处理能力会有明显的增强。

AMD的新未来

GCN在架构改进上的力度可谓空前。之前AMD都是在一个架构上进行调整,补充,以不断适应未来的发展。而这次的全新架构让人们充满了期待。目前,显示领域图形和计算的区分已经不再泾渭分明,NVIDIA在DirectX 11后,一步一步的更为接近计算,同时在图形上也带来了大幅度的提升。现在AMD也在走这样的道路,这也是AMD未来的希望。我们应该希望AMD的新架构带来一个更为有力、竞争更为激烈的未来。