From 7e57e101d52d07f48c846b1722a06392ab26be40 Mon Sep 17 00:00:00 2001 From: nimlgen <138685161+nimlgen@users.noreply.github.com> Date: Sat, 28 Mar 2026 20:25:07 +0300 Subject: [PATCH] better oor message in profiles (#15516) * better oor message * x --- tinygrad/viz/serve.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tinygrad/viz/serve.py b/tinygrad/viz/serve.py index 2145b284ad..7b84c66937 100755 --- a/tinygrad/viz/serve.py +++ b/tinygrad/viz/serve.py @@ -180,9 +180,9 @@ def enum_str(s, cache:dict[str, int]) -> int: def option(s:int|None) -> int: return 0 if s is None else s+1 -def rel_ts(ts:int|Decimal, start_ts:int) -> int: +def rel_ts(ts:int|Decimal, start_ts:int, ctx:str="") -> int: val = int(ts) - start_ts - if val < 0 or val > 0xFFFFFFFF: raise ValueError(f"timestamp out of range: ts={ts} start={start_ts} {val}") + if val < 0 or val > 0xFFFFFFFF: raise ValueError(f"timestamp out of range: {ctx} diff={val} (ts={ts} start={start_ts})") return val # Profiler API @@ -228,7 +228,8 @@ def timeline_layout(dev_events:list[tuple[int, int, float, DevEvent]], start_ts: membw = e.name.ret / (dur * 1e-6) fmt.append(f"{membw*1e-9:.0f} GB/s" if membw < 1e13 else f"{membw*1e-12:.0f} TB/s") elif e.name.tb: fmt.append("TB:"+json.dumps(e.name.tb)) - events.append(struct.pack(" bytes: @@ -242,7 +243,7 @@ def encode_mem_free(key:int, ts:int, execs:list[ProfilePointEvent], scache:dict) def graph_layout(k:str, dev_events:list[tuple[int, int, float, DevEvent]], start_ts:int, end_ts:int, peaks:list[int], dtype_size:dict[str, int], scache:dict[str, int]) -> tuple[str, bytes|None]: if k.startswith("LINE:"): - xy = [(rel_ts(e.ts, start_ts), e.key) for st,_,_,e in dev_events if isinstance(e, ProfilePointEvent)] + xy = [(rel_ts(e.ts, start_ts, f"line '{k}' on {e.device}"), e.key) for st,_,_,e in dev_events if isinstance(e, ProfilePointEvent)] peaks.append(peak:=max([y for _,y in xy])) return k.replace("LINE:", ""), struct.pack("