Unreal游戏GPU性能优化检测模式全新上线

2024-05-07 13:44

本文主要是介绍Unreal游戏GPU性能优化检测模式全新上线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

UWA已经在去年推出了针对于Unity项目的GPU性能优化工具,通过对GPU渲染性能、带宽性能以及各种下探指标,帮助Unity项目研发团队定位由GPU导致的发热耗电问题。这个需求在Unreal团队中也极为强烈,因此UWA将该功能移植到针对Unreal项目的GOT Online测试工具中,帮助UE团队优化项目更有抓手。

一、性能简报

在GOT Online For Unreal测评报告中,UWA罗列了测试时的FPS、GPU Clocks和GPU Bound。

GPU Clocks是可以衡量渲染一个画面的GPU端的工作量,该值不受帧率影响,只要画面内容不变,Clocks就不变。这里有个定量公式:当单帧Clocks * 目标帧率大于设备的GPU最大频率,那么帧率是一定会跑不满帧。同时,为了避免设备高频运行导致快速降频,我们建议把GPU的Clocks工作控制在80%以内相对安全。

GPU Bound表示GPU性能高压区间,在上图中用红色区域标出,此时GPU计算耗费的时钟周期数过高,无法支持满帧运作。有了指标,我们也能明确优化重点:即把Clocks降低到正好能跑满30帧/60帧的范围。

针对GPU Clocks和GPU带宽,UWA也在图表下列出更为细分的优化指标。研发团队可以快速了解哪些指标超出了合理值。

性能简报的目的是帮助大家在繁复的性能指标中,快速筛选出高优先级的优化任务。如需针对某些指标做更为深层的下探,就可以前往报告中对应的界面中,对各个参数具体进行分析。

一般而言,我们建议大家从GPU性能和带宽两个角度分别剖析。

需要注意:由于目前UWA在不同厂商GPU芯片采集到的参数不同,所以各个界面相关的指标可能因为GPU厂商不同而变化。

GPU渲染分析
在分析Clocks时,我们需要从细化维度即顶点压力和片元压力分别定位。

  • 当顶点压力过高时,会体现在参数GPU Primitive,即GPU绘制的图元数量中。开发者可以迅速确定Culled Primitives的构成比例,以便有针对性地检查和优化那些场景中可能存在GPU浪费的资源。

  • 片元阶段的计算量体现在总共要绘制多少个像素。在UWA报告中,GPU Shaded中的Fragment Shaded参数代表了GPU在每帧中执行Fragment Shader的总执行次数。而其中,渲染分辨率就决定了绘制一遍移动端设备的全屏要绘制多少个像素。

除此之外也提供了Overdraw的检测趋势,便于我们快速发现场景中有哪些Overdraw过高导致的GPU Bound。

GPU带宽分析
分析GPU压力的另一个维度就是带宽,虽然不直接影响帧率,但是非常影响能耗。由于GPU读、写带宽较高时都会造成大量的发热和耗电,需要开发者重点关注。

除了以帧为单位,报告中也展示了以秒为单位的GPU Bandwidth(In seconds),以便开发者进行数据换算和对齐。

在下方的相关指标中,也展示了GPU Texture Filter、GPU Stall、功率等参数,协助开发者做进一步定位。

二、场景概览

在场景概览的性能概览页下,开发者可以快速查看上述所有参数在各个场景中的性能情况,并结合推荐值和标红情况,判断各个场景中各项参数值是否在合理范围内,掌握项目各个场景的性能情况。

除了在网页端,开发者也可以通过导出数据功能,导出这些参数和对应场景的场景性能表,以便更自由地在本地进行备份和分析。

三、渲染资源分析

当参与渲染的纹理和网格资源越多、采样越多时,资源内存占用会相应上涨。为了保证让参与渲染计算的资源物尽其用,开发者可以手动开启纹理和网格资源分析功能,定位这些资源的具体使用情况。

在纹理资源分析页,除了纹理资源的内存、数量、尺寸等参数外,我们还可以查看纹理渲染利用率数据。

在网格资源分析页,同样也可以通过网格资源渲染利用率信息,定位网格资源的使用情况。

通过纹理和网格渲染利用率,开发者即可快速定位到一直在内存中但从未参与过渲染的资源,以此排查是否存在场景中不可见的渲染物体、不合理的打包和加载策略等可能造成此种浪费的因素。

四、GPU温度

GPU压力较高时容易引起设备发热。UWA统计了设备的GPU、CPU、电池温度,以便开发者判断设备发热的原因是否主要来自GPU。

若确认是由于GPU压力导致发热,接下来可以进一步排查与GPU温度情况有关的参数,譬如FPS、GPU Clocks、GPU Bandwidth。而功率则会和GPU温度相互影响,也是反应能耗和发热问题的重要参数。

这里特别建议大家:由于CPU和GPU芯片位置较近,当CPU压力较大产生发热时,也可能带动GPU一起发热。所以在优化GPU发热问题时,也要适当结合CPU压力情况进行排查分析。当项目存在耗电快、温度高的现象时,开发者可以从GPU性能压力、GPU带宽、CPU主线程、CPU子线程等方面着手,优化发热问题。


以上就是GOT Online For Unreal GPU模式的主要功能介绍,希望开发者们可以通过这些新功能,更高效地找到项目性能GPU问题的症结所在,从而提升游戏的整体性能和流畅度。相信在开发者和UWA的共同努力下,游戏项目将会拥有更加精美、流畅的画面。

欢迎前往UWA官网,下载最新版Unreal SDK v2.2.0:
UWA | 致力于游戏VR和AR应用提供项目研发解决方案 | 简单优化、优化简单 | 侑虎科技

相关推荐
Unreal游戏GPU参数详解,游戏性能优化再升级
GPU Counter功能更新|支持Adreno、PowerVR芯片
新功能|Mali GPU Counter模块新增GPU图元处理和GPU Shader Cycles
GPU Counter、Timeline功能上线 | 性能优化快人一步!

这篇关于Unreal游戏GPU性能优化检测模式全新上线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967522

相关文章

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)

SQL Server身份验证模式步骤和示例代码

《SQLServer身份验证模式步骤和示例代码》SQLServer是一个广泛使用的关系数据库管理系统,通常使用两种身份验证模式:Windows身份验证和SQLServer身份验证,本文将详细介绍身份... 目录身份验证方式的概念更改身份验证方式的步骤方法一:使用SQL Server Management S

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据