Skip to content

CarterDunn/AMD-GPU-Perf-Analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AMD GPU Perf Analyzer

A single-file, zero-install performance lab for AMD Adrenalin benchmark logs. Drop the CSVs that AMD Software writes during a gaming session and get scored diagnostics, stutter forensics, overclock stability analysis, and multi-run comparison — entirely in your browser. No server, no uploads, no build step.

Tool tour


Quick start

Use it right now: 👉 https://carterdunn.github.io/AMD-GPU-Perf-Analyzer/ — nothing to install.

Or run it locally:

  1. Download index.html (it's the whole app) and open it in a Chromium-based browser (Chrome / Edge / Brave).
  2. Drag in AMD Adrenalin performance-log CSVs — single files, multi-select, or your entire logging folder.
  3. That's it. Try it right now with the recordings in sample-data/.

Either way your data is processed entirely in your browser — the hosted page is static and uploads nothing.

To record your own logs: in AMD Software: Adrenalin Edition, open the Performance tab and enable performance logging, then play. Each session produces a FPS.Latency.*.CSV and a Hardware.*.CSV — the analyzer pairs them automatically by timestamp.

Everything stays on your machine: files are parsed locally and saved to your browser's IndexedDB so your run library is waiting for you next time you open the page.


What you get

📋 A scored performance report, in plain language

Every session gets a 0–100 score and a verdict built from calibrated thresholds: frame-pacing consistency (1% low vs average), stutter counters, thermal margins against your GPU's real throttle points, VRAM and system-RAM pressure, bottleneck detection, and power-limit analysis. Every issue comes with concrete suggested fixes.

Performance report

🔍 Stutter forensics — why did it hitch?

The FPS log samples every ~250 ms and the hardware log every ~1 s. The analyzer time-aligns them: for every frame-time spike it interpolates the exact hardware state at that moment and classifies the likely cause — core-clock dip, memory-clock dip, thermal throttle, VRAM pressure, GPU starvation (CPU/engine), or early-session shader compilation.

Stutter forensics

🧪 Overclock signatures & stability verdicts

OC settings are read straight from the telemetry where possible (observed peak memory clock, sustained board power vs reference TBP) and merged with a filename convention for offsets telemetry can't see. Every run is also scanned for instability signatures the averages hide: logging gaps (driver timeouts), truncated recordings, core-clock collapse under load, memory-clock drops under load, and freezes.

Name your files like MyGame_OC.140.40.Fast.2714.10_... (+140 MHz offset, −40 mV, fast VRAM timings, 2714 MHz memory, +10% power) and the analyzer decodes the profile automatically.

Run library

📚 A persistent run library

Every imported run is saved locally and reappears on the next open, grouped by game with OC chips and stability badges. Open any combination of runs to compare, pin one run per game as your baseline (★), and every other run of that game shows delta chips against it.

Baseline deltas

⚖️ Honest comparison — variance included

Repeat runs of the same game + OC profile are grouped, and their spread defines your noise floor: the tool tells you whether a profile's "win" is likely real or just run-to-run variance. A head-to-head table highlights best/worst per metric, including FPS-per-Watt.

Compare table

The efficiency frontier plots every session as average FPS vs average board power — dominated OC profiles (more power, no more frames) are immediately obvious.

Efficiency frontier

⚡ Achieved V/F curve

Where your silicon actually ran: core clock vs core voltage under load, per session. An undervolt win shifts the cloud up-and-left. Great for validating a tuning profile beyond "did it crash".

V/F curve

Plus full telemetry chart tabs — FPS & latency, GPU (clocks / power / thermals / cooling / memory), CPU, and system memory — with a time-range scrubber.

FPS timeline GPU thermals


🤖 Optional: local AI analysis

The analyzer is fully functional without this — every feature above is plain JavaScript. But if you run a local LLM through Ollama, two extra panels light up:

  • AI Deep Analysis — sends the session's computed statistics, OC signature, stability report, and classified stutter events to your local model and streams back a verdict, issues, exact Adrenalin tuning steps, and an honest headroom estimate.
  • Ask The Data — a chat box for follow-up questions ("why is my 1% low so much worse than my average?"), answered strictly from your loaded telemetry.

AI deep analysis Ask the data

Nothing ever leaves your machine — the page talks to Ollama at http://localhost:11434.

Setup (optional):

  1. Install Ollama and pull a model, e.g. ollama pull qwen3.5:9b.
  2. The default model is qwen3.5:9b — to use a different one, edit the OLLAMA_MODEL constant near the top of the AI section in index.html (any instruct/reasoning model works; the tool also auto-falls-back to any installed Qwen model).
  3. If you open the tool as a local file (file://), Ollama must allow browser requests: set the environment variable OLLAMA_ORIGINS=* and restart Ollama (on Windows: setx OLLAMA_ORIGINS "*"). Note: this allows any website in your browser to reach your local Ollama API — if you'd rather not, serve the tool from localhost instead (e.g. python -m http.server), which Ollama allows by default.

The report header shows a status pill (✦ model ready / local AI offline) so you always know where you stand.


Notes & limitations

  • Browser: Chromium-based browsers recommended (folder drag-drop and IndexedDB persistence). The core charts work in Firefox, but folder import may be limited.
  • CSV formats: both the current Adrenalin export and the older multi-GPU format (GPU 1 … columns) are supported; the iGPU block is ignored.
  • Hardware profile: pick your GPU/CPU/RAM once in the Hardware Profile bar — it's remembered and applied to future imports. Auto-detect infers VRAM capacity from usage if you don't.
  • Non-deterministic benchmarks: open-world runs vary by scene/weather. The repeat-run variance table exists precisely so you don't chase noise — record 2+ runs per profile.

Privacy

No analytics, no network calls except the two chart libraries loaded from cdnjs (and your own localhost Ollama if you enable the AI panels). Your benchmark data never leaves your machine.

License

MIT

About

Browser-based performance lab for AMD Adrenalin logs - scored diagnostics, stutter forensics, OC stability analysis, and optional local-LLM insights. Single HTML file, zero install.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages