NVIDIA Turing Architecture架构设计(下)
GDDR6 内存子系统
随着显示分辨率不断提高,着色器功能和渲染技术变得更加复杂,内存带宽和大小在 GPU 性能中扮演着更大的角色。为了保持最高的帧速率和计算速度, GPU 不仅需要更多的内存带宽,还需要一个大的内存池来提供持续的性能。
NVIDIA 与 DRAM 行业密切合作,开发了世界上第一款使用 HBM2 和 GDDR5X 内存的
GPUs 。现在图灵是第一个使用 GDDR6 内存的 GPU 架构。
GDDR6 是高带宽 GDDRAM 内存设计的下一个重大进步。随着许多高速 SerDes 和 RF 技术的增强,图灵 GPUs 中的 GDDR6 内存接口电路已经完全重新设计,以实现速度、功率效率和降噪。这种新的接口设计带来了许多新的电路和信号训练改进,最大限度地减少了噪声和工艺、温度和电源电压的变化。广泛的时钟门控被用来最小化低利用率期间的功耗,从而显著提高整体功率效率。与 Pascal GPUs 中使用的 GDDR5X 内存相比, Turing 的 GDDR6 内存子系统提供了 14 Gbps 的信令速率和 20% 的能效改进。
实现这种速度提升需要端到端的优化。利用广泛的信号和电源完整性仿真, NVIDIA 精心设计了图灵的封装和电路板设计,以满足更高的速度要求。例如,信号串扰降低 40% ,这是大型存储系统中最严重的损伤之一。
为了实现 14 Gbps 的速度,内存子系统的各个方面都经过精心设计,以满足如此高频率操作所需的高要求标准。设计中的每个信号都经过了仔细的优化,以提供尽可能干净的内存接口信号(参见图 9 )。
图 9. 图灵 GDDR6
二级缓存和 ROPs
图灵 GPU 除了新的 GDDR6 内存子系统之外,还增加了更大更快的二级缓存。 TU102 GPU 附带 6mb 的二级缓存,是上一代 GP102 GPU 在 Xp 中使用的3mb 二级缓存的两倍。 TU102 还提供比 GP102 更高的二级缓存带宽。
和上一代 NVIDIA GPU 一样,图灵图灵中的每个 ROP 分区包含 8 个 ROP 单元,每个单元可以处理一个单一的颜色样本。一个完整的 TU102 芯片包含 12 个 ROP分区,总共 96 个 ROP 。
图灵存储器压缩
NVIDIA GPUs 利用几种无损内存压缩技术,在数据被写入帧缓冲存储器时减少对内存带宽的需求。 GPU 的压缩引擎有各种不同的算法,这些算法根据数据的特性来确定最有效的压缩方法。这减少了写入内存和从内存传输到二级缓存的数据量,并减少了客户端(如纹理单元)和帧缓冲区之间传输的数据量。图灵对 Pascal 最先进的内存压缩算法进行了进一步的改进,在 GDDR6 的原始数据传输速率提高之外,提供了更大的有效带宽。如图 10 , 所示,原始带宽的增加和通信量的减少意味着图灵上的有效带宽比Pascal 增加了 50% ,这对于保持架构平衡和支持新图灵SM 架构提供的性能至关重要。
图 10 .有效带宽提高 50%
基于图灵 TU102 的存储子系统和压缩(流量减少)改进
RTX 2080 Ti 比基于Pascal GP102 的 1080 Ti 提供大约 50%
的有效带宽改进。
视频显示引擎
消费者对高分辨率显示器的需求逐年增加。例如, 8K 分辨率( 7680 x 4320 )需要的像素是 4K ( 3820 x 2160 )的四倍。游戏玩家和硬件发烧友也希望显示器除了更高的分辨率外,还有更高的刷新率,以体验尽可能平滑的图像。
图灵 GPUs 包括一个全新的显示引擎,为新一轮的显示设计,支持更高的分辨率,更快的刷新率,以及 HDR 。图灵支持 DisplayPort1 . 4a ,在 60Hz 下支持 8K 分辨率,并包括
VESA 的显示流压缩( DSC ) 1 . 2 技术,提供更高的压缩,视觉无损。
表 2 显示了图灵 GPUs 中对 DisplayPort 的支持。
Table 2. DisplayPort Support in Turing
GPUs
图灵 GPUs 可以驱动两个 60hz的 8K 显示器,每个显示器有一根电缆。 8K 分辨率也可以通过 USB-C 发送(有关更多详细信息,请参见 下面的 USB-C 和 VirtualLink 部分)。
图灵的新显示引擎支持显示管道中的 HDR 本地处理。色调映射也被添加到了 HDR 管道中。色调映射是一种用于在标准动态范围显示器上近似显示高动态范围图像的技术。图灵支持 ITU-R 建议 BT . 2100 标准定义的色调映射公式,以避免不同 HDR 显示器上的颜色偏移。
图灵 GPUs 还附带了一个增强的NVENC 编码器单元,它增加了对 H . 265 (HEVC ) 8K 编码的支持,每秒 30 帧。新的 NVENC 编码器为 HEVC 提供了高达 25% 的比特率节省,为 H . 264 提供了高达 15% 的比特率节省。
图灵的新 NVDEC 解码器也已更新,以支持在 30 帧/秒、 H . 264 8K 和 VP9 10 / 12b HDR 解码 HEVC YUV444 10 / 12b HDR 。
与上一代 Pascal GPU 和软件编码器相比,图灵改进了编码质量。 图 11 显示,在常见的 Twitch 和
YouTube 流媒体设置中, Turing 的视频编码器超过了使用 快速的 编码设置的基于 x264 软件的编码器的质量,同时 CPU 利用率显著降低。在典型的 CPU 设置上, 4K 流对于编码来说是一个太重的工作负载,但是图灵的编码器使 4K 流成为可能。
图 11 . 新的视频特性和视频质量比较图灵和帕斯卡与一个快速的 x264 软件编码器
USB-C 和 VIRTUALLINK
在今天的 PC 机上支持 VR 耳机需要在耳机和系统之间连接多条电缆;一条显示电缆将图像数据从 GPU 发送到耳机中的两个显示器,一条电缆用于为耳机供电,以及一个 USB 连接,用于传输摄像机流并从耳机读取后头姿势信息(以更新由 GPU 渲染的帧)。电缆的数量可能会让最终用户感到不舒服,并限制了他们在使用耳机时四处走动的能力。耳机制造商需要适应电缆,使其设计复杂化,并使其体积更大。
为了解决这个问题, Turing GPUs 设计了支持 USB Type-C 的硬件™ 和VirtualLink ™. VirtualLink 是一种新的开放式行业标准,包括领先的硅、软件和耳机制造商,由 NVIDIA 、 Oculus 、Valve 、 Microsoft 和 AMD 领衔。
VirtualLink 是为了满足当前和下一代 VR 耳机的连接需求而开发的。 VirtualLink 采用了一种新的 USB-C 替代模式,旨在通过一个 USB-C 接口提供为 VR 耳机供电所需的电源、显示器和数据。
VirtualLink 同时支持四个通道的高比特率 3 ( HBR3 )显示端口,以及连接到耳机的超高速 USB 3 链路,用于运动跟踪。相比之下, USB-C 只支持四个通道的 HBR3 显示端口 或者 两个通道的 HBR3 显示端口+两个通道的超高速 USB 3 。
除了减轻目前 VR 耳机的安装麻烦之外, VirtualLink 还将把 VR 应用到更多的设备中。单连接器解决方案将虚拟现实技术带到可以容纳单个、小尺寸 USB-C 连接器(如轻薄笔记本)的小型设备上,而不是现在的虚拟现实基础设施,后者需要一台能够容纳多个连接器的 PC 机。
NVLINK 改善了 SLI
在 Pascal GPU 架构之前,
NVIDIA GPUs 使用单个多输入/输出( MIO )接口作为 SLI 桥接技术,允许第二个(或第三个或第四个) GPU 将其最终渲染帧输出传输到物理连接到显示器的主 GPU 。帕斯卡通过使用更快的双 MIO 接口增强了 SLI 桥,提高了 GPUs 之间的带宽,允许更高分辨率的输出,以及 NVIDIA 环绕的多个高分辨率监视器。
图灵 TU102 和 TU104 GPUs 使用 NVLink 代替 MIO 和 PCIe 接口进行 SLI GPU – GPU 数据传输。图灵 TU102 GPU 包括两个 x8 第二代 NVLink 链路, Turing TU104 包括一个 x8 第二代 NVLink 链路。每条链路在两个 GPUs 之间的每个方向提供 25 GB / s 的峰值带宽( 50 GB / s 双向带宽)。双向链路为 100 GB /秒,或每秒钟提供两个 GB /秒的双向链路。具有 NVLink 的图灵 GPUs 支持双向 SLI ,但不支持3 路和 4 路 SLI 配置。
与以前的 SLI 网桥相比,新的NVLink 网桥的带宽增加了以前不可能实现的高级显示拓扑(参见 图 12 )。
图 12 . NVLink 支持新的 SLI 显示拓扑
启动和 8POST 驱动支持将启用。
图灵射线追踪技术
光线跟踪是一种计算密集的渲染技术,可以真实地模拟场景及其对象的照明。基于图灵 GPU 的光线跟踪技术可以实时渲染物理上正确的反射、折射、阴影和间接照明。有关光线跟踪如何工作的详细信息可以在完整的图灵白皮书 中找到。
在过去, GPU 体系结构无法使用单个GPU 为游戏或图形应用程序执行实时光线跟踪。尽管 NVIDIA 的 GPU 加速 NVIDIA Iray ®插件和 OptiX 光线跟踪引擎多年来一直为设计师、艺术家和技术总监提供逼真的光线跟踪渲染,但高质量的光线跟踪效果无法实时执行。类似地,当前的 NVIDIA Volta GPUs 可以渲染逼真的电影级光线跟踪场景,但不能在单个
GPU 上实时渲染。由于其处理密集的性质,光线跟踪在游戏中尚未用于任何重要的渲染任务。相反,需要 30 到 90 帧/秒动画的游戏多年来一直依赖快速 GPU 加速光栅化渲染技术,而牺牲了完全逼真的场景。
在 GPUs 上实现实时光线跟踪是一个巨大的技术挑战,需要 NVIDIA 的研究、 GPU 的硬件设计和软件工程团队进行近 10 年的合作。通过在图灵 TU102 、 TU104 和 TU106 GPUs 中加入称为 RT Cores 的多个新的基于硬件的光线跟踪加速引擎,结合 NVIDIA RTX 软件技术 . ,使得游戏和其他应用中的实时光线跟踪成为可能
在图灵 TU102 GPU 上实时运行的采用 RTX NVIDIA 技术的 NVIDIA SOL ray Tracking demo
的 SOL MAN 如 图 13 ( 参见演示 )。
如前所述,光栅化技术多年来一直是实时渲染的规范,尤其是在计算机游戏中,虽然许多光栅化场景看起来非常好,但基于光栅化的渲染有很大的局限性。例如,仅使用光栅化渲染反射和阴影需要简化可能导致许多不同类型瑕疵的假设。类似地,静态光照贴图可能看起来是正确的,直到有东西移动,光栅化阴影通常会出现锯齿和光泄漏,屏幕空间反射只能反射屏幕上可见的对象。这些人工制品有损于游戏体验的真实感,对于开发者和艺术家来说,试图用额外的效果来修复是非常昂贵的。
图 13. 来自 NVIDIA 的 SOL MAN 太阳射线追踪演示
虽然光线跟踪可以产生比栅格化更真实的图像,但它也需要大量的计算。我们发现最好的方法是混合渲染,光线跟踪和光栅化的结合。使用这种方法,光栅化用于最有效的地方,而光线跟踪用于与光栅化相比提供最大视觉好处的地方,例如渲染反射、折射和阴影。
图 14 显示混合渲染管道。
混合渲染结合了渲染管道中的光线跟踪和光栅化技术,以充分利用每种技术在渲染场景时的最佳效果。 SEED 为他们的 PICA-PICA 实时光线跟踪实验使用了一个混合的渲染模型,该实验在程序化组装的世界中具有自学习代理。 PICA-PICA 使用 SEED 的研发引擎 Halcyon 构建,使用 microsoftdxr 和 NVIDIA GPUs 实现实时光线跟踪。
图 14 .混合渲染管道。图片由 EA 的SEED 部门提供( SEED // Pica Pica Hardware Raytracing and
Turing )
光栅化和 z 缓冲在确定对象可见性方面要快得多,并且可以替代光线跟踪过程中的主要光线投射阶段。然后,可以使用光线跟踪来拍摄次光线,以生成高质量的物理校正反射、折射和阴影。
开发人员还可以使用材质属性阈值来确定要在场景中执行光线跟踪的区域。一种技术是规定只有具有一定反射率水平(比如 70% )的表面才会触发是否应在该表面上使用光线跟踪来生成二次光线。
我们期望许多开发人员使用混合光栅化/光线跟踪技术来获得高帧速率和出色的图像质量。或者,对于图像保真度是最高优先级的专业应用程序,我们希望看到在整个渲染工作负载中使用光线跟踪,投射主光线和次光线以创建令人惊叹的逼真渲染。
图灵 GPUs 不仅包括专用的光线跟踪加速硬件,还使用了下一节描述的高级加速结构。本质上,一个全新的渲染管道可以使用单个图灵 GPU 在游戏和其他图形应用程序中实现实时光线跟踪(参见 图 15 )。
图 15 .射线追踪和光栅化管道阶段的详细信息
在图灵 GPUs 中使用的混合绘制模型中,光线跟踪和光栅化流水线同时工作并协同工作。
虽然图灵 GPUs 支持实时光线跟踪,但每个像素或曲面位置投射的主光线或次光线数量会根据许多因素而变化,包括场景复杂性、分辨率、场景中渲染的其他图形效果,当然还有 GPU 马力。不要期望每像素实时投射数百条光线。事实上,当使用图灵 -RT 核心加速与先进的去噪滤波技术相结合时,每像素所需的光线要少得多。
NVIDIA 实时光线跟踪去噪模块可以显著减少每个像素所需的光线数,并且仍然可以产生出色的效果。
对选定对象的实时光线跟踪可以使游戏和应用程序中的许多场景看起来与高端电影特效一样逼真,或与使用基于专业软件的非实时渲染应用程序创建的光线跟踪图像一样逼真。
图 16 显示了 Epic Games 与 ILMxLAB 和 NVIDIA 合作创建的反射演示示例。
光线跟踪反射、光线跟踪区域光阴影和光线跟踪环境光遮挡可以在单个四边形 RTX 6000
或 GeForce RTX 2080 Ti GPU 上运行,提供几乎无法与电影区分的渲染质量,如这个不真实的引擎演示所示。
图 16. 虚幻引擎反射光线跟踪演示
图灵光线跟踪硬件与 NVIDIA 的RTX 光线跟踪技术、 NVIDIA 实时光线跟踪库、NVIDIA OptiX 、 Microsoft DXR API 和即将推出的 Vulkan 光线跟踪 API 一起工作。用户将在游戏中以可播放的帧速率体验实时、电影级的光线跟踪对象和角色,或者在专业图形应用程序中体验到视觉真实感,而这在以前的 GPU 架构中是不可能实现的。
图灵 GPUs 可以加速光线跟踪技术,用于以下许多渲染和非渲染操作:
反射和折射
阴影和环境光遮挡
全局照明
即时离线光照图烘焙
美女照片和高质量预览
用于中心凹虚拟现实绘制的主光线
遮挡剔除
物理学,碰撞检测,粒子模拟
音频模拟(例如, NVIDIA VRWorks 音频构建在 OptiX API 之上)
AI 可见性查询
引擎内路径跟踪(非实时)生成参考屏幕截图,用于调整实时渲染技术和去噪器、材质合成和场景照明。
在下面的章节中,将详细介绍使用图灵光线跟踪加速渲染光线跟踪阴影、环境光遮挡和反射。 NVIDIA 开发者网站 有更详细的描述可以用图灵光线跟踪加速的渲染操作。
图灵 RT 核
图灵基于硬件的光线跟踪加速的核心是每个 SM 中包含的新 RT 核心。 RT 核心加速边界层(BVH )遍历和光线/三角形相交测试(光线投射)功能。 RT 核心代表在 SM 中运行的线程执行可见性测试。
RT 核与先进的去噪滤波、由NVIDIA 研究所开发的高效 BVH 加速结构以及与 RTX兼容的 api 一起工作,以在单个图灵 GPU 上实现实时光线跟踪。 RT 核心自动遍历 BVH ,通过加速遍历和光线/三角形相交测试,他们卸载了 SM ,允许它处理其他顶点、像素和计算着色工作。诸如 BVH 构建和重新安装等功能由驱动程序处理,光线生成和着色由应用程序通过新型着色器进行管理。
为了更好地理解 RT 核心的功能,以及它们究竟加速了什么,我们首先应该解释在没有专用硬件光线跟踪引擎的情况下如何在 GPUs 或 CPU 上执行光线跟踪。本质上, BVH 遍历的过程需要通过着色操作来执行,并且每光线投射需要数千个指令槽来测试 BVH中的包围盒相交,直到最后碰到一个三角形,并且相交点的颜色对最终像素颜色有贡献(或者如果没有碰到三角形,则背景颜色可用于着色像素)。
没有硬件加速的光线跟踪需要每个光线数千个软件指令槽来连续测试 BVH 结构中较小的边界框,直到可能碰到三角形为止。这是一个计算密集的过程,如果没有基于硬件的光线跟踪加速,就不可能在 GPUs 上进行实时操作(请参见 图 17 )。
图 17 .光线追踪预图灵
图灵中的 RT 核可以处理所有的BVH 遍历和射线三角形相交测试,从而节省了 SM 在每条光线上花费数千个指令槽的开销,这可能是整个场景的大量指令。 RT 核心包括两个专门单元。第一个单元执行边界框测试,第二个单元执行光线三角形相交测试。 SM 只需启动一个光线探测器, RT 核心进行 BVH 遍历和光线三角形测试,并返回一个命中或未命中 SM 。 SM 在很大程度上被腾出去做其他的图形或计算工作。参见图 18 或使用 RT 核心的图灵射线追踪图。
图 18 . RT 核图灵射线追踪
在 Pascal GPUs 中, RT
核的图灵射线跟踪性能明显快于光线跟踪。在不同的工作负载下,图灵可以比 Pascal 提供更多的千兆射线/秒,如 图 19 。 所示,Pascal 在软件中花费大约 1 . 1 千兆射线/秒,或 10 TFLOPS / gigaray 来进行光线跟踪,而图灵可以使用 RT 核来实现 10 + Giga 射线/秒,并且运行光线跟踪的速度是 Pascal 的 10 倍。
图 19 .图灵射线跟踪性能
深度学习超级抽样( DLSS )
在现代游戏中,渲染帧不是直接显示的,而是经过一个后处理图像增强步骤,该步骤将来自多个渲染帧的输入合并在一起,试图在保留细节的同时去除诸如锯齿之类的视觉伪影。例如,时间反走样( TAA )是一种基于着色器的算法,它使用运动矢量将两个帧组合在一起,以确定在何处对前一帧进行采样,这是当今最常用的图像增强算法之一。然而,这种图像增强过程从根本上说是很难实现的。
NVIDIA 的研究人员认识到,这类问题——一个没有清晰算法解决方案的图像分析和优化问题——将是人工智能的完美应用。正如本文前面所讨论的,图像处理案例(例如 ImageNet )是深度学习最成功的应用之一。深度学习现在已经取得了超人的能力,可以通过观察图像中的原始像素来识别狗、猫、鸟等。在这种情况下,目标将是结合渲染图像,基于观察原始像素,以产生高质量的结果 – 一个不同的目标,但使用相似的能力。
为解决这一难题而开发的深度神经网络( DNN )被称为深度学习超级采样( DLSS )。 DLSS 从一组给定的输入样本中产生比 TAA 更高质量的输出,我们利用这种能力来提高整体性能。
虽然 TAA 在最终目标分辨率下渲染,然后合并帧,减去细节, DLSS 允许以较低的输入采样数进行更快的渲染,然后推断出在目标分辨率下质量与 TAA
结果相似的结果,但着色工作只有一半。
下面的 图 20 , 显示了 UE4 渗透器演示的结果示例。 DLSS 提供了与 TAA 类似的图像质量,并大大提高了性能。 RTX 2080 Ti 更快的原始渲染马力,加上 DLSS 和张量核心的性能提升,使 RTX 2080 Ti 的性能达到 GTX 1080 Ti 的两倍。
图 20 .使用 4K dls 的图灵性能是使用 4ktaa 的 Pascal 的两倍
这一结果的关键是 DLSS 的培训过程,在培训过程中, DLSS 有机会学习如何根据大量超高质量的示例生成所需的输出。为了训练网络,我们收集了数以千计的“真实”参考图像,这些参考图像采用了完美图像质量的黄金标准方法 64x 超采样( 64xSS )。
64x 超采样意味着我们不必对每个像素进行一次着色处理,而是在像素内以 64 个不同的偏移量进行着色处理,然后结合输出,生成具有理想细节和抗锯齿质量的结果图像。我们还捕捉匹配的原始输入图像正常渲染。接下来,我们开始训练 DLSS 网络以匹配 64xSS 输出帧,方法是遍历每个输入,要求 DLSS 生成一个输出,测量其输出与 64xSS 目标之间的差异,并根据差异通过称为反向传播的过程调整网络中的权重。
经过多次迭代后, DLSS 会自行学习生成接近 64xs 质量的结果,同时也会学习避免影响 TAA 等经典方法的模糊、混淆和透明性问题。
除了上述 DLSS 功能(标准DLSS 模式)之外,我们还提供了第二种模式,称为 DLSS 2X 。在这种情况下, DLSS 输入将以最终目标分辨率呈现,然后由更大的 DLSS 网络组合,生成接近 64x 超级采样渲染级别的输出图像–这一结果将用任何传统方法都不可能实时实现。图 21 显示了 DLSS 2X 模式的运行,提供的图像质量非常接近参考 64x 超级采样图像。
图21 . DLSS 2X 与 64xSS 图像几乎无法区分
最后,图 22 说明了多帧图像增强的一个具有挑战性的案例。在这种情况下,一个半透明的屏幕漂浮在移动不同的背景前面。 TAA 倾向于盲目跟踪运动对象的运动矢量,模糊了屏幕上的细节。 DLSS 能够识别出场景中的变化更为复杂,并以更智能的方式组合输入,从而避免模糊问题。
图 22 . dlss2x 比 TAA 具有更好的时间稳定性和图像清晰度
总结
图形刚刚被革新。新的 NVIDIA Turing GPU 架构是有史以来最先进、最高效的 GPU 架构。图灵实现了一种新的混合渲染模型,它结合了实时光线跟踪、栅格化、人工智能和模拟。图灵与下一代图形 API 相结合,为 PC 游戏和专业应用程序带来了巨大的性能提升和难以置信的逼真图形。
未来的博客文章将包括更多关于图灵高级着色器技术的细节。如果您想深入研究图灵架构,请下载完整的 NVIDIA 图灵体系结构白皮书 。您也可以在
RTX 开发者页面 上找到有关 RTX 技术的更多信息,或者阅读如何 RTX 和 directx12 射线跟踪工作 here。