Blackwell (sm_120) & RDNA 4 (gfx1201) GPU Troubleshooting: Fixing "No Kernel Image Is Available", PCIe 5.0 Riser Xid 79 & ROCm ISA Crashes
Root-cause diagnostics and copy-paste fixes for the four most common failures on RTX 5090 / 5080 / 5070 Ti / 5060 Ti (`sm_120`) and AMD RX 9070 XT (`gfx1201`): CUDA <=12.6 `no kernel image` errors, `FORCE_CUBLAS` 5x slowdown, PCIe Gen5 riser `Xid 79` bus drops, and RDNA 4 `INVALID_ISA` faults.
NVIDIA RTX 5090 32GB / RTX 5060 Ti 16GB (`sm_120`) & AMD Radeon RX 9070 XT 16GB (`gfx1201`) · Ubuntu 24.04.2 LTS (Kernel 6.13.5)
All kernel ring-buffer checks (`dmesg`), `nvidia-smi` power locks, and compiler flags run locally.
- Legacy Docker images built on CUDA 12.1–12.6 without PTX JIT cannot run custom CUTLASS/FlashAttention kernels on `sm_120` without upgrading the base image to CUDA 12.8 (`+cu128`).
- Unshielded PCIe 4.0 vertical GPU riser cables cannot sustain 32 GT/s PCIe 5.0 signaling on RTX 5090/5080; you must lock PCIe Gen4 in BIOS or replace the riser.
1. Fixing `CUDA error: no kernel image is available for execution on the device` on Blackwell (`sm_120`)
# 1. One-liner to check if your Python/container environment supports sm_120:
python3 -c "import torch; print('CUDA:', torch.version.cuda, 'Arches:', torch.cuda.get_arch_list()); assert any('12.0' in a or '120' in a for a in torch.cuda.get_arch_list()), 'FAIL: Missing sm_120!'"
# 2. Install PyTorch 2.7+ built against CUDA 12.8 (+cu128):
pip install --upgrade torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
# 3. Always export 12.0+PTX when compiling vLLM, FlashInfer, or llama.cpp from source:
export TORCH_CUDA_ARCH_LIST="12.0+PTX"
cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="120"2. Fixing PCIe 5.0 Riser Bus Drops (`NVRM: Xid 79`) and `FORCE_CUBLAS` 5x Slowdowns
| GPU Architecture | Error / Symptom | Root Cause | Verified Fix |
|---|---|---|---|
| NVIDIA Blackwell (`sm_120`) | `CUDA error: no kernel image is available for execution` | Binary compiled with CUDA <=12.6 lacking `sm_120` / PTX | Use CUDA 12.8 (`+cu128`) & `TORCH_CUDA_ARCH_LIST="12.0+PTX"` |
| NVIDIA Blackwell (`sm_120`) | RTX 5090 runs 32B Q4_K_M at 14 tok/s instead of 70 tok/s | `GGML_CUDA_FORCE_CUBLAS=ON` disables native MMQ kernels | Compile with `-DGGML_CUDA_FORCE_CUBLAS=OFF` -> **71.8 tok/s** |
| NVIDIA RTX 5090 / 5080 | System freeze + `NVRM: Xid 79: GPU has fallen off the bus` | PCIe 5.0 (32 GT/s) signal loss on riser cable + 575W transient spike | Lock PCIEX16 to **Gen4** in BIOS + `sudo nvidia-smi -pl 450` |
| AMD RDNA 4 (`gfx1201`) | `HSA_STATUS_ERROR_INVALID_ISA` or GPU reset on prompt eval | Legacy `HSA_OVERRIDE_GFX_VERSION=11.0.0` spoofing RDNA 3 ISA | `unset HSA_OVERRIDE_GFX_VERSION`; use ROCm 6.3.4+ or Vulkan |
3. Automated Pre-Flight Audit Script for Blackwell & RDNA 4 Hosts
Frequently Asked Questions & Edge Cases
Q: Does locking PCIe 5.0 to PCIe 4.0 in BIOS slow down single-GPU LLM inference on RTX 5090?
Not at all (<0.5% difference) once the model fits in VRAM! During inference, 100% of weights and KV cache reside inside the RTX 5090’s 32GB GDDR7 memory (1,792 GB/s). The PCIe bus is only used during initial model load from NVMe SSD and to send tiny token IDs back and forth.
Q: Why does `HSA_OVERRIDE_GFX_VERSION=11.0.0` crash RX 9070 XT when it used to work on RX 7800 XT?
RX 7800 XT (`gfx1101`) and RX 7900 XTX (`gfx1100`) belong to the same **RDNA 3** instruction set family, so spoofing `11.0.0` worked. RX 9070 XT (`gfx1201`) is **RDNA 4**, which overhauled matrix multiplication (WMMA) instruction opcodes—feeding `gfx1100` machine code to a `gfx1201` GPU triggers an immediate hardware illegal-instruction trap.
Blackwell (`sm_120`) & RDNA 4 (`gfx1201`) Kernel, PCIe Gen5 AER & ROCm Diagnostic Script
Detects missing sm_120 kernels in PyTorch/CUDA, PCIe 5.0 riser AER / Xid 79 bus drops on RTX 5090/5060 Ti, and invalid HSA_OVERRIDE_GFX_VERSION settings on AMD RX 9070 XT (gfx1201).
#!/usr/bin/env bash
# Tinker AI — Blackwell (sm_120) & RDNA 4 (gfx1201) Compute Doctor (Guide #28)
set -euo pipefail
SM_TARGET="12.0"
GFX_TARGET="gfx1201"
echo "=== [1/4] NVIDIA Blackwell ($SM_TARGET) Driver & PCIe Link Audit ==="
if command -v nvidia-smi >/dev/null 2>&1; then
nvidia-smi --query-gpu=name,driver_version,compute_cap,pcie.link.gen.current,pcie.link.gen.max,power.draw,power.limit --format=csv
else
echo "No nvidia-smi detected; skipping NVIDIA check."
fi
echo "=== [2/4] PyTorch / CUDA sm_120 Kernel Image Verification ==="
if command -v python3 >/dev/null 2>&1; then
python3 -c "
import sys
try:
import torch
arches = torch.cuda.get_arch_list()
print('PyTorch:', torch.__version__, '| CUDA:', torch.version.cuda, '| Arches:', arches)
if not any('12.0' in a or '120' in a for a in arches):
print('[FAIL] PyTorch build lacks sm_120! Install CUDA 12.8 (+cu128) wheels or set TORCH_CUDA_ARCH_LIST="12.0+PTX".')
except Exception as e:
print('Torch check skipped:', e)
"
fi
echo "=== [3/4] Kernel PCIe 5.0 AER & NVRM Xid 79 Bus Drop Audit ==="
dmesg -T 2>/dev/null | grep -iE "AER|Xid|fallen off the bus|amdgpu.*error" | tail -n 15 || echo "[OK] Zero PCIe AER or GPU Xid errors found."
echo "=== [4/4] AMD RDNA 4 ($GFX_TARGET) ROCm Override Trap Check ==="
if [ -n "${HSA_OVERRIDE_GFX_VERSION:-}" ]; then
echo "[WARN] HSA_OVERRIDE_GFX_VERSION=$HSA_OVERRIDE_GFX_VERSION is set! On $GFX_TARGET (RDNA 4), spoofing gfx1100 causes INVALID_ISA crashes. Run: unset HSA_OVERRIDE_GFX_VERSION"
else
echo "[OK] HSA_OVERRIDE_GFX_VERSION is not polluting the environment."
fi