隆重推出NVIDIAReflex:一套用于在竞技游戏中优化和测量延迟的技术GeForce新闻NVIDIA

NVIDIAReflex采用两种主要的新技术:

NVIDIAReflexSDK:是面向游戏开发者的一套新API,旨在减少和测量渲染延迟。通过直接与游戏集成,Reflex低延迟模式能够让游戏引擎即时完成渲染任务,从而消除GPU渲染排队现象,降低CPU反压。与现有的仅使用驱动的技术(如NVIDIA超低延迟模式)相比,这能提供更低的延迟。

游戏玩家主要经历两种延迟:系统延迟和网络延迟。

网络延迟是游戏客户端与多人服务器之间的往返延迟,通常称为“ping”值。

请注意,网络延迟与网络不稳定问题(例如丢包和数据包顺序混乱)并不相同。网络不稳定会导致诸如橡皮筋式弹回和不同步之类的问题。所谓橡皮筋式弹回,就是当您在游戏中四处移动时,会不停弹回到几秒钟之前的位置。就像橡皮筋一样,您会被弹回到服务器所看到的位置。不同步则是指丢包导致网络卡顿的情况。实际效果就像是敌人暂停了一秒,然后突然瞬移到其正确的位置。这两类常见问题均非网络延迟所致,而是通常发生在数据包必须传输更远的距离,并因此导致较高延迟的情况下。

系统延迟是指您的鼠标或键盘操作与显示器上相应的像素变化之间的延迟,例如枪火或角色移动。这也称为“从点击到显示之间的延迟”或者“端到端系统延迟”。这种延迟不涉及游戏服务器–仅与您的外设、PC和显示器有关。

这种延迟会以多种不同的方式影响游戏。以下是几个示例:

概括而言,系统延迟分为三个主要阶段:外设(例如鼠标)、PC和显示器。遗憾的是,由于“输入延迟”或“输入滞后”这种术语用来描述不同部分的系统延迟,因此这种延迟的描述存在一定的难度。

这些概要定义忽略了某些细节,不过它们确实为我们提供了有效说明延迟的良好基础。我们将在本文后面详细介绍每个阶段,因此,如果您想获得更多技术知识,请跳到“高级”部分。

让我们来看一个真实游戏中的示例,以开始回答这个问题:

"frameborder="0"allow="accelerometer;autoplay;encrypted-media;gyroscope;picture-in-picture"allowfullscreenloading="lazy">首先,我们来看一下命中判定。命中判定是玩家常用的一个术语,表示游戏判定其对另一名玩家的射击的准确程度。在我们确知自己已经准确击中目标,但系统没能正确判定时,我们常常会抱怨命中判定机制。我们都曾经有过这样的经历。但这真要归咎于命中判定机制吗?

接下来,我们再来了解一下“探头优势”。在高水准的比赛中,在夹角有优势时(也就是在您比对手离拐角更远时),您通常会固定保持一定角度,以抵消称为“探头优势”的网络游戏特征。

如您在上图中所见,两个玩家距离转角的距离是相等的,ping值也是相同的。唯一的区别在于系统延迟。

与命中判定的解释相似,在更高的系统延迟下,您看到的游戏世界的内容会略有延迟–这会导致在您看到敌人之前,敌人已经看到了您。如果您的系统延迟大幅低于对手,那么或许可以彻底避免探头优势。在这里,游戏网络仍然发挥着一定的作用,但总体而言,较低的系统延迟有助于抵免探头者在防御方面的优势,并占据攻击方面的优势。

最后,我们来讨论一下瞄准精度,尤其是甩枪。对于诸如CS:GO或VALORANT之类的竞技游戏,甩枪练习或许是最重要的一项训练。您必须在瞬间找到目标,轻移鼠标并以惊人的精度射击,这需要毫秒级的精确度。但是,您是否曾经有过这样的感受,无论怎样调整,自己的甩枪表现都没法做到前后一致?

这使我们得出了前面提到的研究结果。在下面的图表中,您可以看到在衡量甩枪射击精度时,较低的延迟会产生多大的影响。

在竞技游戏中,较高的FPS和刷新率(Hz)能降低延迟,提高您的输入操作如愿体现在屏幕上的几率。延迟的减少幅度即便很小,也会影响甩枪表现。在我们的最新电竞研究博客中,NVIDIA研究团队探索了不同级别的系统延迟对玩家表现有怎样的影响。

使用ReflexSDK,游戏开发者可以实现低延迟模式,在这种模式下,游戏引擎能够完成即时渲染,从而消除GPU渲染排队现象,减轻受GPU限制的情况下造成的CPU反压。

竞技游戏瞬息万变,因此会在受限于GPU和受限于CPU之间来回转换。如果有爆炸场面,而且存在大量的颗粒物,此时游戏受GPU限制,ReflexSDK将通过避免GPU作业大量排队来降低延迟。如果渲染任务非常简单,游戏受CPU限制,ReflexSDK将通过保持较高的GPU时钟频率来确保较低的延迟。无论渲染管线的状态如何,ReflexSDK都会智能地减少给定配置下的渲染延迟。借助ReflexSDK,游戏玩家可以将渲染延迟保持在最佳状态,而不必将所有游戏设置调为低。

在ReflexSDK发布之时,以下游戏计划在2020年9月17日通过我们的下一个GameReady驱动支持NVIDIAReflex技术:“Apex英雄(ApexLegends)”、“堡垒之夜(Fortnite)”和VALORANT。此外,以下游戏已宣布支持即将推出的NVIDIAReflex技术:“使命召唤:黑色行动(CallofDuty:BlackOps)”、“使命召唤:战区(CallofDuty:Warzone)”、“厨房大逃杀(CuisineRoyale)”、“命运2(Destiny2)”,“征召(Enlisted)”和“魔都(Mordhau)”。

NVIDIAReflexSDK支持自2014年发布的GeForceGTX900系列产品起的所有GPU。但是,GeForceRTX30系列GPU上的低延迟加速将保持略高的时钟速率,以进一步降低延迟。

如果您想要深入了解SDK的工作原理,我们会在“高级”部分中介绍渲染管线、CPU/GPU受限以及如何降低延迟。

如果游戏不支持ReflexSDK,玩家仍可以通过从NVIDIA控制面板启用NVIDIA超低延迟模式来获得一定的延迟改善。只需打开控制面板并导航到“Manage3DSettings”(管理3D设置),然后依次选择“LowLatencyMode”(低延迟模式)、“Ultra(超)”选项即可。如前文所述,这将有助于降低渲染延迟,但不能完全控制管线。

如果游戏支持NVIDIAReflex低延迟模式,那么我们建议使用这种模式,而非驱动中的超低延迟模式。但是,如果玩家同时开启了这两种模式,Reflex低延迟模式会自动获得更高优先级。

NVIDIA显卡驱动长期以来一直附带有名为“电源管理模式”的选项。此选项允许游戏玩家选择GPU在受CPU限制情况下的运行方式。在GPU作业量饱和时,它将始终以最高性能运行。但是,在GPU作业量不饱和时,就有机会通过在保持FPS不变的同时通过降低GPU时钟频率来降低功耗。

与ReflexSDK中的低延迟加速功能相似,首选最高性能模式的优先级高于GPU的节能功能,允许GPU始终以更高的时钟频率运行。更高的时钟频率会以稍高的功耗为代价,以减少CPU受限情况下的延迟。此模式专为那些不计较功耗,但却希望减少每一微秒延迟的游戏玩家所设计。

在GeForceRTX30系列GPU上,我们可以将时钟频率设定得更高,从而让GPU在CPU受限的情况下以最低渲染延迟作为目标。使用较旧型号GPU的用户仍然可以启用首选最高性能模式从而使GPU维持在基准频率上。

这种先进的自动优化功能可以扫描GPU,确定曲线上每个电压点的最大频率凸起。在该功能确定并为您的GPU应用理想的设置后,它还会重新执行测试,为您维护始终如一的优化效果,保证您可以获得稳定的优化效果。

NVIDIAReflex延迟分析器兼容的360HzG-SYNC显示器将于今年秋季发布,并搭载一项新功能–NVIDIAReflex延迟分析器。这一革命性的新增功能让游戏玩家能够衡量其系统的响应速度,从而使他们能够在开始比赛之前完全了解并优化PC的性能。

要使用此功能,只需将鼠标插入360HzG-SYNC显示屏上指定的Reflex延迟分析器USB端口即可。显示器的ReflexUSB端口是通向PC的一条简单直接通道,可以在不增加任何延迟的情况下,监控鼠标点击。

GeForceExperience的新性能叠加功能可实时报告延迟指标。要查看延迟指标,请在该功能于9月份发布后导航到“PerformanceOverlay”(性能叠加)选项,然后启用“LatencyMetrics”(延迟指标)设置。

NVIDIAReflex延迟分析器将系统延迟测量值分解为鼠标延迟、PC+显示延迟和系统延迟。

如果您迫切想开始测量延迟,可以在拿到新款360Hz显示器之前这样做。只要游戏集成了NVIDIAReflexSDK,就能将游戏延迟和渲染延迟指标添加到游戏统计数据中。此测量值并非您感觉到的完整延迟,但可以帮助您着手优化延迟。

此外,GeForceExperience现在还提供性能叠加显示功能,让您能够跟踪各种游戏中的渲染呈现延迟。渲染呈现延迟通过渲染队列和GPU渲染来跟踪呈现调用。由于它是帧的最终调用,因此,渲染呈现延迟的大小将比使用NVIDIAReflexSDK测量的渲染延迟略小,但仍将让您清楚了解渲染延迟。我们将在未来的更新中将渲染延迟添加至GeForceExperience。

您只需在本月下旬该功能发布时更新至GeForceGameReady驱动和GeForceExperience的最新版本,然后选择“Performance”(性能)菜单,选择“LatencyMetrics”(延迟指标)设置,接着启用“Performanceoverlay”(性能叠加显示)。

您可以通过沙盒或训练程序进入NVIDIA实验模式。进入NVIDIA实验模式后,选择您感兴趣的实验。此外,我们还将NVIDIAReflexSDK集成到KovaaK2.0中,另外还提供了一些其他技术,可帮助游戏玩家感受高低系统延迟之间的差异。

参加实验不仅有助于改进您的准头,而且还能帮助进行重要的电竞研究。通过与TheMeta在KovaaK2.0上进行合作,我们能够测试并破解竞技游戏领域中的谜团。例如,在我们的首批实验中,有一项是希望根据竞技游戏玩家对VALORANT中的目标轮廓颜色的争论科学地确定目标颜色选择偏好。

其他实验将测试不同的延迟范围等项目,同时要求您完成一些具有挑战性的任务。

现在让我们深入内部,在下一个细节级别上看看这一切是如何工作的。本节将介绍鼠标点击操作实际上如何传递到屏幕上的像素、游戏和渲染管线的概念、CPU和GPU受限对延迟的影响以及渲染管线中的重叠,最后介绍一些用于帮助可视化系统中发生的情况的工具。

那么,鼠标点击操作实际上如何传递到显示器?下图分解了管线的各个阶段。请注意,虽然这些阶段之间存在重叠,但它们一定要按照从左到右的顺序开始和完成。

现在我们已了解点击操作是如何传入屏幕的,接下来让我们深入了解一下性能。分析游戏时,我们通常会尝试将性能定性为受GPU或CPU限制。这对于了解系统性能非常有帮助,但在现实世界中,游戏通常会在这两种状态中来回切换。

让我们从垂直同步关闭时,受GPU限制的情况入手。

在此示例中,我们将管线简化为5个主要阶段:外设、CPU、渲染队列、GPU和显示器。

我们来检查第4帧,并查看每个阶段的进展情况:

此外,我们还可以看到从首次点击鼠标到显示阶段完成的系统延迟。在受GPU限制的情况下,由于渲染队列的原因,延迟通常较高,并且游戏先于呈现块运行,并生成会在提交时延迟的新帧

下面,我们来看看NVIDIAReflexSDK对受GPU限制的管线的影响:

正如您所看到的,渲染队列几乎消失。不过,ReflexSDK不会禁用它,而只是将其清空。但这是如何运作的呢?

此外,在通过SDK采用的方法减少渲染队列中的作业时,游戏延迟也会开始降低。这源自于在GPU受限的场景中由渲染队列带来的背压降低。

对于先前已经针对延迟实施了优化的用户来说,这就像是使用优秀的游戏中帧率限制工具来减少延迟一样。优秀的游戏中帧率限制工具会使游戏在合理的位置停止,从而降低延迟和CPU反压。

但是,使用NVIDIAReflex,您不必将帧率锁定为固定值,而是可以按照超越限制的速度运行,从而进一步降低延迟。您可以将其视为一种“动态”帧率限制工具,能始终为您保证最理想的延迟。

在受GPU限制的情况下使用Reflex低延迟模式时,即使GPU保持工作量完全饱和并且得到充分利用,管线的行为也会表现得如同受CPU限制一样。让我们看看受CPU限制的实际管线是怎样的。

正如您在此图表中所看到的,帧率受CPU限制。由于CPU无法在GPU之前运行,因此在本例中并没有渲染队列。通常,与受GPU限制的情况相比,受CPU限制时的延迟较低。

在这种情况下,速度更快的GPU并不能提高FPS,但可以降低您的延迟。关闭垂直同步或启用G-SYNC时,速度更快的GPU意味着可以更快地将经渲染的图像发送到显示器。

此外,即使您受CPU限制,Reflex低延迟模式还具有“加速”设置,该设置会禁用省电功能,从而略微减少延迟。在受CPU限制、GPU利用率较低的情况下,GPU时钟将保持较高频率以加快处理速度,从而可以将帧尽快传递到显示器。通常,这种加速设置能带来的好处并不大,但有助于尽可能降低管线中每一毫秒的延迟。

准备好更深入地探究了吗?我们来观察一个帧,不过这次要观察拥有完全重叠的管线。

如您所见,大多数重叠发生在模拟和GPU渲染完成之间的PC延迟核心部分。为什么会出现这种情况呢?

帧通过称为drawcall的小作业进行渲染。这些调用最终会分组到作业包中。随后,作业包会被显卡驱动发送到GPU进行渲染。这样一来,每个阶段都会在上一阶段完成之前开始工作,从而将帧分成多个小块。

作业通过管线完成处理,最终写入帧缓冲区。这种操作会一直持续,直至帧完全渲染。渲染完成后,后置缓冲区会与交换链中的另一个可用缓冲区交换,并发送以进行扫描。

在研究渲染延迟和游戏延迟时,了解这一点非常重要。通常,游戏延迟和渲染延迟会彼此重叠,这意味着简单的相加没法得出正确的总延迟。

系统延迟既是游戏体验的定量衡量指标,也是影响游戏玩家在第一人称射击游戏中瞄准精度的关键要素。NVIDIAReflex让开发者和玩家能够针对系统延迟进行优化,并率先使之轻松地测量系统延迟。

THE END
1.大厂性能测试监控指标及分析调优指南其他实例文章在本文中,我们讨论了大厂性能测试监控指标及分析调优流程。我们介绍了常见的监控指标,如响应时间、并发用户数、系统吞吐量、错误率、内存占用率和CPU占用率。然后,我们展示了一个使用Python语言编写的性能测试监控指标及分析调优流程示例,包括数据收集、数据分析、优化方案制定和实施和验证等步骤。 http://www.shili8.cn/article/detail_20002682395.html
2.Ruby应用监控:性能监控与分析开发者可以选择多种性能监控工具,例如New Relic、Scout、Datadog等,这些工具可以帮助开发者实时监测Ruby应用程序的性能指标,包括响应时间、错误率、吞吐量等。 性能指标 响应时间 响应时间是指客户端发起请求到服务器返回响应所花费的时间。通过监控响应时间,可以了解应用的实时性能表现。 https://www.jianshu.com/p/4aeb6197dab3
3.JAVAbenchmark性能测试mob64ca140d2323的技术博客什么是性能测试 系统在特定负载的情况下,相应时间和稳定性的表现情况。 1.系统:自己开发的程序,测试反映出我们开发程序的质量好坏。 2.负载:单位时间内客户请求的数量。 3.相应时间:客户从发起请求到接收到成功或失败响应的时间。 4.稳定性:指任意时间,响应时间的波动情况,波动越小的系统越好。 https://blog.51cto.com/u_16213670/12846888
4.服务器性能如何评估,关键指标与最佳实践是什么?处理能力:服务器的处理能力是衡量其性能的关键指标之一,高性能的服务器通常配备多核处理器和大容量内存,能够快速处理大量并发请求,阿里云服务器采用了高性能的硬件设备,具备快速的计算和存储能力,能够满足各种类型的应用需求。 存储能力:存储设备的读写速度直接影响服务器的响应时间,SSD(固态硬盘)相比传统HDD(机械硬盘)https://shuyeidc.com/wp/18024.html
5.一篇文章认识性能测试响应时间通过在被测系统上不断增加压力,直到性能指标,例如“响应时间”超过预定指标或者某种资源使用已经达到饱和状态。 特点: (1) 主要目的是找到系统处理能力的极限。 (2) 需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景,使得测试结果具有业务上的意义。 https://blog.csdn.net/yjt2045263063/article/details/138579861
6.压力测试核心性能指标及行业标准腾讯云开发者社区在做压力测试时,新手测试人员常常在看报告时倍感压力:这么多性能测试指标分别是什么意思,应该达到什么标准? 本文将结合实际压测报告,帮助您快速理解压测时的主要性能指标,了解如何解读该指标以及通常情况下应该达到的标准。 优测在线压测平台报告示例 指标1:响应时间 https://cloud.tencent.com/developer/article/2304981
7.性能测试的六大性能指标是什么下面分别对这六大性能指标进行详细介绍: 1、响应时间(Response Time) 响应时间是指从客户端发送请求到接收到服务器响应所需的时间,它是衡量系统性能的一个重要指标,通常以毫秒(ms)为单位,响应时间越短,用户体验越好。 2、吞吐量(Throughput) 吞吐量是指在单位时间内系统处理的请求数量,它反映了系统的处理能力,通常https://www.kdun.com/ask/417264.html
8.性能测试中的响应时间指标解析本文将详细解析性能测试中的响应时间指标,并探讨其在测试过程中的作用和意义。 一、响应时间的定义 响应时间是指系统在接收到一个请求后,完成该请求并返回结果的时间。它包括从请求发送出去到接收到响应的整个过程所消耗的时间。在性能测试中,通常使用平均响应时间来衡量系统的性能。 二、响应时间指标的解析 1.平均https://wenku.baidu.com/view/258ff253350cba1aa8114431b90d6c85ed3a88d4.html
9.性能测试中的重要指标:响应时间并发数和每秒事务数在开发和维护任何一个应用系统时,性能测试都是至关重要的一环。性能测试的目标是确保系统可以在各种负载下顺利、有效地运行。在性能测试中,响应 时间(Response Time)、并发数(Concurrency)和每秒事务数(Transactions Per Second,TPS)都是非常重要的指标。这三个指标为我们提供了系统在特定负载下表现的深入理解。那么,https://cloud.tencent.cn/developer/article/2311564
10.软件性能测试中的性能指标软件性能测试中的性能指标(响应时间、吞吐量、并发用户数、CPU利用率、内存使用率及网络带宽等): 1. 响应时间 响应时间是指系统从接收请求到返回结果所需要的时间,是衡量系统性能的重要指标之一。响应时间短,说明系统性能好,用户体验好。 2. 吞吐量 吞吐量是指系统在单位时间内可以处理的请求数量,也是衡量系统性能https://cml244.51sole.com/companynewsdetail_261060058.htm
11.软件测试5个常用的性能指标是什么?推荐好文响应时间是指从客户端发送请求到接收到服务器响应之间的时间间隔。它是用户最直接感知到的性能指标之一,直接影响用户体验。响应时间越短,用户体验越好。 重要性:对于在线服务而言,响应时间的长短直接关系到用户的满意度。例如,电商网站的商品详情页加载时间过长,可能会导致用户放弃购买。 https://m.kexintest.com/sys-nd/2676.html
12.web前端性能响应时间指的是什么?Worktile社区优化性能可以提高用户体验、减少页面加载时间,提高网站的访问速度和响应能力。 赞同 8个月前 0条评论 不及物动词 这个人很懒,什么都没有留下~ 评论 Web前端性能响应时间指的是在Web应用中,由用户发起请求后,服务器对该请求进行处理和返回所需资源的时间。它通常包括以下几个方面的时间: DNS解析时间:将域名https://worktile.com/kb/ask/798222.html
13.性能测试的几个指标,你完全了解吗?记录下性能测试常用的几个指标,性能测试其实就是检查各项指标是否符合要求。 性能测试核心指标: 吞吐量 响应时间(Rsponse Time) 并发处理能力 资源占用能力 测试中的时间占比: 40%——性能测试分析 30%——测试执行 30%——测试结果分析 而全链路监控就是只要和系统相关的全部需要监控到。 http://www.51testing.com/html/47/n-7794047.html
14.性能测试主要测什么性能测试的指标有哪些性能测试是软件测试的一个重要组成部分,主要用于评估软件系统在各种负载条件下的性能表现。性能测试的目的是确保软件系统在实际运行环境中能够满足用户的需求和期望。本文将详细介绍性能测试的主要测试内容和指标。 性能测试的主要测试内容 响应时间:评估系统在特定操作下的反应速度,通常以毫秒为单位。 https://www.elecfans.com/d/2993070.html
15.网站性能测试指标及网站压力测试鹿呦呦1. 一般衡量网站性能有哪些指标? 性能指标主要有响应时间,吞吐量,并发量,性能计数器。 1)响应时间 指应用执行一个操作需要的时间,即从发出请求到最后收到响应数据所需要的时间。 系统常用操作响应时间表 实践中通常采用的办法是重复请求,比如一个请求操作重复执行1万次,测试一万次执行的总响应时间之和,然后除以1万https://www.cnblogs.com/sunshineliulu/p/7509810.html
16.性能测试包括哪些方面?那么,什么是性能测试?如何衡量系统性能?系统响应时间是怎么计算的?如何进行性能调优?带着这些问题,https://www.zhihu.com/question/486203711/answer/2628810951