电脑装配网

温故而知新 新DirectX成熟

 人阅读 | 作者xiaofeng | 时间:2023-09-17 01:49

从GPU的出现到今天已经23年,从ATI/英伟达两极变成AMD/英伟达两极和全面转向PCIe显卡则已有17年,甚至连如今的RTX系列、Navi核心等产品,都已经是3、4年前的产品了。即将到来的新一代显卡RTX 40和RX 7000,则毫无疑问地将继承前辈们的很多特征,同时新秀的很多能力,我们也需要在旧显卡的基础上进行讨论。所以在等待新一代显卡的时候,回顾和了解旧产品的一些特征,其实也是很有必要的。

  这里要说明的是,考虑到英特尔独显仍不成熟,而下一代产品遥遥无期,本次我们仅介绍即将到来的英伟达与AMD显卡,关心英特尔显卡的朋友们可以期待未来的相关介绍。

从图像加速到图形处理

  在21世纪的前夜,第一款GPU(Graphic Processing Unit,图像处理器)——英伟达GeForce 256(图1)的横空出世,宣布了图形芯片和显卡的新时代来临,它和随后跟进的ATI Radeon 256(图2),将其他转换速度不够快,仍然定位在图形加速芯片、图形加速卡的厂商们远远甩在身后。它们对市场的颠覆如此之大,以至于90年代如日中天的3D加速卡厂商3dfx都快速衰落,在2000年就被英伟达将收入囊中。

(图1)

(图2)

  以现在的观点看,21世纪前10年,GPU和当代显卡都还处在摸索阶段,逐步理清了一些思路,完善了设计,才能逐步形成了眼下显卡的设计。其中最重要的,当然就是将定位于配合处理器的图形加速转向以“我”为主的图形处理,比如以GeForce 256、Radeon 256为代表的第一代产品,最重要能力就是将T&L(Transforming&Lighting,光影转换)运算从处理器中释放出来,在大幅提升画面光影真实度(图3)和处理速度的同时,大大减轻处理器的运算负担。这种担负起更多图形处理运算负担,解放处理器的设计,也是之后GPU与显卡设计的方向。

(图3)

  随着GPU的发展,OpenGL与DirectX的API之争也落下了帷幕,最终所有的消费级GPU都开始面向DirectX做优化。当然,这一段时间的DirectX也并不是很完善,由GPU厂商独创的技术也有很多被吸收到其中,比如多重纹理贴图、凹凸贴图(图4)等等,仍是一个3D API与GPU、显卡“双向奔赴”的年代,与现在GPU、显卡直接按照DirectX的需求设计不同。

(图4)

==小知识:

API的全称为Application Programming Interface,即应用程序编程接口。对于显卡、GPU和游戏等图形应用来说,指的就是图形应用与GPU之间的指令接口,甚至可以说在某种程度上接近处理器指令集的意味。顾名思义,OpenGL就是一种开放的图形指令接口,曾经是专业图像处理乃至很多3D游戏的基础;而DirectX则是微软推出的应用程序指令接口,其中既有2D和3D图像相关指令,也有音频等功能的指令,最新的版本DirectX 12已经深度融入了Windows系统和最新的Xbox游戏主机中。

==小知识总结

  在硬件方面,尽管当时的显卡与现在还有一定的差别,但也已经出现了很多延续至当代的设计,比如显卡的架构基本定型,接口则从专用的AGP通道转向了通用型的PCIe通道,还衍生出了面向笔记本电脑的低功耗产品等。而在市场上,随着3dfx的Voodoo、Matrox的MGA、Imagination的Power VR、S3的Savage等品牌退出消费电脑市场,以及AMD对ATI收购、吸收的完成,如今大家熟悉的N/A两强争霸格局也正式确立,甚至在细节上,两者以同架构不同配置产品来划分市场的方式等也逐渐成熟。

  当然,从今天的高度回头看当时的GPU与显卡,则会看到它们仍存在不少的局限性以及一些设计理念上的“弯路”。比如把GPU的渲染管线(Shader Pipeline)明确区分为顶点渲染(Vertex Shader,简称VS)与像素渲染(Pixel Shader,简称PS),它们在不同的场景中各有擅长。比如波浪起伏的水面(图5)或毛发需要处理大量的复杂顶点运动,就会大量调用顶点渲染单元,而处理烟雾、光线时则没有太多明确的形状,所以更偏向使用像素渲染单元,这使得渲染管线总是不能满载。英伟达与AMD的各代GPU常常会选择不同的VS与PS比例,均宣称是最适合游戏的比例,但其实很难符合不同时代、不同公司、不同引擎、不同游戏的需求。为了提升效率,满足游戏越来越高的性能和效率要求,迫切需要对整体架构进行一次改变。

(图5)

统一架构时代

  时间来到2010年,DirectX 10终于逐渐走向了主流,它对GPU的需求成为了一直延续至今的基本架构设计,那就是统一渲染架构(Unified Shader Architecture)。它要求GPU的渲染管道可以同时用于顶点或像素渲染,这样就不存在两种渲染单元的比例问题,既可以尽量满载来提升游戏性能,也能在能力过剩的情况下,按应用的实际需求,仅开启部分渲染单元来降低功耗。

  另一方面,这种设计让GPU的处理管线变成了一种通用计算核心,与处理器的核心很相似,因此GPU也就成为了另一种通用处理器,可以参与更多的计算任务。AMD在此基础上推出了融合处理器与GPU的设计(图6),希望以OpenCL异构计算技术来提升性能,支持相应技术的应用,可以把简单而数量巨大的运算,例如简单的表格处理,放到GPU部分来处理,大大提升运行效率。

(图6)

  与AMD将已有显卡核心融入处理器的做法不同,英特尔在处理器中加入了新的显示核心——核芯显卡,简称为核显(图7)。它并不能像结构更复杂的AMD集成显卡那样负责很多运算任务,但因为采用了统一架构设计,因此也可以用于视频处理等运算的加速,而使用这一设计的酷睿处理器,就是当今大家已经熟悉的智能酷睿——酷睿i系列。

(图7)

  回到独显市场,DirectX 11可以看作是高效版的DirectX 10,它的生命力及其强大,当前推出的大部分游戏和应用仍支持这一API,因此相应的产品如英伟达的GTX 400系列和AMD的HD 6000系列也可以支持当代大部分游戏,在游戏或软件的配置需求中仍是常见的面孔。当然,DirectX 12也很快出现,只是因为它与操作系统过深的绑定且进步幅度不够大,因此在这段时间一直没有成为主流。

  在这期间也出现了一些非常特别的产品和技术,例如HBM显存及相应的AMD RX Vega系列显卡等,但它们因为种种原因最终没能成为主流。而且这些技术也没有被彻底淘汰,例如HBM显存就在面向高端运算的专业加速卡中与同样特化设计的GPU芯片配合,成为高端工作站、服务器,乃至超级电脑的组成部分。而Vega显示核心则成为了AMD新一代显示架构的基础之一。

翻天覆地新时代

  从2018年8月到2019年,英伟达的RTX 2070/2080系列和AMD的RX 5000陆续面世,开启了显卡的新时代。这两款产品都在架构上进行了大幅更新,RTX 20系列甚至因为增加的光线追踪(Ray Tracing,简称RT)能力而将万年代号GTX变成了RTX。

  RTX 20系列不仅新增了光线追踪单元以提供相应能力,还拥有AI运算单元,可以提供新概念的DLSS帧速优化技术。这种帧速优化技术综合了传统的多重采样图像优化技术和图像拉伸式帧速提升技术。它以更低的分辨率渲染后放大到较高分辨率以提升帧速,不过同时还会通过前后帧的采样、分析来进行优化画质(图8)。

(图8)

  更有趣的是,其优化运算是通过AI单元来智能实现的。而且英伟达会在高端服务器上长时间运行游戏后找到最佳的优化方案,再在驱动程序中推送给RTX显卡,以获得帧速最高、画质最好的效果。

  RX 5000则是AMD正式启用RDNA新架构的第一代产品,它的基本能力可以说是中规中矩,主要目标就是提升效率,缺少RTX显卡的那些新功能、新特效加持。但其内部变化却可以说是更大的,因为从整体架构看,它的核心更像是已经被证明非常成功的锐龙处理器,多组流处理器中间甚至可以看到各级缓存的分布,整体非常简洁(图9)。

(图9)

  当然,作为新架构的第一代产品,RTX 20和RX 5000的问题都相当多,其后出现的RTX 30与RX 6000系列就更像是改进版产品。其中RTX 30主要是增强效率,提升了光追、DLSS等新技术的表现,而RX 6000的变化更大,增加了光追单元、Infinity Cache等配置,支持新的帧速优化技术FSR等,在性能方面终于可以和RTX 30一较高下了。

  在这次产品更新中还出现了比较有趣的现象,RTX 20系列曾经标配的Type-C接口(图10)在RTX 30系列中取消,但RX 6000却将其加入了产品中。这种类似光追、帧速优化技术的相互借鉴,在两大GPU架构设计分化的今天,反而越来越明显了。

(图10)

你的名字 读懂新显卡的型号

  2022年第14期《看显卡 不只是流处理器》介绍了近期显卡的命名规则,从当前的信息看,新一代显卡也仍然延续了之前的规则,不过即使看到了这些命名,知道所谓的高中低档之分,还是会有很多朋友并不明白其中的深层含义。那么,笔者就把这些看起来高大上的简称拆开说明一下,让大家能够更深入地理解,应该也会能更好地理解和记忆它们吧。

  2022年第14期《看显卡 不只是流处理器》介绍了近期显卡的命名规则,从当前的信息看,新一代显卡也仍然延续了之前的规则,不过即使看到了这些命名,知道所谓的高中低档之分,还是会有很多朋友并不明白其中的深层含义。那么,笔者就把这些看起来高大上的简称拆开说明一下,让大家能够更深入地理解,应该也会能更好地理解和记忆它们吧。

  ●Radeon RX 7000

  Radeon是ATI为其GPU(图形处理器)产品选择的品牌名,被AMD所继承。其官方中文名为“镭龙”,是为了与AMD产品如速龙、锐龙的命名规则统一,其实它原本的含义就是镭元素,这是居里夫人发现的,人类了解的第一种放射性元素,放射线带来的璀璨光华以及镭元素对物理学、人类科学乃至整个人类的开创性,应该是选用这一名称的主要原因。不过在更早的图形芯片时代,ATI还有Rage(图11)等多种产品型号名称,Radeon可能也有延续其R系列字头的含义。

(图11)

  RX这个代号中的X其实是罗马数字的10,而这一名称则来自AMD显卡曾经以R5、R7、R9区分的档次。不过在RX 480/Vega时代,为了说明新产品比之前的R9型号更强力而启用了RX(R10)的代号,其后这一代号就被赋予了所有新的GPU/显卡。

  至于在RX 7000系列型号中常常会出现的后缀XT,则是增强版的意思,其实当前锐龙处理器使用X也是源自XT的简写。

  ●GeForce RTX 40

  与Radeon一样,GeForce也是进入GPU时代后的商标名,是几何(Geometry)与力量(Force)拼合而成的单词,它也有中文名“精视”,但除了官方新闻、公报外很少被使用。

  在前文中已经提到,RTX是强调其拥有光线追踪功能而从GTX演化来的代号,而GTX的全称为GT extreme,是表示高端显卡的定位。早期的一些点亮卡、入门显卡还会使用GT这一代号,如GT 1030(图12),但近几代产品中已经没有再见到。

(图12)

  同样的,在RTX 40系列中,也很可能会看到后缀为Super或Ti的型号,它们均表示比不带后缀的相应型号配置或频率更高一些,前者当然就是更强的意思,而后者的含义为“钛”金属,一般是同档次中最强的型号。

展望 未来显卡的发展方向

  RTX 30与RX 6000虽然已经非常强大,但问题却依然存在。比如光追对性能的过度消耗,即使是光追引擎已经发展了两代的RTX 30也不能保证开启最高光追效果后的流畅度,更不要说新手RX 6000系列了。其实细看DLSS和FSR这样的帧速优化技术,就会发现虽然官方表示是为了满足高分辨率游戏的需求,但从全高清1080P就可以启用的设计,已经说明了改善光追表现,至少是这些技术很重要的目标之一。

  此外,尽管当前帧速优化技术的表现已经很好,可以获得接近原生画面的效果,但从效率上看,需要有大量资源投入采样、分析,是一种对运算资源的浪费;而且每一帧画面都需要综合前后帧画面修正(图13),实际上说明显示器上呈现的必然不是显卡已经处理的最新帧,显然会造成画面延迟,这与当前追求的低延迟显示产生了严重冲突。

(图13)

  很明显,对于未来的显卡来说,提升光追能力,甚至将其作为一种很普通的运算,而不再是消耗大量资源去追求的“昂贵”特效,是亟待解决的问题。从当前的消息看,至少RX 7000是将这一能力作为非常重要的提升来宣传的,希望RTX 40也是如此。

  另外一点迫切需要解决的问题是显存,它的设计也在很长的时间内走上了一条弯路,虽然在转向PCIe通道时,GPU、显存与内存、CPU的更快通信曾经是一大需求。但随着显卡的不断发展,板载显存似乎成了唯一的解决方案,为了满足一些很少遇到的极端情况,抑或是纯粹为了商业噱头而出现的高配显存方案让用户不满,但入门甚至主流显卡中所谓的“正常”显存容量,在应对高端游戏或图形应用时,又有可能会“爆显存”,但原本可以解决这一问题的PCIe通信能力被有意无意地忽略了。

  其实在PCIe 4.0通道逐渐成为主流后,其提供的充足带宽完全可以满足GPU、显存与内存、处理器的通信。AMD和英伟达已经分别开始提供相应的技术,只是当前还只开放了处理器访问全部显存的权限(图14)。要真正发挥其能力,甚至更进一步,让GPU可以更好地访问内存,就需要未来的显卡,甚至未来处理器平台的更好支持与协作。随着同样拥有强大处理器平台的英特尔进入独显市场,以及PCIe 5.0超高带宽通道的普及,这一天应该已经离我们不远了,让我们一起期待一个无需花钱购买超配显存,同时也不用担心爆显存的显卡新时代吧。CF

(图14)


文章标签:

本文链接:『转载请注明出处』