halide_profiler_func_kind#

enum halide_profiler_func_kind#

The functions below here are relevant for pipelines compiled with the -profile target flag, which runs a sampling profiler thread alongside the pipeline.

-profile also forces a synchronous halide_device_sync after every GPU kernel launch so per-Func times reflect real compute time; this removes any overlap the schedule was getting, so absolute runtimes under -profile run slower than without. Tag identifying what a halide_profiler_func_stats entry represents. Lets the reporter handle bookkeeping slots and synthetic entries by tag rather than by index or by parsing the name.

Values:

enumerator halide_profiler_func_kind_func#
enumerator halide_profiler_func_kind_overhead#
enumerator halide_profiler_func_kind_thread_idle#
enumerator halide_profiler_func_kind_malloc#
enumerator halide_profiler_func_kind_free#
enumerator halide_profiler_func_kind_copy_to_host#

A halide_copy_to_host call.

The buffer_func_id field is the canonical id of the Func whose buffer is being copied.

enumerator halide_profiler_func_kind_copy_to_device#
enumerator halide_profiler_func_kind_allocation#

A hoist_storage Realize whose Produce sits deeper in the IR.

Carries the memory columns for the buffer’s lifetime; the time/compute columns belong to the separate production entry.