0

几个星期以来,我一直在探索 Halide 的可能性,为了更好地了解 Halide 正在做什么,我想尝试使用 halide profiler。假设我有一个 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 本身查看分析器的功能。我该怎么做呢?

4

2 回答 2

1

通常使用profile的方式是在HL_TARGET或HL_JIT_TARGET中添加“-profile”,或者使用构建一个等价的Target对象并传递给实现。这会在每次运行后打印出所有的分析信息。

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

于 2016-05-13T17:31:54.797 回答
0

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

于 2016-05-13T16:20:07.523 回答