From 331f70aa75721153aee63bbb64cbd9800d6f2710 Mon Sep 17 00:00:00 2001 From: nimlgen <138685161+nimlgen@users.noreply.github.com> Date: Tue, 18 Nov 2025 14:29:28 +0300 Subject: [PATCH] roc: ctrlc (#13255) * roc: ctrl-c works * rm --- extra/sqtt/roc.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/extra/sqtt/roc.py b/extra/sqtt/roc.py index 41415a8caf..331ff2da2b 100644 --- a/extra/sqtt/roc.py +++ b/extra/sqtt/roc.py @@ -1,4 +1,4 @@ -import ctypes, pathlib, argparse, pickle, re, functools, dataclasses, itertools +import ctypes, pathlib, argparse, pickle, re, functools, dataclasses, itertools, threading from tinygrad.helpers import temp, unwrap, DEBUG from tinygrad.device import ProfileEvent, ProfileDeviceEvent, ProfileProgramEvent from tinygrad.runtime.ops_amd import ProfileSQTTEvent, ProfilePMCEvent @@ -126,9 +126,11 @@ def decode(profile:list[ProfileEvent]) -> _ROCParseCtx: return rocprof.ROCPROFILER_THREAD_TRACE_DECODER_STATUS_SUCCESS - try: - rocprof.rocprof_trace_decoder_parse_data(copy_cb, trace_cb, isa_cb, None) - except AttributeError as e: raise RuntimeError("Failed to find rocprof-trace-decoder. Run sudo ./extra/sqtt/install_sqtt_decoder.py to install") from e + def worker(): + try: rocprof.rocprof_trace_decoder_parse_data(copy_cb, trace_cb, isa_cb, None) + except AttributeError as e: raise RuntimeError("Failed to find rocprof-trace-decoder. Run sudo ./extra/sqtt/install_sqtt_decoder.py to install") from e + (t:=threading.Thread(target=worker, daemon=True)).start() + t.join() return ROCParseCtx if __name__ == "__main__":