Добрый день. В Unreal Engine 4.27 (https://docs.unrealengine.com/4.27/en-US/WhatsNew/Builds/ReleaseNotes/4_27/) появилась возможность собрать UE

с Profile-Guided Optimization (PGO). Согласно этим же release notes, на Android разрабы движка получили ускорение движка в каких-то CPU-heavy сценариях до 10% (правда на Android, про Windows ни слова).

Скажите пожалуйста, есть ли у кого-то ещё примеры, где пересборка UE под конкретную игру с PGO привела к увеличению производительности? И если да, то сколько удалось выжать? Подойдут любые публикации про PGO в UE, свои замеры и прочее.

Я уже задавал тему на официальном форуме, но там пока что тишина: https://forums.unrealengine.com/t/profile-guided-optimization-pgo-results-with-unreal-engine/1253240

Буду рад любой информации. Заранее спасибо.

7 ответов

26 просмотров

Есть. Вообще, сборка с pgo это неотъемлемая часть разработки сейчас. Выигрыш ооооочень сильно зависит от проекта.

Alexander "SonnySlave"-Zaitsev Автор вопроса
Илья Максимович
Есть. Вообще, сборка с pgo это неотъемлемая часть ...

А можете пожалуйста поделиться ссылками\своими результатами\чем-либо ещё на цифры выигрышей? Да, я понимаю, что результат сильно зависит от профиля нагрузки, типа игры (во что там больше упирается) и так далее, но мне хотя бы хоть какие-то цифры. Тогда как минимум мне будет проще приходить в другие игровые движки и показывать мол смотрите - в UE такой и такой выигрыш даёт

Alexander "SonnySlave" Zaitsev
А можете пожалуйста поделиться ссылками\своими рез...

Я уже точно не помню, но на one s, где у нас ситуация прям совсем плохая была, удалось выиграть процентов 5-6. В любом случае сейчас уже не размышляют собирать с pgo или нет. Просто собирают и не парятся

Alexander "SonnySlave"-Zaitsev Автор вопроса
Илья Максимович
Я уже точно не помню, но на one s, где у нас ситуа...

Понял, спасибо! Если вдруг вспомните ещё какие-либо цифры про PGO и UE либо попадутся подобные материалы на глаза - буду премного благодарен, если скинете :)

Alexander "SonnySlave"-Zaitsev Автор вопроса
Илья Максимович
Я уже точно не помню, но на one s, где у нас ситуа...

а не подскажете, как именно вы собираете профиль, под который оптимизировать? какой-то тестовый workload подготавливаете? может с внутренних плейтестов каких-то снимаете? Используете PGO через инструментацию или пробуете через семплирование (так называевый AutoFDO)? Какое замедление движка\игры у себя наблюдали во время снятия профиля?

Alexander "SonnySlave" Zaitsev
а не подскажете, как именно вы собираете профиль, ...

На прошлом проекте просто был автоматизирован типичный игровой сценарий через gauntlet. В нашем случае это было достаточно легко ибо гонки. На текущем хз, но скорее всего тоже будет автоматизацией прогоняться наиболее близкий к таргетному геймплей, на самых сложных по производительности сценах. Не помню, если честно, что бы прям драматическое было замедление во время генерации профайла. Но даже если оно и есть, это не оч важно было. По крайней мере в нашем случае

Alexander "SonnySlave" Zaitsev
а не подскажете, как именно вы собираете профиль, ...

Мне кажется плейтесты тоже годный вариант. Но в нашем случае у нас не было на это ресурсов, да и необходимости. Хорошо все автоматизировалось

Похожие вопросы

Обсуждают сегодня

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта