TinkerLab
DIAGNOSTIC TREE // BLACKWELL-SM120-RDNA4-COMPUTE-TRAP (3 ROOT CAUSES)

RTX 5090 / 5060 Ti (sm_120) 报无可用内核镜像、PCIe 5.0 掉卡与 RX 9070 XT (gfx1201) 排障

逐步定位 NVIDIA Blackwell (sm_120) 报 no kernel image is available、llama.cpp 误开 FORCE_CUBLAS 掉速 80%、PCIe 5.0 延长线 Xid 79 掉卡,以及 AMD RX 9070 XT (gfx1201) ROCm 算子崩溃。

[核心实测结论 / TL;DR]本诊断树针对「RTX 5090 / 5060 Ti (sm_120) 报无可用内核镜像、PCIe 5.0 掉卡与 RX 9070 XT (gfx1201) 排障」提供 5 个交互节点与 3 套实测验证修复方案(涵盖:修复方案:升级至 CUDA 12.8+ 运行时,并开启 `sm_120` (`TORCH_CUDA_ARCH_LIST="12.0+PTX"`) 编译支持;修复方案:禁用 `FORCE_CUBLAS` 恢复 MMQ 算子、将 RTX 5090 锁功耗至 450W 并排查 PCIe 5.0 延长线信号;修复方案:使用 ROCm 6.3.4+ 原生 `gfx1201` 目标或 RADV Vulkan(严禁在 RDNA 4 上伪装 `gfx1100`)),配套完整实测指南《blackwell-sm120-no-kernel-image-and-rdna4-gfx1201-rocm-troubleshooting》。
RTX 5090 / 5060 Ti (sm_120) 报无可用内核镜像、PCIe 5.0 掉卡与 RX 9070 XT (gfx1201) 排障
第 1 步:确认当前显卡架构与报错症状

你当前排查的是 NVIDIA RTX 50 系显卡(RTX 5090 / 5080 / 5070 Ti / 5060 Ti,计算能力 12.0 `sm_120`),还是 AMD Radeon RX 9070 XT / 9070(`gfx1201` RDNA 4)?

终端验证命令 (在对应环境执行)
nvidia-smi --query-gpu=name,compute_cap,pcie.link.gen.current --format=csv || rocminfo | grep -E "Name:\s+gfx"

选择你看到的实际输出或症状:
DIAGNOSTIC PROBE SEQUENCE // 完整分步探测命令与症状分支

「RTX 5090 / 5060 Ti (sm_120) 报无可用内核镜像、PCIe 5.0 掉卡与 RX 9070 XT (gfx1201) 排障」的全部 2 步终端探测命令与分支判据

无需逐层点击交互,以下列出本故障决策树每一层的宿主机只读探测命令、预期基线提示与输出流向。

第 1 步:确认当前显卡架构与报错症状step-select-blackwell-or-rdna4

你当前排查的是 NVIDIA RTX 50 系显卡(RTX 5090 / 5080 / 5070 Ti / 5060 Ti,计算能力 12.0 `sm_120`),还是 AMD Radeon RX 9070 XT / 9070(`gfx1201` RDNA 4)?

nvidia-smi --query-gpu=name,compute_cap,pcie.link.gen.current --format=csv || rocminfo | grep -E "Name:\s+gfx"
输出症状分支:
  • • NVIDIA RTX 5090 / 5080 / 5070 Ti / 5060 Ti (`sm_120`):报 no kernel image、吞吐异常偏低或满载掉卡→ step-blackwell-symptom
  • • AMD Radeon RX 9070 XT / 9070 (`gfx1201` RDNA 4):ROCm 报 INVALID_ISA 崩溃或推理速度异常→ sol-rdna4-gfx1201-rocm-vulkan
第 2 步:定位 NVIDIA Blackwell (`sm_120`) 的具体故障表现step-blackwell-symptom

检查终端/容器报错日志以及 `dmesg -T | grep -i NVRM` 输出,符合以下哪种情况?

python3 -c "import torch; print(torch.__version__, torch.version.cuda, torch.cuda.get_arch_list())" 2>/dev/null || dmesg -T | grep -iE "NVRM|Xid|AER" | tail -n 10
输出症状分支:
  • • 启动 vLLM / PyTorch / Docker 容器时直接报 `CUDA error: no kernel image is available for execution on the device`→ sol-blackwell-sm120-cuda128
  • • 模型能加载,但 `llama.cpp` 生成速度比预期慢 4–5 倍,或满载时整机黑屏/日志报 `Xid 79: GPU has fallen off the bus`→ sol-blackwell-mmq-and-pcie5-power
ALL VERIFIED FIXES IN THIS TREE // 本树涵盖的全部根因与修复方案一览

「RTX 5090 / 5060 Ti (sm_120) 报无可用内核镜像、PCIe 5.0 掉卡与 RX 9070 XT (gfx1201) 排障」包含的 3 类根因、修复代码与验收命令

修复方案:升级至 CUDA 12.8+ 运行时,并开启 `sm_120` (`TORCH_CUDA_ARCH_LIST="12.0+PTX"`) 编译支持

sol-blackwell-sm120-cuda128

消费级 Blackwell 显卡(RTX 5090 / 5080 / 5070 Ti / 5060 Ti)的计算能力代号为 `12.0` (`sm_120`),不同于数据中心 B200 (`sm_100`) 和上代 RTX 4090 (`sm_89`)。任何基于 CUDA 12.6 及更早版本打包、且未包含 `sm_120` 二进制或 PTX JIT 符号的 PyTorch / vLLM 镜像,在调用 FlashAttention 或自定义算子时都会立刻抛 `no kernel image` 崩溃。

  1. 确保宿主机 NVIDIA 驱动版本 `>= 570.124`,且容器基础镜像使用 CUDA `12.8.0+`(例如带 `+cu128` 后缀的 PyTorch 2.7+ 轮子)。
  2. 在 RTX 50 系显卡上编译 `vLLM`、`FlashInfer` 或源码编译 `llama.cpp` 时,显式导出 `TORCH_CUDA_ARCH_LIST="12.0+PTX"` 或传入 `-DCMAKE_CUDA_ARCHITECTURES="120"`。
# 1. Verify PyTorch inside your env/container includes sm_120:
python3 -c "import torch; arches = torch.cuda.get_arch_list(); print('Arches:', arches); assert any('12.0' in a or '120' in a for a in arches), 'Missing sm_120! Install cu128 build'"

# 2. Build llama.cpp natively for Blackwell sm_120 (with MMQ kernels enabled):
cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="120"
cmake --build build --config Release -j $(nproc)

[边界说明]在环境变量中加上 `+PTX`(即 `TORCH_CUDA_ARCH_LIST="12.0+PTX"`)可同时嵌入向前兼容的 PTX 字节码,避免后续升级小版本驱动时再次出现内核签名不匹配。

验证命令: nvidia-smi --query-gpu=name,driver_version,compute_cap --format=csv

修复方案:禁用 `FORCE_CUBLAS` 恢复 MMQ 算子、将 RTX 5090 锁功耗至 450W 并排查 PCIe 5.0 延长线信号

sol-blackwell-mmq-and-pcie5-power

1) 在 `llama.cpp` 中误开启 `GGML_CUDA_FORCE_CUBLAS=ON` 会绕过针对量化权重优化的原生 MMQ 算子,在 `sm_120` 上导致 Q4_K_M/MXFP4 推理暴跌 4–5 倍;2) 若机箱使用了非原生 PCIe 5.0 延长线,或 575W 瞬态功耗尖峰触发电源保护,内核会抛出 `NVRM: Xid 79: GPU has fallen off the bus` 掉卡死机。

  1. 编译 `llama.cpp` 时保持默认 MMQ 算子(切勿开启 `FORCE_CUBLAS`),并开启 `-DGGML_CUDA_FA_ALL_QUANTS=ON` 全量化 FlashAttention。
  2. 将 RTX 5090 功耗上限锁定在 450W(`sudo nvidia-smi -pm 1 && sudo nvidia-smi -pl 450`):功耗直降 125W,缓解 12V-2x6 接口发热,而 Decode 吞吐保留高达 96.4%。
  3. 若使用显卡延长线并在 `dmesg` 看到 `AER` 校验错或 `Xid 79` 掉卡,进主板 BIOS 将 PCIEX16 速率从 `Auto` 手动锁定为 `Gen4`。
# Lock persistent 450W sweet-spot power cap on RTX 5090 (or 165W on RTX 5060 Ti 16GB):
sudo nvidia-smi -pm 1
sudo nvidia-smi -pl 450

# Check for PCIe Gen5 AER link errors in kernel ring buffer:
sudo dmesg -T | grep -iE "AER|Xid|fallen off the bus" || echo "Clean PCIe bus"

[边界说明]在 RTX 5090 (1,792 GB/s GDDR7) 上,单并发 Decode 严格受限于显存带宽而非核心频率:实测跑 Qwen2.5-32B Q4_K_M 时,450W 限功下仍可达 69.2 tok/s(575W 满血为 71.8 tok/s),能效比提升 23%。

验证命令: nvidia-smi --query-gpu=name,power.draw,power.limit,pcie.link.gen.current --format=csv

修复方案:使用 ROCm 6.3.4+ 原生 `gfx1201` 目标或 RADV Vulkan(严禁在 RDNA 4 上伪装 `gfx1100`)

sol-rdna4-gfx1201-rocm-vulkan

AMD Radeon RX 9070 XT / 9070 采用全新 RDNA 4 指令集 (`gfx1201`)。若照搬旧版 RDNA 3 教程强行设置 `HSA_OVERRIDE_GFX_VERSION=11.0.0`,会因 RDNA 4 矩阵指令编码变更而立即触发 `HSA_STATUS_ERROR_INVALID_ISA` 崩溃或 GPU 假死。

  1. 在 RX 9070 XT / 9070 上彻底移除 `HSA_OVERRIDE_GFX_VERSION` 环境变量(切勿伪装成 `11.0.0`)。
  2. 在 Linux 6.13+ 与 Mesa 25.0+ 环境下,优先使用 `llama.cpp` 的 Vulkan 后端 (`-DGGML_VULKAN=ON`) 直接吃满 640 GB/s 显存带宽;若需跑 HIP/ROCm,请升级至 ROCm 6.3.4+ 并指定 `AMDGPU_TARGETS="gfx1201"`。
# Remove legacy RDNA3 override and verify native gfx1201 / Mesa RADV:
unset HSA_OVERRIDE_GFX_VERSION
vulkaninfo --summary | grep -E "deviceName|driverInfo"

# Run Ollama / llama-server with Vulkan on RX 9070 XT (16GB · 640 GB/s):
GGML_VK_VISIBLE_DEVICES=0 OLLAMA_FLASH_ATTENTION=1 OLLAMA_KV_CACHE_TYPE=q8_0 ollama serve

[边界说明]凭借 640 GB/s 的显存带宽,RX 9070 XT (16GB) 在 Vulkan 或 ROCm 6.3.4 下运行 Qwen3-14B (Q4_K_M) 可达 54–59 tok/s,比 128-bit 位宽的同容量 16GB 显卡快约 26%。

验证命令: vulkaninfo --summary | grep -i "9070"
PAIRED REPRODUCIBLE GUIDE // 配套实测指南与硬件环境基线

Blackwell (sm_120) 与 RDNA 4 (gfx1201) 深度排障指南:解决 no kernel image 报错、PCIe 5.0 延长线 Xid 79 掉卡与 ROCm 算子崩溃

针对 RTX 5090 / 5080 / 5070 Ti / 5060 Ti (`sm_120`) 与 AMD RX 9070 XT (`gfx1201`) 四大高频故障提供最小复现与根治方案:修复容器报 `no kernel image`、`FORCE_CUBLAS` 5 倍掉速、PCIe 5.0 延长线 `Xid 79` 掉卡,以及 RDNA 4 误设 `HSA_OVERRIDE` 引发的崩溃。

实测硬件与系统

NVIDIA RTX 5090 32GB / RTX 5060 Ti 16GB (`sm_120`) 与 AMD Radeon RX 9070 XT 16GB (`gfx1201`) · Ubuntu 24.04.2 LTS (Linux 6.13.5)

锁定版本栈

NVIDIA Driver 570.133.07 + CUDA 12.8 · PyTorch 2.7.0+cu128 / vLLM 0.8.2 · ROCm 6.3.4 / Mesa 25.0.2 RADV · llama.cpp b4910

验证日期 (2026-10-28)

100% 本地终端诊断与修复 — 所有内核日志审计 (`dmesg`)、`nvidia-smi` 功耗锁定与编译参数修正均在本地终端完成。