如何使用卤化物分析器

How to use Halide profiler

几周来我一直在探索 Halide 的可能性,为了更好地理解 Halide 的作用,我想尝试使用 halide 分析器。假设我有一个 Func 测试。 (为了便于阅读,我省略了变量声明等。) f=Func(test); f(x,y)=some_image(x,y)*2; 如果我想 运行 这个我叫 f.realize(some_image.width(),some_image.height())。现在,如果我理解正确的话,当我想对此进行概要分析时,我需要使用 class halide_profiler_func_stats。但是我找不到任何方法来访问此 and/or 另一种获取分析数据的方法。

到目前为止,我一直在 运行 在我的软件中设置一个单独的计时器,但我想看看 Halide 本身的性能分析器的功能。我该怎么做?

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

的 ptr

通常使用profile的方法是在HL_TARGET或HL_JIT_TARGET中加上“-profile”,或者用来构建一个等价的Target对象并传递给实现。这会在每个 运行.

之后打印出所有分析信息

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