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 算子崩溃。
你当前排查的是 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"
「RTX 5090 / 5060 Ti (sm_120) 报无可用内核镜像、PCIe 5.0 掉卡与 RX 9070 XT (gfx1201) 排障」的全部 2 步终端探测命令与分支判据
无需逐层点击交互,以下列出本故障决策树每一层的宿主机只读探测命令、预期基线提示与输出流向。
你当前排查的是 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
检查终端/容器报错日志以及 `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
「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` 崩溃。
- 确保宿主机 NVIDIA 驱动版本 `>= 570.124`,且容器基础镜像使用 CUDA `12.8.0+`(例如带 `+cu128` 后缀的 PyTorch 2.7+ 轮子)。
- 在 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-power1) 在 `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` 掉卡死机。
- 编译 `llama.cpp` 时保持默认 MMQ 算子(切勿开启 `FORCE_CUBLAS`),并开启 `-DGGML_CUDA_FA_ALL_QUANTS=ON` 全量化 FlashAttention。
- 将 RTX 5090 功耗上限锁定在 450W(`sudo nvidia-smi -pm 1 && sudo nvidia-smi -pl 450`):功耗直降 125W,缓解 12V-2x6 接口发热,而 Decode 吞吐保留高达 96.4%。
- 若使用显卡延长线并在 `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-vulkanAMD 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 假死。
- 在 RX 9070 XT / 9070 上彻底移除 `HSA_OVERRIDE_GFX_VERSION` 环境变量(切勿伪装成 `11.0.0`)。
- 在 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"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
100% 本地终端诊断与修复 — 所有内核日志审计 (`dmesg`)、`nvidia-smi` 功耗锁定与编译参数修正均在本地终端完成。