From d6c7456bd0904408ff3acf2893c9234a927c2c20 Mon Sep 17 00:00:00 2001 From: Donato Capitella Date: Sun, 11 Jan 2026 10:02:22 +0000 Subject: [PATCH] adding system info to benchmark display --- benchmark/generate_results_json.py | 13 ++++++++++- benchmark/results/system_info.json | 6 +++++ benchmark/run_benchmarks.sh | 35 ++++++++++++++++++++++++++++++ docs/assets/index2.js | 26 ++++++++++++++++++++++ docs/index.html | 7 +++--- docs/results.json | 9 ++++++-- 6 files changed, 90 insertions(+), 6 deletions(-) create mode 100644 benchmark/results/system_info.json diff --git a/benchmark/generate_results_json.py b/benchmark/generate_results_json.py index 8e5e3d3..7ff7954 100644 --- a/benchmark/generate_results_json.py +++ b/benchmark/generate_results_json.py @@ -281,10 +281,21 @@ for results_dir, is_rpc_source in RESULT_SOURCES: } runs.append(run) +# Read system_info.json +sys_info = {} +if RESULT_SOURCES: + si_path = os.path.join(RESULT_SOURCES[0][0], "system_info.json") + if os.path.exists(si_path): + try: + with open(si_path) as f: + sys_info = json.load(f) + except: + pass + # Meta meta = { "generated_at": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()), - "os_kernel": "Fedora 42 — Linux 6.15.9-201.fc42.x86_64 (Sat Aug 2 11:37:34 UTC 2025)", + "system_info": sys_info, "llamacpp_builds": [{"hash": h, "number": n} for (h, n) in sorted(builds)], "environments": sorted(envs), "notes": "pp512 = prompt processing; tg128 = text generation; t/s = tokens/second", diff --git a/benchmark/results/system_info.json b/benchmark/results/system_info.json new file mode 100644 index 0000000..d29bc7f --- /dev/null +++ b/benchmark/results/system_info.json @@ -0,0 +1,6 @@ +{ + "distro": "Fedora Linux 42 (Workstation Edition)", + "kernel": "6.18.3-100.fc42.x86_64", + "linux_firmware": "linux-firmware-20251111-1.fc42.noarch", + "timestamp": "09 Jan 2026" +} \ No newline at end of file diff --git a/benchmark/run_benchmarks.sh b/benchmark/run_benchmarks.sh index f1dc04d..a53a5bd 100755 --- a/benchmark/run_benchmarks.sh +++ b/benchmark/run_benchmarks.sh @@ -5,6 +5,41 @@ MODEL_DIR="$(realpath models)" RESULTDIR="results" mkdir -p "$RESULTDIR" +# Capture system info +if [[ ! -f "$RESULTDIR/system_info.json" ]]; then + python3 -c ' +import platform, json, datetime +def get_distro(): + try: + with open("/etc/os-release") as f: + for line in f: + if line.startswith("PRETTY_NAME="): + return line.split("=", 1)[1].strip().strip("\"") + except: + return "Linux" + return "Linux" + +def get_linux_firmware(): + try: + import subprocess + result = subprocess.run(["rpm", "-q", "linux-firmware"], capture_output=True, text=True) + if result.returncode == 0: + return result.stdout.strip() + except: + pass + return "unknown" + +info = { + "distro": get_distro(), + "kernel": platform.release(), + "linux_firmware": get_linux_firmware(), + "timestamp": datetime.datetime.now().strftime("%d %b %Y") +} +print(json.dumps(info)) +' > "$RESULTDIR/system_info.json" + echo "Captured system info to $RESULTDIR/system_info.json" +fi + # Pick exactly one .gguf per model: either # - any .gguf without "-000*-of-" (single-file models) # - or the first shard "*-00001-of-*.gguf" diff --git a/docs/assets/index2.js b/docs/assets/index2.js index e8fd973..d1a75fa 100644 --- a/docs/assets/index2.js +++ b/docs/assets/index2.js @@ -29,6 +29,7 @@ document.addEventListener("DOMContentLoaded", async () => { try { const res = await fetch("results.json"); const data = await res.json(); + updateHeader(data.meta || {}); prepareData(data?.runs || []); initializeControls(); renderTables(); @@ -765,3 +766,28 @@ function setupResizeOverlay(tableWrap, backendList, table) { resizeObserver.observe(tableWrap); tableWrap._overlayResize = resizeObserver; } + +function updateHeader(meta) { + const sysInfo = document.getElementById("sys-info"); + const runInfo = document.getElementById("run-info"); + const info = meta.system_info || {}; + + let buildStr = "llama.cpp build unknown"; + if (meta.llamacpp_builds && meta.llamacpp_builds.length > 0) { + const b = meta.llamacpp_builds[meta.llamacpp_builds.length - 1]; + buildStr = `llama.cpp build ${b.hash} (${b.number})`; + } + + if (sysInfo && (info.distro || info.kernel)) { + const parts = []; + if (info.distro) parts.push(info.distro); + if (info.kernel) parts.push(`Linux ${info.kernel}`); + if (info.linux_firmware) parts.push(info.linux_firmware); + parts.push(buildStr); + sysInfo.textContent = parts.join(" · "); + } + + if (runInfo && info.timestamp) { + runInfo.innerHTML = `Benchmarks captured ${info.timestamp} · Repo: kyuz0/amd-strix-halo-toolboxes`; + } +} diff --git a/docs/index.html b/docs/index.html index f91718a..a0ab727 100644 --- a/docs/index.html +++ b/docs/index.html @@ -12,9 +12,10 @@

AMD Ryzen AI MAX+ 395 “Strix Halo” — Benchmark Grid

Framework Desktop · AMD Ryzen AI MAX 395+ · 128GB unified RAM

-

Fedora 42 · Linux 6.18.0-0.rc5.243.vanilla.fc42.x86_64 · llama.cpp build 1c398dc9e (7034)

-

Benchmarks captured 14 Nov 2025 · Repo: kyuz0/amd-strix-halo-toolboxes

+

Fedora 42 · Linux 6.18.0-0.rc5.243.vanilla.fc42.x86_64 · llama.cpp build 1c398dc9e (7034)

+

Benchmarks captured 14 Nov 2025 · Repo: kyuz0/amd-strix-halo-toolboxes

diff --git a/docs/results.json b/docs/results.json index e087792..4318157 100644 --- a/docs/results.json +++ b/docs/results.json @@ -1,7 +1,12 @@ { "meta": { - "generated_at": "2026-01-10T10:27:18Z", - "os_kernel": "Fedora 42 \u2014 Linux 6.15.9-201.fc42.x86_64 (Sat Aug 2 11:37:34 UTC 2025)", + "generated_at": "2026-01-11T10:01:18Z", + "system_info": { + "distro": "Fedora Linux 42 (Workstation Edition)", + "kernel": "6.18.3-100.fc42.x86_64", + "linux_firmware": "linux-firmware-20251111-1.fc42.noarch", + "timestamp": "09 Jan 2026" + }, "llamacpp_builds": [ { "hash": "9c142e3a2",