无论您是第一次调整开发代码还是进行高级性能优化,英特尔® VTune™Amplifier 都能将原始分析数据转换为性能洞察。如果您需要确定通过 Unreal* Engine 开发的 PC 游戏代码中的瓶颈、同步点和 CPU 热点,则可以利用图形用户界面对本地或远程目标中的数据进行排序、过滤和可视化,并且开销较低。
在 Unreal Engine* 4.19 中,英特尔® 软件工程师使用 Unreal* 添加了对英特尔 Vtune Amplifier 仪器和跟踪技术 (ITT) 标记的支持。本指南向用户展示了如何利用新集成技术在英特尔 VTune Amplifier 2018 UI 中生成 Unreal Engine 4 (UE4) 的注释痕迹。从Unreal Engine下载 UE4。下载 英特尔 VTune Amplifier的免费试用版。
捕捉 Unreal Engine* 4 痕迹
范围内事件是逐帧分析代码块的累积 CPU 时序。现在可以使用 ITT 事件在英特尔 VTune Analyzer 分析器中捕捉和查看函数或“括号之间”级别的范围内事件。设置范围内事件可以帮助您跟踪标准的引擎统计信息。
首先,以管理员身份运行英特尔 Vtune 分析器。
对于应用,通过添加整个路径选择 UE4 编辑器。
对于应用参数,使用任何必要的设置(如分辨率)指定游戏。在下面的示例中,对 UE4 粒子效果 demo进行分析。确保在应用参数命令行的末尾添加“-VTune”(见图 1)。如果除 -Vtune 开关之外,您还需要命令行参数方面的帮助,请参见 Command-Line Arguments UE4 文档部分。
选中复选框,将应用目录设置为工作目录。如果您需要此屏幕上任何其他设置的帮助,请使用 F1 键访问 Vtune 的帮助系统。
图 1.在分析目标选项卡下设置应用、游戏和应用参数。
接下来,移至“分析类型”选项卡并在“算法分析”标题下选择“高级热点”(见图 2)。
将 CPU 采样间隔设置为 1 毫秒。
在本例中,为降低开销,请在“选择基于事件的采样集合提供的详细级别”中单击“热点”。
将事件模式设置为“全部”。
选中“分析用户任务、事件和计数器”复选框。
图 2.在“分析类型”选项卡下设置高级热点。
接下来,通过英特尔 Vtune 分析器启动游戏。
在 Unreal Engine 开发控制台中(您可以在工作负载运行时用 ~ (代字号)键打开它),输入“stat NamedEvents”。现在将跟踪范围内事件。请注意,您需要开发版本才能使此功能正常运行。如欲了解更多信息,请参见 UE4帮助系统的构建配置部分。
完成收集统计数据后,停止分析器。
查看 Unreal Engine 4 痕迹
处理结果后,摘要将显示捕捉的主要任务类型统计信息,类似于图 3。
图 3.为主要任务收集的统计数据。
在“高级热点”屏幕上,移至“自下而上”选项卡(见图 4)。自下而上的视图将显示对任务的深入了解。使用“分组”下拉菜单选择“任务域/任务类型/任务持续时间类型/功能/调用栈”的视图。
图 4.自下而上的视图将显示对报告任务的深入了解。
您可以从“高级热点”屏幕上的其他选项卡继续浏览代码配置文件的报告。例如,“平台”视图将描述命名事件的时间(见图 5)。
图 5.从平台视图中看到的命名事件的时间。
这些报告中有很多信息供您检查。如欲了解更多信息,请参见英特尔 VTune Amplifier 教程的文档。您将找到为您提供示例的 HTML 和 PDF 文档,以及解决能源使用、检测热点以及确定阻止并行化的锁定和等待方面的 Windows *、Linux *、C ++、Fortran、OpenMP* 和 Android* 问题的示例代码。
自定义事件
您可以对想要优化的 UE4 内的任何代码片段进行调查,方法是用本指南中介绍的循环计数器 进行封装。这可以让您定义自定义事件并在英特尔 VTune 分析器 UI 中遵照其在线程时间线方面的执行。
结论
现代处理器上的性能需求远远超过优化单线程性能。高性能代码必须是:
- 线程化且可扩展,可利用多个 CPU
- 针对有效使用 SIMD 单元进行了矢量化处理
- 经过调整,可充分利用非统一的内存架构和缓存
借助英特尔 VTune Amplifier,您可以通过单一易用的分析界面获得先进的分析功能。UE4 和英特尔 VTune Amplifier 相互配合,支持您调查代码并进行分析,从而在多个内核上顺畅运行。此外,优化工具还允许您更快速地创建代码,获取更精确的 CPU 和 GPU 数据,调查线程和内存使用情况,并且开销较低。此外,您可以通过简单的分析将数据转化为洞察,从而更快速地获取答案。立即下载最新版本的 Unreal Engine 和英特尔 VTune Amplifier,将您的游戏开发工作提升到新的水平。