2016-05-13 8 views
0

Я изучал возможности Halide в течение нескольких недель, и чтобы лучше понять, что делает Halide, я хотел бы попробовать использовать профилировщик с галогенидом. Допустим, у меня есть тест Func. (Для удобства чтения я не учитывал объявления переменных и т. Д.) f=Func(test); f(x,y)=some_image(x,y)*2; Если я хочу запустить это, я звоню f.realize(some_image.width(),some_image.height()). Теперь, если я правильно понял, когда хочу прокомментировать это, мне нужно использовать класс halide_profiler_func_stats. Но я не могу найти способ доступа к этому и/или другому способу получения данных профилирования.Как использовать профилировщик Halide

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

+0

Для других это код, который я использовал: 'Target t = get_host_target(); t.setfeature (Target :: Profile); myfunc.compile_jit (t); result = myfunc.realize (ширина, высота); ' – pietervanderstar

+0

У меня есть следующий вопрос. Теперь профайлер запускает только один, но как мне установить это, скажем, 100? Я только нашел функции, которые возвращают количество выполненных прогонов. Размещение реализации в цикле позволяет профайлеру работать 100 раз с 1 прогоном, и это не совсем то, что я ищу. – pietervanderstar

+0

Я пробовал компиляцию AOT, а затем профилировщик накапливался на всех прогонах. @ Андэд Адамс, он работал без меня, думая о HalideRuntime.h – pietervanderstar

ответ

1

Обычный способ использования профиля - добавить «-profile» в HL_TARGET или HL_JIT_TARGET или использовать для создания эквивалентного целевого объекта и передать его для реализации. После каждого запуска выдается вся информация профилирования.

Вам нужно будет беспокоиться о вещах в HalideRuntime.h, если вы компилируете AOT и хотите сообщить о профилировании какой-либо особым образом или проверить его с помощью кода.

+0

Это помогло подтвердить, что я был на правильном пути, я думаю, что новое начало недели также помогло. Я обнаружил, что дважды вызывал jit_compile, один раз с функцией профиля, один раз без него. Это означало, что профайлер не был активным. – pietervanderstar

0

В заголовочном файле HalideRuntime.h, расположенном в том же каталоге include, что и Halide.h, вы найдете функцию halide_profiler_get_state(), которая вернет halide_profiler_state ptr; вы можете использовать этот ptr для доступа к массиву функций, содержащихся с переменной-членом funcs, которая является ptr для halide_profiler_func_stats.

 Смежные вопросы

  • Нет связанных вопросов^_^