diff --git a/extra/sqtt/roc.py b/extra/sqtt/roc.py index 893ed8132f..0026acef9b 100755 --- a/extra/sqtt/roc.py +++ b/extra/sqtt/roc.py @@ -22,9 +22,7 @@ class WaveSlot: @property def cu_loc(self) -> str: return f"SE:{self.se} CU:{self.cu}" @property - def simd_loc(self) -> str: return f"{self.cu_loc} SIMD:{self.simd}" - @property - def wave_loc(self) -> str: return f"{self.simd_loc} W:{self.wave_id}" + def wave_loc(self) -> str: return f"{self.cu_loc} SIMD:{self.simd} W:{self.wave_id}" @dataclasses.dataclass(frozen=True) class WaveExec(WaveSlot): diff --git a/tinygrad/viz/js/index.js b/tinygrad/viz/js/index.js index 5c63743377..bc0243804e 100644 --- a/tinygrad/viz/js/index.js +++ b/tinygrad/viz/js/index.js @@ -171,7 +171,7 @@ const formatUnit = (d, unit="") => d3.format(".3~s")(d)+unit; const colorScheme = {TINY:new Map([["Schedule","#1b5745"],["get_program","#1d2e62"],["compile","#63b0cd"],["DEFAULT","#354f52"]]), DEFAULT:["#2b2e39", "#2c2f3a", "#31343f", "#323544", "#2d303a", "#2e313c", "#343746", "#353847", "#3c4050", "#404459", "#444862", "#4a4e65"], - BUFFER:["#342483", "#3E2E94", "#4938A4", "#5442B4", "#5E4CC2", "#674FCA"], SE:new Map([["OCC", "#101725"], ["INST", "#0A2042"]]),} + BUFFER:["#342483", "#3E2E94", "#4938A4", "#5442B4", "#5E4CC2", "#674FCA"], SIMD:new Map([["OCC", "#101725"], ["INST", "#0A2042"]]),} const cycleColors = (lst, i) => lst[i%lst.length]; const rescaleTrack = (source, tid, k) => { diff --git a/tinygrad/viz/serve.py b/tinygrad/viz/serve.py index 39ab4c1225..b2a3b0515d 100755 --- a/tinygrad/viz/serve.py +++ b/tinygrad/viz/serve.py @@ -296,7 +296,7 @@ def unpack_sqtt(key:tuple[str, int], data:list, p:ProfileProgramEvent) -> tuple[ if (u:=w.wave_loc) not in inst_units: inst_units[u] = itertools.count(0) n = next(inst_units[u]) if (events:=cu_events.get(w.cu_loc)) is None: cu_events[w.cu_loc] = events = [] - events.append(ProfileRangeEvent(w.simd_loc, loc:=f"INST WAVE:{w.wave_id} N:{n}", Decimal(w.begin_time), Decimal(w.end_time))) + events.append(ProfileRangeEvent(f"SIMD:{w.simd}", loc:=f"INST WAVE:{w.wave_id} N:{n}", Decimal(w.begin_time), Decimal(w.end_time))) wave_insts.setdefault(w.cu_loc, {})[f"{u} N:{n}"] = {"wave":w, "disasm":disasm, "prg":p, "run_number":n, "loc":loc} # * OCC waves units:dict[str, itertools.count] = {} @@ -307,7 +307,7 @@ def unpack_sqtt(key:tuple[str, int], data:list, p:ProfileProgramEvent) -> tuple[ if occ.start: wave_start[u] = occ.time else: if (events:=cu_events.get(occ.cu_loc)) is None: cu_events[occ.cu_loc] = events = [] - events.append(ProfileRangeEvent(occ.simd_loc, f"OCC WAVE:{occ.wave_id} N:{next(units[u])}", Decimal(wave_start.pop(u)), Decimal(occ.time))) + events.append(ProfileRangeEvent(f"SIMD:{occ.simd}", f"OCC WAVE:{occ.wave_id} N:{next(units[u])}", Decimal(wave_start.pop(u)),Decimal(occ.time))) return cu_events, list(units), wave_insts def device_sort_fn(k:str) -> tuple[int, str, int]: