gpu-workload-troubleshooter

Diagnose GPU workload failures on Kubernetes using a decision tree with kubectl commands.

Updated Jul 16, 2026
One-click install
npx skills add https://github.com/Cloud-Byte-Consulting/plugins --skill gpu-workload-troubleshooter-cloud-byte-consulting
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gpu-workload-troubleshooter
Source: https://github.com/Cloud-Byte-Consulting/plugins/tree/main/gpu-research-platform/skills/gpu-workload-troubleshooter
Command: npx skills add https://github.com/Cloud-Byte-Consulting/plugins --skill gpu-workload-troubleshooter-cloud-byte-consulting

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? GPU workloads on Kubernetes fail in many distinct ways — pods stuck Pending, GPUs not registered, nodes that won't scale, CrashLoopBackOff during model loads, and confusing OOM errors — and engineers often flail between random fixes instead of finding the broken link in the GPU scheduling chain. ## Core Features & Use Cases - Decision-tree diagnosis: Walks from symptom to root cause across five branches — Pending pods, unregistered GPU nodes, unhealthy GPU hardware, CrashLoopBackOff during model load, and OOM classification — with the exact kubectl command at each step. - Scheduling failure analysis: Decodes FailedScheduling messages including Insufficient nvidia.com/gpu, untolerated taints, node selector mismatches, and autoscaler/NodeClaim issues. - OOM disambiguation: Distinguishes host-RAM OOMKilled (exit 137) from CUDA out-of-memory (VRAM), which have entirely different fixes. - Use Case: A researcher reports their training pod has been Pending for an hour with "0/2 nodes are available: 2 Insufficient nvidia.com/gpu". Follow the tree to discover the device plugin DaemonSet isn't scheduled on the GPU nodes, so the scheduler is blind to the GPUs. ## Quick Start Use the gpu-workload-troubleshooter skill to diagnose why my GPU pod is stuck Pending with an Insufficient nvidia.com/gpu scheduling error.

Frequently Asked Questions about gpu-workload-troubleshooter

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why is my GPU pod stuck Pending with Insufficient nvidia.com/gpu?

Insufficient nvidia.com/gpu means the scheduler sees no allocatable GPUs. Check node allocatable resources with kubectl get nodes; if a GPU node shows zero, the NVIDIA device plugin DaemonSet is missing, unscheduled, or crashed on that node.

How do I fix untolerated taint errors on GPU nodes in Kubernetes?

Add a toleration for the GPU pool taint to your pod spec, typically key nvidia.com/gpu with operator Exists and effect NoSchedule. GPU pools taint nodes deliberately, so every GPU pod needs the matching toleration; never remove the taint itself.

What is the difference between OOMKilled and CUDA out of memory?

OOMKilled with exit code 137 means the container exceeded its host RAM limit, fixed by raising memory limits sized for load-time peaks. CUDA out of memory is VRAM exhaustion inside the GPU, fixed with smaller batches, quantization, or a larger GPU or MIG slice.

Why does my GPU node launch but pods stay Pending?

The node likely never registered the nvidia.com/gpu resource, shown as Initialized False with gpu resource not registered on the NodeClaim. Causes include a node image without the NVIDIA driver or toolkit, or the device plugin DaemonSet not landing on the new node.

Why does my inference server get killed during model loading?

Exit 137 with liveness probe failures means the kubelet is killing a healthy but slow server while it loads large model weights. Add a startupProbe budgeted to worst-case load time, such as periodSeconds 10 with failureThreshold 60, while keeping liveness tight afterward.

When should GPU hardware failures be escalated to the cloud provider?

On managed Kubernetes, conditions like AcceleratedHardwareReady False or DCGM XID errors indicate hardware faults the provider must replace. Cordon and drain the node, collect node name, XID errors, and timestamps, then open a ticket rather than reinstalling drivers yourself.