TinkerLab
ARTIFACT // DIAGNOSE-UMA-AND-ARC-GPU.SH (SHELL)

新一代本地 AI 硬件显存与驱动排障脚本(AMD Strix Halo · Intel Arc B580 · NVIDIA 统一内存) (diagnose-uma-and-arc-gpu.sh)

自动检测 AMD Strix Halo 是否被锁死在 15.5GB 默认 GTT 上限、Intel Arc B580 容器 `/dev/dri` 渲染组权限缺失,以及 NVIDIA DGX Spark / Jetson 统一内存页缓存挤压。

[核心实测结论 / TL;DR]本配置包「新一代本地 AI 硬件显存与驱动排障脚本(AMD Strix Halo · Intel Arc B580 · NVIDIA 统一内存)」(文件名:diagnose-uma-and-arc-gpu.sh,格式:SHELL)是 Tinker AI 实测工坊配套指南《intel-arc-b580-and-amd-uma-gtt-vram-allocation-troubleshooting》的参数化生产模板。支持在本地浏览器实时定制 Linux DRI 渲染设备节点 (DRI_NODE=/dev/dri/renderD128)、期望最小可用显存/统一内存 (GB) (MIN_FREE_GB=24) 等 2 项核心变量,默认遵循 127.0.0.1 回环绑定与最小权限规范。
04 // DIAGNOSISAPI 与部署排障· 验证日期:2026-10-27
查看全部 42 套配置附件 →
diagnose-uma-and-arc-gpu.sh

新一代本地 AI 硬件显存与驱动排障脚本(AMD Strix Halo · Intel Arc B580 · NVIDIA 统一内存)

自动检测 AMD Strix Halo 是否被锁死在 15.5GB 默认 GTT 上限、Intel Arc B580 容器 `/dev/dri` 渲染组权限缺失,以及 NVIDIA DGX Spark / Jetson 统一内存页缓存挤压。

查看配套实测指南 →
参数化定制变量 (Variables — 自动保存在本地浏览器)
UTF-8 编码 · 零延迟实时编译
#!/usr/bin/env bash
# Tinker AI — New Hardware GPU & Unified Memory Diagnostic Probe (Guide #24)
set -euo pipefail

DRI_DEV="/dev/dri/renderD128"
MIN_GB="24"

echo "=== [1/4] Kernel Boot Parameters & Deprecated Flag Check ==="
CMDLINE=$(cat /proc/cmdline 2>/dev/null || echo "N/A")
echo "Kernel: $(uname -r) | Cmdline: $CMDLINE"
if echo "$CMDLINE" | grep -q "amdgpu.gttsize"; then
  echo "[WARN] Deprecated 'amdgpu.gttsize' detected! On Linux 6.14+, migrate to 'amdttm.pages_limit' + 'amdttm.page_pool_size' or BIOS UMA Frame Buffer."
fi

echo "=== [2/4] AMD Strix Halo (gfx1151) / ROCm TTM Memory Ceiling ==="
if [ -f /sys/module/amdttm/parameters/pages_limit ]; then
  PAGES=$(cat /sys/module/amdttm/parameters/pages_limit)
  POOL_GB=$(( PAGES * 4 / 1024 / 1024 ))
  echo "amdttm.pages_limit = $PAGES (~$POOL_GB GB)"
  if [ "$POOL_GB" -lt "$MIN_GB" ]; then
    echo "[FAIL] Addressable GTT pool ($POOL_GB GB) is below required $MIN_GB GB!"
  fi
fi

echo "=== [3/4] Intel Arc B580 (Xe2) & Linux DRI Render Group Audit ==="
if [ -e "$DRI_DEV" ]; then
  RENDER_GID=$(stat -c "%g" "$DRI_DEV" 2>/dev/null || stat -f "%g" "$DRI_DEV")
  echo "Found $DRI_DEV -> Host render GID is $RENDER_GID (Pass '--group-add $RENDER_GID' to Docker)"
else
  echo "No $DRI_DEV device found on this host."
fi

echo "=== [4/4] Unified Memory (DGX Spark / Strix Halo / Jetson) Page Cache Pressure ==="
free -g || vm_stat || true
echo "If 'buff/cache' is holding >20GB on a Unified Memory Linux host and causing cudaMallocManaged/ROCm OOM, run:"
echo "  sync && echo 3 | sudo tee /proc/sys/vm/drop_caches"
PARAMETER SPECIFICATION // 参数化变量规范说明表

「diagnose-uma-and-arc-gpu.sh」可定制环境变量与默认值说明

本配置模板(SHELL 格式)支持 2 项运行时参数注入,所有替换均在本地浏览器内完成。

模板占位符参数用途说明安全默认值填写示例
{{DRI_NODE}}Linux DRI 渲染设备节点/dev/dri/renderD128/dev/dri/renderD128
{{MIN_FREE_GB}}期望最小可用显存/统一内存 (GB)2424
PAIRED HARDWARE MANIFEST // 配套实测环境与边界记录

配套指南《新一代硬件显存与加速排障指南:修复 Intel Arc B580 容器退化 CPU、AMD Strix Halo 15.5GB 显存锁死与 DGX Spark 页缓存 OOM》验证基线

实测硬件与操作系统 (Hardware & OS)

Intel Arc B580 (12GB GDDR6 Xe2 独显) · AMD Ryzen AI Max+ 395 (128GB 统一内存) · NVIDIA DGX Spark (GB10 128GB 一致性统一内存)

锁定软件栈与模型版本 (Pinned Versions)
Linux Kernel 6.12+ (xe) / 6.16.9+ (amdttm)Docker Engine 27.5Ollama 0.6.2 / llama.cpp Vulkan & SYCLNVIDIA Driver 570.x (GB10 UMA)
离线与安全边界 (100% 本地内核与驱动层诊断)

所有排查命令均直接读取本地 `/sys`、`/proc`、`/dev/dri` 与容器命名空间,无需外网连接。

已知限制与失败边界 (Known Limits)
  • Intel Arc B580 (12GB) 在容器中若仅挂载 `--device /dev/dri` 而不传递宿主机 `render` 组的数字 GID(`--group-add`),非 root 容器进程会因权限拒绝静默回退至纯 CPU 推理。
  • 在 Linux 统一内存主机(如 NVIDIA DGX Spark 128GB 与 Jetson Super)上,即便 `free -h` 显示 `available` 还有 50GB,若 `buff/cache` 页缓存占满内存,CUDA 驱动一次性申请大块连续内存时仍会直接报 OOM。
DEPLOYMENT CHECKLIST // 配置落地核验步骤

部署 diagnose-uma-and-arc-gpu.sh 后的 3 步验收清单

  1. 在 Intel Arc B580 或 Linux 核显/独显容器上,已通过 `--group-add` 传入 `/dev/dri/renderD128` 的数字 GID。
  2. 已核对 `/proc/cmdline`,确认在 Linux 6.14+ 内核上未使用已废弃失效的 `amdgpu.gttsize` 参数。
  3. 已在统一内存 Linux 主机上配置 `vm.vfs_cache_pressure=200`,并在加载 70B+ 大模型前清理页缓存。