Skip to content

Instantly share code, notes, and snippets.

@gmarkall
Created March 13, 2025 20:34
Show Gist options
  • Save gmarkall/827fdc04c45aa2de0fd3678276cccce3 to your computer and use it in GitHub Desktop.
Save gmarkall/827fdc04c45aa2de0fd3678276cccce3 to your computer and use it in GitHub Desktop.
Numba internal timers example
from numba import jit
from numba.core import event as ev
@jit
def add(x, y):
return x + y
with ev.install_recorder("numba:run_pass") as recorder:
add(1, 2)
for timestamp, event in recorder.buffer:
data = event.data
print(f"{timestamp}: {event.kind}, {event.status}, {data['name']}")
timers = add.get_metadata(add.signatures[0])['timers']
for k, v in timers.items():
print(f"{k}: {v}")
1741898033.6816096: numba:run_pass, EventStatus.START, translate_bytecode [add]
1741898033.6819935: numba:run_pass, EventStatus.END, translate_bytecode [add]
1741898033.682033: numba:run_pass, EventStatus.START, fixup_args [add]
1741898033.6820424: numba:run_pass, EventStatus.END, fixup_args [add]
1741898033.6820695: numba:run_pass, EventStatus.START, ir_processing [add]
1741898033.6821673: numba:run_pass, EventStatus.END, ir_processing [add]
1741898033.682199: numba:run_pass, EventStatus.START, with_lifting [add]
1741898033.6822817: numba:run_pass, EventStatus.END, with_lifting [add]
1741898033.6823103: numba:run_pass, EventStatus.START, inline_closure_likes [add]
1741898033.6825051: numba:run_pass, EventStatus.END, inline_closure_likes [add]
1741898033.6825356: numba:run_pass, EventStatus.START, rewrite_semantic_constants [add]
1741898033.6825533: numba:run_pass, EventStatus.END, rewrite_semantic_constants [add]
1741898033.6825778: numba:run_pass, EventStatus.START, dead_branch_prune [add]
1741898033.6826196: numba:run_pass, EventStatus.END, dead_branch_prune [add]
1741898033.6826513: numba:run_pass, EventStatus.START, generic_rewrites [add]
1741898033.682771: numba:run_pass, EventStatus.END, generic_rewrites [add]
1741898033.6828022: numba:run_pass, EventStatus.START, Rewrite dynamic raises [add]
1741898033.682811: numba:run_pass, EventStatus.END, Rewrite dynamic raises [add]
1741898033.6828349: numba:run_pass, EventStatus.START, make_function_op_code_to_jit_function [add]
1741898033.6828449: numba:run_pass, EventStatus.END, make_function_op_code_to_jit_function [add]
1741898033.6828659: numba:run_pass, EventStatus.START, inline_inlinables [add]
1741898033.682886: numba:run_pass, EventStatus.END, inline_inlinables [add]
1741898033.6829078: numba:run_pass, EventStatus.START, dead_branch_prune [add]
1741898033.6829464: numba:run_pass, EventStatus.END, dead_branch_prune [add]
1741898033.6829686: numba:run_pass, EventStatus.START, find_literally [add]
1741898033.6829789: numba:run_pass, EventStatus.END, find_literally [add]
1741898033.682999: numba:run_pass, EventStatus.START, literal_unroll [add]
1741898033.6830063: numba:run_pass, EventStatus.END, literal_unroll [add]
1741898033.6830258: numba:run_pass, EventStatus.START, reconstruct_ssa [add]
1741898033.6831725: numba:run_pass, EventStatus.END, reconstruct_ssa [add]
1741898033.6831985: numba:run_pass, EventStatus.START, dead_branch_prune [add]
1741898033.6832254: numba:run_pass, EventStatus.END, dead_branch_prune [add]
1741898033.6832473: numba:run_pass, EventStatus.START, LiteralPropagation [add]
1741898033.6832561: numba:run_pass, EventStatus.END, LiteralPropagation [add]
1741898033.6832771: numba:run_pass, EventStatus.START, nopython_type_inference [add]
1741898033.6842723: numba:run_pass, EventStatus.END, nopython_type_inference [add]
1741898033.6843085: numba:run_pass, EventStatus.START, strip_phis [add]
1741898033.684411: numba:run_pass, EventStatus.END, strip_phis [add]
1741898033.6844416: numba:run_pass, EventStatus.START, inline_overloads [add]
1741898033.6845214: numba:run_pass, EventStatus.END, inline_overloads [add]
1741898033.6845484: numba:run_pass, EventStatus.START, nopython_rewrites [add]
1741898033.6847816: numba:run_pass, EventStatus.END, nopython_rewrites [add]
1741898033.6848123: numba:run_pass, EventStatus.START, nopython_supported_feature_validation [add]
1741898033.684838: numba:run_pass, EventStatus.END, nopython_supported_feature_validation [add]
1741898033.6848903: numba:run_pass, EventStatus.START, ir_legalization [add]
1741898033.6849747: numba:run_pass, EventStatus.END, ir_legalization [add]
1741898033.685018: numba:run_pass, EventStatus.START, annotate_types [add]
1741898033.6850486: numba:run_pass, EventStatus.END, annotate_types [add]
1741898033.6850884: numba:run_pass, EventStatus.START, native_lowering [add]
1741898033.702005: numba:run_pass, EventStatus.END, native_lowering [add]
1741898033.7020702: numba:run_pass, EventStatus.START, nopython_backend [add]
1741898033.702097: numba:run_pass, EventStatus.END, nopython_backend [add]
1741898033.7021468: numba:run_pass, EventStatus.START, dump_parfor_diagnostics [add]
1741898033.7021537: numba:run_pass, EventStatus.END, dump_parfor_diagnostics [add]
llvm_lock: 0.019122734243865125
compiler_lock: 0.12145549101114739
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment