From 6c487656f930e658e5fcbeb09d01ec9b386ddba5 Mon Sep 17 00:00:00 2001 From: qazal <77887910+Qazalin@users.noreply.github.com> Date: Mon, 2 Feb 2026 01:41:42 -0500 Subject: [PATCH] viz: kernel metadata from rodata entry (#14487) --- tinygrad/viz/serve.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/tinygrad/viz/serve.py b/tinygrad/viz/serve.py index 04b71dbe87..ececf638b0 100755 --- a/tinygrad/viz/serve.py +++ b/tinygrad/viz/serve.py @@ -422,16 +422,14 @@ def get_stdout(f: Callable) -> str: return buf.getvalue() def amd_readelf(lib:bytes) -> list[dict]: + from tinygrad.runtime.autogen import amdgpu_kd from tinygrad.runtime.support.elf import elf_loader - import msgpack - _, sections, __ = elf_loader(lib) - data = next((s for s in sections if s.name.startswith(".note"))).content - namesz, descsz, typ = struct.unpack_from(hdr:=" 0] + image, sections, __ = elf_loader(lib) + rodata = next((s for s in sections if s.name == ".rodata")).content + kd = amdgpu_kd.llvm_amdhsa_kernel_descriptor_t.from_buffer_copy(bytearray(rodata)) + vgpr_gran = kd.compute_pgm_rsrc1 & amdgpu_kd.COMPUTE_PGM_RSRC1_GRANULATED_WORKITEM_VGPR_COUNT + return [{"label":f"{resource} Alloc", "value":val} for resource,val in [("VGPR", (vgpr_gran+1)*8-7), ("LDS",kd.group_segment_fixed_size), + ("Scratch", kd.private_segment_fixed_size)] if val > 0] def amd_decode(lib:bytes, target:int) -> dict[int, Any]: # Any is the Inst class from extra.assembly.amd.dsl from tinygrad.runtime.support.elf import elf_loader