Профилирование ядер OpenCL

Я пытаюсь оптимизировать свои ядра OpenCL, и все, что у меня есть сейчас, это NVidia Visual Profiler, который кажется довольно ограниченным. Я хотел бы увидеть построчный профиль ядер, чтобы лучше понять проблемы с объединением и т. д. Есть ли способ получить более подробные данные профилирования, чем те, которые предоставляет Visual Profiler?


person Maxim    schedule 27.02.2011    source источник


Ответы (4)


Я думаю, что AMD CodeXL — это то, что вам нужно. Это бесплатный набор инструментов, который содержит отладчик OpenCL и профилировщик графического процессора. Отладчик OpenCL позволяет выполнять построчную отладку ядер OpenCL и хост-кода, просматривать все переменные в разных рабочих группах, просматривать возникающие особые события и ошибки и т. д. отображение того, сколько времени ваша программа тратит на такие задачи, как передача данных и выполнение ядра.

Для получения дополнительной информации и ссылок для загрузки посетите http://developer.amd.com/tools-and-sdks/heterogeneous-computing/codexl/

person AmitB    schedule 15.12.2013
comment
OpenXL — GPUOPEN работает только с процессорами AMD, что является серьезным ограничением для многих пользователей. - person TripleS; 07.07.2016
comment
Я думаю, что вы смешиваете два разных термина: CodeXL — это набор инструментов от AMD и один из продуктов с открытым исходным кодом в рамках инициативы AMD GPUOpen. Я думаю, что вся цель этой инициативы состояла в том, чтобы позволить разработчикам и другим игрокам в отрасли расширить эти инструменты, чтобы они поддерживали дополнительные платформы. - person AmitB; 14.07.2016
comment
Официально CodeXL требует графического процессора AMD, драйвера и SDK для профилирования приложений OpenCL. См. раздел Предварительные требования в github.com/GPUOpen- Инструменты/CodeXL/релизы/скачать/v2.0/. - person Fergie; 21.04.2020

Нет, такого инструмента нет, но вы можете профилировать изменения кода. Попробуйте измерить скорость своего кода, измените что-нибудь и измерьте еще раз. clEnqueueNDRangeKernel имеет аргумент Event, который впоследствии можно использовать с clGetEventProfilingInfo, таймер очень точен, точность измеряется порядка микросекунд. Это единственный способ измерить производительность отдельной части кода...

person Lu4    schedule 26.04.2011


LTPV — это профилировщик OpenCL с открытым исходным кодом, который может соответствовать вашим требованиям. Пока он работает только под Linux.

(раскрытие: я разработчик этого инструмента)

person simon.denel    schedule 11.12.2013