5188开元官网:NVIDIATuring架构解析:追光逐影,成败未定

发布日期:2024-03-05 04:36浏览次数:

本文摘要:

正如之前所说,NVIDIA正在通过混合图形来希望推展消费级GPU构建脱胎换骨的改变。而使NVIDIA迈进这一步的背后原因,除开“动态光线跟踪是计算机图形学的圣杯”这一点之外,还有很多打破了图形纯粹主义的其他潜在动机。光线跟踪第一课:whatwhy由于NVIDIA用作光线跟踪的RT Core是Turing架构的两项技术基石之一,因此在我们了解理解Turing架构之前,最差再行辩论确切什么是光线跟踪,以及为什么NVIDIA不会在其上投放如此多的芯片资源。

简而言之,光线跟踪是一种图形方式,可仿真光在现实世界中的展现出(光线、反射等)。构建它的仅次于问题在于它几近于无底洞一样滑稽的性能的市场需求,如果用于最完整的方法来尝试计算出来场景中每个光源收到的所有光线,将不会在场景中跟踪到无穷无尽的光线。

多年以来,算法工程师们为光线跟踪研发了许多优化措施,其中最重要的是把“光照”这一非常简单的概念反转过来,不是从光源开始跟踪光线,而是从屏幕、从观测者的视点逆向跟踪光线,这样之后可以只计算出来实际抵达屏幕的光线,大幅度削减所需的计算出来量。然而即便用于了还包括此法在内的许多优化方式,光线跟踪对性能的市场需求仍然低的难以置信。除了最基本、最坚硬的光线跟踪之外,其他任何情况都仍然远超过了动态图形的范围。

这些优化技术意味着是让光线跟踪可以在计算机上以比较“合理”的时间已完成,当然这个“合理”是以小时或天来取决于的,这要各不相同场景的复杂程度以及你所希望超过的图形效果。实质上到目前为止,光线跟踪仍然被主要是3D动画电影等“离线”场景。光栅化图形的是是非非光线跟踪的高成本意味著它还无法用作动态图像图形,因此计算机行业从一开始之后用于了一种取名为光栅简化的图形方法。

虽然名字沾一个“光”字,但整个光栅化图形中只不过显然没“光线”的概念。光栅化(Rasterization)所指的是3D几何切换为2D像素的过程,所有的画面特效都只是针对一个个像素的操作者。

当游戏开始图形一帧画面时,首先由CPU分解游戏场景中所有物体的顶点,然后把所有顶点的座标信息发送给GPU内的几何单元。几何单元以屏幕方位为基准建构出有可用空间,将这些顶点按照座标移往到空间中,紧接着将顶点连接成线框,结构出有物体的轮廓,然后在表面覆盖面积上一层具有带上光照信息的底层纹理作为蒙皮。到这一步,我们的游戏画面之后初具几何形态。

接下来乃是整个光栅化图形流程的核心:光栅化,GPU内的光栅化单元(Rasterizer)依照线投影关系,将整个可用空间从三维立体形态压成一张二维平面。之后流处理器再行根据场景中物体之间的几何方位关系,通过各种图形算法,确认哪些像素暗有多暗,哪些像素暗有多亮,哪些像素是低光,哪些像素是阴影。在流处理器忙着计算出来像素信息的同时,GPU内的纹理单元也开始将预设的“整张”纹理材质剪裁成画面所需的形状。最后,流处理器和纹理单元分别把计算出来好的像素信息和剪裁好的纹理材质提交给正处于GPU后端的ROPs,ROPs将二者混合填满为最后画面并输入。

除此之外,游戏中雾化、景深、动态模糊不清和抗锯齿等后处理特效,也是由ROPs已完成的。看见这里应当明白,我们看见的每一帧游戏画面,都是GPU所画给你的一张3D立体画而已。3D立体画看上去真为不现实,各不相同绘画者的水平如何;而光栅化图形出来的画面真为不现实,各不相同图形算法否先进设备和完备。

混合图形,光线跟踪重返光栅简化的非常简单和较慢要求了其对现实世界中画面的仿真是受限的,这也造成了光栅化普遍存在光照、光线和阴影不大自然等缺失。如果光栅化是如此不精确,游戏如何进一步提高其图像质量?当然可以之后这么回头下去,光栅化解决问题这些问题并非不有可能,只是所必须的计算出来性能将不会高速收缩。

就像马利亚一个谎要用十个谎来圆一样,某些情况下想要用光栅化图形分解细致的画面,甚至比光线跟踪的大自然过程更加简单。换句话说,与其在光栅化这种本质是视觉愚弄的图形方式上消耗这么多性能,不来把这些希望投放另一种可以精确图形虚拟世界的技术上?2018年,整个计算机行业都在思维这一问题。而对于NVIDIA来说,行进的道路仍然是纯粹的光栅化,而是混合图形:将光栅简化与光线跟踪结合,其点子是在有意义的地方用于光线追踪——用作灯光、阴影和其他所有牵涉到光的相互作用的内容,然后用于传统的光栅化来处置其他一切,这也正是Turing架构的核心思想所在。

这意味著开发人员可以两全其美,根据市场需求均衡光栅简化的高性能和光线跟踪的高质量,而需要立刻从光栅化函数调用到光线跟踪并丧失前者的所有性能优势。到目前为止,NVIDIA及其合作伙伴所展出的案例都是很更容易构建的,比如准确的动态光线和更佳的全局光照,但显而易见混合图形可以扩展到任何与光照涉及操作者。

然而,NVIDIA、微软公司和其他公司也被迫为其从零开始创建一个生态系统,他们不仅要向开发人员促销光线跟踪的优点,而且还要教教开发人员如何以有效地的方式构建它。不过我们现在依旧可以可以再行来讨论一下光线跟踪,想到NVIDIA如何通过建构专用硬件单元,将动态光线跟踪变成现实。边界体积层次结构可以说道,NVIDIA在Turing上下了相当大的赌局,传统的GPU架构可以高速处置光栅化图形,但并不擅长于光线跟踪这项任务。

因此NVIDIA必需为光线跟踪加设专用硬件单元,而这些额外的晶体管和电力消耗却对传统的光栅化图形没必要的助益。这部分专用硬件单元相当大程度上将被用作解决问题光线跟踪的最基本问题:判断光线与物体的共线情况。

这个问题最少见的解决方案是将三角形存储在一个非常适合光线跟踪的数据结构中,这种数据结构称作BVH(边界体积层次结构)。从概念上谈,BVH比较非常简单,它并不是检测每个多边形以辨别否与光线共线,而是检测场景的一部分以查阅否与光线共线。

如果场景某部分与光线共线,则将其细分为较小的部分并再度检测,依序继续下去以后单个多边形,此时光线检测获得解决问题。对于计算机科学家来说,这听得一起很像二元搜寻的应用于,而且显然如此。

每次检测都容许弃置大量选项(在光线跟踪中为多边形)作为有可能的答案,之后可以在很短的时间内抵达准确的多边形。BVH反过来又存储在本质上是树根数据结构的东西中,每次细分(边界板)都存储为其父边界框的子节点。现在BVH的问题是,虽然它彻底增加了所须要辨别的光线共线量,但这些针对的都是分开一条光线,当每个像素都必须多条光线经过时,每条光线都必须展开大量检测,它的计算出来量仍然不较低。这也是为什么用于专门的光线跟踪单元展开硬件加速如此最重要的原因。

承继Volta精神的Turing架构我们来想到这次的Turing架构,新的Turing SM看上去与上一代的Pascal SM十分有所不同,但理解Volta架构的人认同能注意到Turing SM与Volta SM是十分相近的。与Volta一样,Turing SM被区分为4个子核(或处置块),每个子核具备单个warp调度器和调度单元,而Pascal的2个分区设置是每个子核的warp调度器具有两个比较的调度端口。从广义上谈,这样的变化意味著Volta和Turing丧失了在一个时钟周期内从线程收到第二条非倚赖指令的能力。

Turing有可能与Volta在两个周期内继续执行指令完全相同,但调度程序可以在每个周期收到独立国家指令,因此Turing最后可以通过这种方式确保双向指令级分段(ILP),同时依然具备两倍于Pascal的调度程序数量。正如我们在Volta中看见的那样,这些变化与新的调度/继续执行模型密切连接,而Turing也有独立国家的线程调度模型。与Pascal有所不同的是,Volta和Turing都有每个线程的调度资源,有一个程序计数器和每个线程的堆栈来追踪线程的状态,以及一个发散优化器来智能的将活动的同warp线程分组到SIMT单元中。

就CUDA和ALU(算术逻辑单元)而言,Turing子核具备16个INT32单元,16个FP32单元和2个Tensor单元,与Volta子核的设置完全相同。用于像Volta这样的合并INT/FP数据路径模型,Turing还可以同时继续执行FP和INT指令,而这与RT Core密切相关。

Turing与Volta的不同之处在于Turing没FP64单元,其FP64的吞吐量只有FP32的1/32。虽然这些细节有可能更加偏向于技术方面,但Volta的这种设计或许是为了最大化Tensor Core的性能,而最大限度的增加了破坏性并行性或与其他计算出来工作阻抗的协商。

对于Turing的第二代Tensor Core和RT Core来说情况也是如此,其中4个独立国家调度的子核和粒度线程处置对于在混合游戏导向工作阻抗下构建最低性能十分简单。在内存方面,Turing的每个子核都有一个类似于Volta的L0指令内存,具备完全相同大小的64 KB寄存器文件。在Volta中,这对于增加Tensor Core的延后很最重要,而在Turing中这有可能某种程度不利于RT Core。

Turing SM每个子核也有4个读取/存储单元,高于Volta中的8个,但依然维持4个纹理单元。新的L1数据高速缓存和共享内存(SMEM)更进一步向下拓展,它已被改良并统一为单个可分区内存块,这是Volta的另一项创意。

对于Turing来说,这看上去是一个人组的96 KB L1/SMEM,传统图形工作阻抗分成64KB专用图形着色器RAM和32 KB纹理高速缓存和寄存器文件阻塞区域。同时,计算出来工作阻抗可以将L1/SMEM区分最少64 KB作为L1,其余32 KB作为SMEM,反之亦然(Volta的SMEM最低可配备为96 KB)。RT Core:混合图形和动态光线追踪在Turing上,光线跟踪并无法几乎代替传统的光栅化图形,而是作为“混合图形”的一部分而不存在,而且“动态”也不能在每个像素只通过少量光线并相结合大量减震的情况下构建。

出于性能原因,现阶段开发人员将有意识和有针对性的利用光线跟踪来构建光栅化无法构建的部分细致效果,例如全局灯光、环境光遮挡、阴影、光线和反射等。光线跟踪某种程度也可以仅限于场景中的特定对象,并且用于光栅简化和z缓冲器替换主光线感应,而仅对次光线展开光线追踪。凭借光线跟踪在计算机图形领域的重要性,NVIDIA Research非常宽一段时间内仍然在研究各种BVH构建,以及探寻光线追踪加快的架构问题。

不过NVIDIA未透漏有关RT Core或其BVH构建的许多细节。RT Core与Tensor Core有所不同,Tensor Core更加看起来与FP和INT核心一起的FMA阵列,而RT Core更加看起来典型的修理IP块。与子核中的纹理单元十分相近,RT Core的指令被路由到子核之外,在从SM接管到光线探测器后,RT核心之后自律迭代BVH并继续执行光线共线检测。这种类型的“迭代和交叉”相同函数光线跟踪加速器是一个众所周知的概念,多年来早已有很多构建,因为迭代和交叉检测是计算出来密集程度最低的两种任务。

相比之下,在着色器中迭代BVH将必须每条光线感应数千个指令槽,所有这些都用作检测BVH中的边界板交叉点。RT Core还处置一些内存操作者的分组和调度,以最大化横跨多个光线的内存吞吐量。与许多其他工作阻抗一样,内存比特率是光线跟踪的一个少见瓶颈,也是NVIDIA Research多篇论文辩论的焦点。

考虑到光线跟踪不会产生十分点状和随机的内存采访,SIP块中有可能还有一些内存和光线缓冲区。Tensor Cores:将深度自学推理小说用作游戏图形尽管Tensor Cores是Volta的典型特征,但此番Turing上配备的第二代Tensor Core毕竟青出于蓝。

第二代Tensor Core的主要变化是减少了用作推理小说的INT8和INT4精度模式,通过新的硬件数据路径落成,并继续执行点累积面有INT32乘积。INT8模式的运算速度是FP16的两倍,或每个时钟2048次整数运算;INT4模式的运算速度是FP16速率的四倍,或每个时钟4096次整数运算。第二代Tensor Core依然具备FP16模式,并且需要反对显FP16模式而没FP32累加器。

虽然CUDA 10还没出来,但强化的WMMA操作者应当需要说明任何其他差异,例如操作数的额外可拒绝接受矩阵大小。GeForce RTX和Turing所带给的不仅是RTX这一全新品牌命名,还有将Turing的所有功能不属于一体的NVIDIA RTX平台,还包括:NVIDIA RTX平台:包括所有Turing功能的标准化平台,还包括高级着色器NVIDIA RTX光线跟踪技术:RTX平台下光线跟踪技术的名称GameWorks Raytracing:光线跟踪减震模块的GameWorks SDKGeForce RTX:用于NVIDIA RTX动态光线跟踪与游戏涉及的品牌GeForce RTX:显示卡品牌NGX在技术上隶属于RTX平台,其最不具代表性的是DLSS(深度自学超级取样)技术。DLSS用于专为游戏而另设的DNN(深度神经网络),用于超高质量的64倍超级取样图像或现实画面展开训练,进而通过Tensor Core来推测高质量的抗锯齿结果。

标准模式下,DLSS以较低的输出样本推断出高倍抗锯齿的结果,在目标分辨率上可超过与TAA相近的效果。由于牵涉到深度自学,NVIDIA正在将纯粹的计算出来/专业功能推上消费者领域。

在Turing上,Tensor Core可以加快DLSS等特性,也可以加快某些基于AI的减震器,以清扫和校正动态光线跟踪图形的画面。小结Turing架构和Geforce RTX的公布,标志着计算机图形学在消费级市场上开始从欺诈的视觉愚弄向着现实的追光弃影发展。到目前为止,业界对它们的赞誉也仍然是从不吝惜。

虽然Turing架构加设了专用的光线跟踪单元RT Core,并相结合Tensor Core来展开AI减震,但在耐心客观的思维下,根据(公众号:)的理解,在1080P分辨率下,光线跟踪不具备基本可用性的入门门槛是每帧画面包括1亿条光线,如果以60fps为标准,就必须GPU超过每秒最少能处置60亿条光线的计算能力。回过头来看刚公布的Geforce RTX 2080Ti/2080/2070三款显示卡,它们的光线跟踪性能分别是每秒处置100亿/80亿/60亿条光线,并且NVIDIA或许回应未来更加较低的Geforce RTX/GTX 2060等显示卡将仍然反对光线跟踪。知道这是不是凑巧,Geforce RTX 2070的光线跟踪性能刚刚好压在了上面所述不具备基本可用性的入门门槛上,这样来看,更加低端的显示卡不反对光线跟踪也是情有可原。

此外,或许是目前的光线跟踪算法过分执着修改,对光影关系的还原成仍有可能经常出现错误。例如在NVIDIA用战地V这款游戏展示RTX效果时,汽车对于火光的光线之后经常出现了一处错误,红框处的车灯罩是背对着车后的火光的,从角度上来看几乎不应当有火光的光线:且根据最近流入的性能测试来看,即便是最低端的GeforceRTX 2080Ti在打开光线跟踪后,也仅有能在1080P下将帧数保持45fps左右,似乎还要大幅度高于理论性能。

种种情况指出,现阶段的光线跟踪仍然游走在“有可用性”的门槛边缘,Turing和Geforce RTX显示卡否早已迈过了这一脚,知道还很差说道……via:Anandtech版权文章,予以许可禁令刊登。下文闻刊登须知。


本文关键词:5188开元官网

本文来源:5188开元官网-www.growingdevelopers.com

如果您有什么问题,欢迎咨询技术员 点击QQ咨询