Skip to content

feat(rocm-smi-exporter): AMD GPU exporter that enumerates the gfx1151 iGPU#16

Open
joryirving wants to merge 1 commit into
defilantech:mainfrom
joryirving:feat/rocm-smi-exporter
Open

feat(rocm-smi-exporter): AMD GPU exporter that enumerates the gfx1151 iGPU#16
joryirving wants to merge 1 commit into
defilantech:mainfrom
joryirving:feat/rocm-smi-exporter

Conversation

@joryirving

@joryirving joryirving commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

What

Ports the AMD GPU exporter into llmkube-runtimes as its supply-chain home (deliverable 1 of defilantech/LLMKube#700): source under cmd/rocm-smi-exporter, a rocm-smi-exporter/Dockerfile, and a build-exporter.yml CI publishing ghcr.io/defilantech/llmkube-rocm-smi-exporter.

Why

Fixes deliverable 1 of defilantech/LLMKube#700. No existing community/upstream exporter enumerates the Strix Halo gfx1151 iGPU — device-metrics-exporter / amd_smi_exporter are Instinct/datacenter-scoped. This one reads the Linux AMDGPU sysfs + hwmon directly (no rocm-smi binary, no ROCm userspace), which is what lets it see the iGPU. Hardware-verified on the gfx1151 box. Moving it here gives LLMKube an Apache-2.0 home + org-published image to depend on instead of a personal-namespace image.

How

  • cmd/rocm-smi-exporter/ — pure Go stdlib only (no module deps → no go.mod/go.sum churn), CGO-off, with unit tests.
  • rocm-smi-exporter/Dockerfile$BUILDPLATFORM cross-compile → distroless static-debian13:nonroot (uid 65534), EXPOSE 9494. Mirrors coder/ and vulkan/ (native cross-compile, no QEMU compile cost). Context is the repo root since it builds the repo-local package.
  • .github/workflows/build-exporter.yml — mirrors build-coder.yml: go test gate + QEMU/buildx multi-arch build, a /metrics smoke (0-GPU runner still serves the scrape-health series), SBOM, candidate+release tags, keyless attestation, and a stable build gate.
  • CI is yours to own — you offered to set up/co-maintain CI, so retune the image name / runners / smoke or drop the workflow entirely if you'd rather wire it; same for the DCO/author attribution.

Follow-up (separate LLMKube PR, deliverables 1 + 3): the DaemonSet + a Grafana row in config/grafana/llmkube-gpu-dashboard.json wired to these metric names + the llama.cpp SLO signals (deliverable 2 already live on ornith-35b).

Checklist

  • Tier-1 gate (./scripts/tier1-gate.sh <image>) — that gate is scoped to the llama runtime images; the exporter's equivalent (go test + a /metrics smoke) runs in build-exporter.yml. Couldn't run buildx on the dev box, so image build is CI-validated.
  • Not bumping the llama.cpp pin — N/A.
  • All commits are signed off (git commit -s) per DCO.

… iGPU

A small Prometheus exporter for AMD GPU telemetry that reads the Linux
AMDGPU sysfs + hwmon trees directly — no rocm-smi binary, no ROCm
userspace. Going straight to the kernel driver's sysfs is what lets it
enumerate the Strix Halo gfx1151 iGPU that the Instinct-scoped
device-metrics-exporter / amd_smi_exporter cannot see (#700, deliverable 1).

- cmd/rocm-smi-exporter: pure Go stdlib (no module deps), CGO-off, tested.
- rocm-smi-exporter/Dockerfile: $BUILDPLATFORM cross-compile -> distroless
  static nonroot (uid 65534), EXPOSE 9494; mirrors coder/vulkan.
- build-exporter.yml: go test + QEMU/buildx multi-arch build, /metrics
  smoke, SBOM, candidate+release tags, keyless attestation, stable build
  gate (mirrors build-coder.yml).

Hardware-verified on the gfx1151 Strix Halo box.

Co-authored-by: Jory Irving <jory.irving@stackadapt.com>
Signed-off-by: Jory Irving <jory.irving@stackadapt.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant