Как начать писать низкоуровневый GPU-профилировщик?


8

В последние дни я изучал аппаратные профилировщики GPU корпорации (Qualcomm, PowerVR, Intel). Я заметил, что эти инструменты, по-видимому, дают более низкоуровневую информацию, чем профилировщики графических процессоров, которые я использовал в прошлом - захват и апитрас кадров XCode OpenGL ES - в котором только перечислялись, какие вызовы OpenGL были сделаны и какое состояние тока ресурсы есть.

Как мне начать, если я хочу создать низкоуровневый инструмент, который отображает такие вещи, как пропуски кэша сэмплера и код ассемблера шейдера?

gpu 

Ответы:


6

Для базовых данных синхронизации GPU вы можете использовать запросы метки времени D3D или эквивалентные запросы таймера OpenGL .

Любые низкоуровневые аппаратные данные, такие как пропадание кеша, будут зависеть от производителя. Каждый поставщик графических процессоров имеет свой собственный API или расширение для предоставления доступа к низкоуровневым данным о производительности на своем оборудовании. API-интерфейсы различаются по тому, как они работают, и они не обязательно все раскрывают одни и те же детали. Доступные данные также могут различаться для разных моделей чипов одного и того же производителя, поэтому вам, вероятно, нужно немного узнать о том, как работает оборудование, чтобы понять его.

Здесь приведены ссылки на соответствующие API для большинства основных поставщиков графических процессоров.


О, круто, наверное, мне следовало немного покопаться на сайтах корпорации. Я предположил, что, поскольку apitrace не предлагал эти детали, происходило какое-то изменение. Спасибо!

о, я думал, что он хотел написать еще один перфкит. что ответ будет то, что это невозможно, если вы не делаете свое собственное оборудование.
v.oddou
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.