Я изучал возможности 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. Как мне это сделать?
Для других это код, который я использовал: 'Target t = get_host_target(); t.setfeature (Target :: Profile); myfunc.compile_jit (t); result = myfunc.realize (ширина, высота); ' – pietervanderstar
У меня есть следующий вопрос. Теперь профайлер запускает только один, но как мне установить это, скажем, 100? Я только нашел функции, которые возвращают количество выполненных прогонов. Размещение реализации в цикле позволяет профайлеру работать 100 раз с 1 прогоном, и это не совсем то, что я ищу. – pietervanderstar
Я пробовал компиляцию AOT, а затем профилировщик накапливался на всех прогонах. @ Андэд Адамс, он работал без меня, думая о HalideRuntime.h – pietervanderstar