如何使用Halide Profiler

时间:2016-05-13 12:23:32

标签: c++ profiler halide

我一直在探索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本身看到探查器的功能。我该怎么做?

2 个答案:

答案 0 :(得分:1)

使用配置文件的常用方法是将“-profile”添加到HL_TARGET或HL_JIT_TARGET,或者用于构建等效的Target对象并将其传递给实现。这会在每次运行后打印出所有分析信息。

如果您正在编译AOT并希望以某种特殊方式报告分析信息或使用代码检查它,您需要担心HalideRuntime.h中的内容。

答案 1 :(得分:0)

在HalideRuntime.h头文件中,与Halide.h位于同一个include目录中,你会发现一个halide_profiler_get_state()函数将返回一个halide_profiler_state ptr;然后,您可以使用该ptr来获取funcs成员变量所包含的函数数组,该变量是halide_profiler_func_stats的ptr。