Perfetto – это системный профилировщик с открытым исходным кодом, трассировщик приложений и анализатор трассировки для платформ Linux, Android и Chrome, а также приложений пользовательского пространства. Программа может наглядно представить использование ЦП и памяти, а также энергопотребление. Поддержка графического процессора ограничена, поскольку программа способна измерять частоту графического процессора только тогда, когда драйвер выводит эту информацию через ftrace.
Perfetto также может быть расширен благодаря Tracing C++ SDK, который «позволяет приложениям в пользовательском пространстве генерировать события трассировки и добавлять в трассировку Perfetto более специфичный для приложения контекст». Collabora использовал SDK трассировки, чтобы добавить поддержку профилирования производительности графического процессора Mali Midgard в проекте gfx-pps с использованием аппаратных счетчиков графического процессора Mali, предоставляемых через Panfrost – драйвер с открытым исходным кодом для Mali GPU.
После выполнения инструкций по установке вы сможете запускать следующие файлы для трассировки и профилирования:
- служба трассировки.
- служба проверки ОС traced_probes.
- инструмент командной строки perfetto для записи трассировок.
- producer-gpu обеспечивающий доступ к источнику данных Panfrost
Также существует файл gpu.cfgconfig, описывающий, что нужно отслеживать, и который находится в каталоге gfx-pps/scripts.
Чтобы быстро приступить к работе, выполните следующую команду
1 2 3 4 |
traced traced_probes producer-gpu perfetto --txt -c gpu.cfg -o trace |
Запустите любую рабочую нагрузку графического процессора, которую вы хотите профилировать. После завершения трассировки вы можете открыть файл трассировки с помощью ui.perfetto.dev в браузере Chrome (мы сначала попробовали в Firefox, и он не загружается).
На приведенном выше снимке экрана показаны некоторые параметры графического процессора, включая балансировку CPU/GPU, балансировку загрузки vertex- и fragment-процессоров и балансировку конвейерной технологии Tri-Pipe(арифметический конвейер/ конвейер ввода-вывода/конвейер текстур) с использованием трассировки WebGL Aquarium. При этом использовался процессор Rockchip RK3399, оснащенный графическим процессором Mali-860MP4 Midgard.
Проект gfx-pps находится в стадии активной разработки на FreeDesktop’s GitLab и лицензируется по лицензии MIT. Вы найдете источник данных Panfrost в файле gfx-pps / src / gpu / panfrost / gpu_ds.h, и планируется внедрение большего количества источников данных GPU.
Более подробную информацию о проекте gfx-pps можно найти в блоге Collabora.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.