TinkerLab
ARTIFACT // SETUP-LEMONADE-NPU-IGPU-DUAL-ENGINE.SH (SH)

AMD XDNA 2 NPU + Radeon 8060S 核显双引擎自检与 Lemonade Server 并发编排脚本(MS-S1 Max / Z2 Mini G1a) (setup-lemonade-npu-igpu-dual-engine.sh)

一站式核验 Ubuntu 下 /dev/accel/accel0(amdxdna 驱动)、memlock unlimited 锁页权限、108GB 统一显存池与 FastFlowLM NPU 状态,并通过 Lemonade Server 将常驻轻量辅助模型固定在 50 TOPS NPU、同时将 Qwen3.6-35B-A3B 或 Llama 4 Scout 跑满 ROCm 7.2 核显。

[核心实测结论 / TL;DR]本配置包「AMD XDNA 2 NPU + Radeon 8060S 核显双引擎自检与 Lemonade Server 并发编排脚本(MS-S1 Max / Z2 Mini G1a)」(文件名:setup-lemonade-npu-igpu-dual-engine.sh,格式:SH)是 Tinker AI 实测工坊配套指南《amd-xdna2-npu-igpu-hybrid-lemonade-fastflowlm-rocm72-minisforum-ms-s1-max-hp-z2-mini-g1a-qwen36-llama4-scout》的参数化生产模板。支持在本地浏览器实时定制 核显 ROCm 7.2 主力大模型 (PRIMARY_ROCM_MODEL=Qwen3.6-35B-A3B-Q8_0-GGUF)、XDNA 2 NPU 常驻轻量辅助模型 (flm:npu) (NPU_HELPER_MODEL=Qwen3-8B-FLM-NPU-INT4)、Linux amdttm.pages_limit 页上限(128GB 主机设 28311552 = 108GB) (TTM_PAGES_108GB=28311552)、Lemonade OpenAI 接口端口 (LEMONADE_PORT=13305) 等 4 项核心变量,默认遵循 127.0.0.1 回环绑定与最小权限规范。
01 // HOMELAB本地 AI / HomeLab· 验证日期:2026-11-12
查看全部 48 套配置附件 →
setup-lemonade-npu-igpu-dual-engine.sh

AMD XDNA 2 NPU + Radeon 8060S 核显双引擎自检与 Lemonade Server 并发编排脚本(MS-S1 Max / Z2 Mini G1a)

一站式核验 Ubuntu 下 /dev/accel/accel0(amdxdna 驱动)、memlock unlimited 锁页权限、108GB 统一显存池与 FastFlowLM NPU 状态,并通过 Lemonade Server 将常驻轻量辅助模型固定在 50 TOPS NPU、同时将 Qwen3.6-35B-A3B 或 Llama 4 Scout 跑满 ROCm 7.2 核显。

查看配套实测指南 →
参数化定制变量 (Variables — 自动保存在本地浏览器)
UTF-8 编码 · 零延迟实时编译
#!/usr/bin/env bash
# Tinker AI — Split-Engine AMD XDNA 2 NPU (FastFlowLM) + Radeon 8060S (ROCm 7.2) Launcher (Guide #48)
set -euo pipefail

ROCM_MODEL="Qwen3.6-35B-A3B-Q8_0-GGUF"
NPU_MODEL="Qwen3-8B-FLM-NPU-INT4"
TTM_PAGES="28311552"
PORT="13305"

echo "=== [1/4] Checking Linux Kernel, amdxdna NPU Device (/dev/accel/accel0) & memlock ==="
uname -r
ls -la /dev/accel/accel0 /dev/kfd /dev/dri/renderD*
MEMLOCK=$(ulimit -l)
echo "Current memlock limit: $MEMLOCK (must be 'unlimited' for XRT / FastFlowLM NPU BO pinning)"
if [ "$MEMLOCK" != "unlimited" ]; then
  echo "WARNING: Run 'echo "* soft memlock unlimited" | sudo tee -a /etc/security/limits.conf' and re-login!"
fi

echo "=== [2/4] Verifying 108GB Unified GTT/TTM Pool (Target pages_limit >= $TTM_PAGES) ==="
cat /sys/module/amdttm/parameters/pages_limit || true
rocm-smi --showmeminfo vram gtt || true

echo "=== [3/4] Running FastFlowLM Hardware & XDNA 2 Firmware Validation ==="
flm --version || true
flm validate

echo "=== [4/4] Pulling NPU + ROCm Models & Starting Unified Lemonade Server on Port $PORT ==="
lemonade-server pull "$NPU_MODEL" || true
lemonade-server pull "$ROCM_MODEL" || true
echo "Starting lemonade-server (OpenAI endpoint: http://127.0.0.1:$PORT/api/v1)..."
HSA_OVERRIDE_GFX_VERSION=11.5.1 ROCBLAS_USE_HIPBLASLT=1 \
  lemonade-server serve --port "$PORT"
PARAMETER SPECIFICATION // 参数化变量规范说明表

「setup-lemonade-npu-igpu-dual-engine.sh」可定制环境变量与默认值说明

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

模板占位符参数用途说明安全默认值填写示例
{{PRIMARY_ROCM_MODEL}}核显 ROCm 7.2 主力大模型Qwen3.6-35B-A3B-Q8_0-GGUFQwen3.6-35B-A3B-Q8_0-GGUF
{{NPU_HELPER_MODEL}}XDNA 2 NPU 常驻轻量辅助模型 (flm:npu)Qwen3-8B-FLM-NPU-INT4Qwen3-8B-FLM-NPU-INT4
{{TTM_PAGES_108GB}}Linux amdttm.pages_limit 页上限(128GB 主机设 28311552 = 108GB)2831155228311552
{{LEMONADE_PORT}}Lemonade OpenAI 接口端口1330513305
PAIRED HARDWARE MANIFEST // 配套实测环境与边界记录

配套指南《128GB 迷你工作站 NPU + 核显双引擎并发实战:Minisforum MS-S1 Max(双万兆 + USB4v2 80Gbps)与 HP Z2 Mini G1a 基于 AMD Lemonade、FastFlowLM(XDNA 2 NPU)及 ROCm 7.2 同跑 Qwen3.6-35B-A3B 与 Llama 4 Scout (109B)》验证基线

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

铭凡 Minisforum MS-S1 Max(Ryzen AI Max+ 395 · 128GB LPDDR5X-8000 · 130W 性能模式 · 板载双 10GbE 万兆 + 双 USB4v2 80Gbps)与惠普 HP Z2 Mini G1a 迷你工作站(Ryzen AI Max+ PRO 395 · 128GB ECC 统一内存 · 最高 150W 持续释放)

锁定软件栈与模型版本 (Pinned Versions)
AMD XRT `libxrt-npu2` + `amdxdna-dkms` (NPU FW `v1.1.0+` exposing `/dev/accel/accel0`)FastFlowLM `flm` 0.5+ (`flm validate` / `flm:npu` XDNA 2 INT4/BF16 NPU engine)ROCm 7.2 (`gfx1151` native `hipBLASLt`) + `llama.cpp` b4995 + AMD `lemonade-server` 7.1+ (port `13305`)Models: `Qwen/Qwen3.6-35B-A3B` (`Q8_0` & `Q4_K_M`), `meta-llama/Llama-4-Scout-17B-16E-Instruct` (`Q4_K_M` 68GB & `UD-Q3_K_XL` 52GB), + `Qwen3-8B` / `Llama-3.2-3B` on XDNA 2 NPU
离线与安全边界 (模型缓存后 100% 离线统一多后端 OpenAI 网关(`127.0.0.1:13305/api/v1`))

通过 `lemonade-server pull` 拉取完 ROCm GGUF 与 FastFlowLM NPU 模型包后,拔掉网线即可完全离线同时调度 `/dev/accel/accel0` 与 `/dev/kfd`。

已知限制与失败边界 (Known Limits)
  • **未解锁 `memlock unlimited` 会导致 `flm validate` 与 NPU 分配直接报错:** Linux 下的 `amdxdna` 与 XRT 运行时需要将 NPU 权重缓冲区(BO)锁死在物理内存中。Ubuntu 默认的 `ulimit -l` 锁页上限会导致 `FastFlowLM` 报 `CREATE_BO failed / ENOMEM` 退出。必须在 `/etc/security/limits.conf` 中添加 `* soft/hard memlock unlimited`(若用 `systemd` 托管还需配 `LimitMEMLOCK=infinity`)。
  • **NPU 与核显共享 `256 GB/s` 内存总线的并发争用边界(约 11%–14% 瞬时波动):** 尽管 50 TOPS 的 XDNA 2 NPU 与 40 CU 的 Radeon 8060S 核显算力单元物理独立,但**两者共享同一个四通道 LPDDR5X-8000 内存控制器(总带宽 `256 GB/s`)**。当 NPU 与核显在同一毫秒同时全速吐字时,核显解码速率会有约 `11%–14%` 的轻微回落——但这彻底消灭了单显卡切换模型时动辄 `8–25 秒` 的权重卸载卡死!
  • **`Llama-4-Scout`(109B)与 `Qwen3.6-35B-A3B` 的激活参数带宽物理差距:** 两者都能整包塞进 108GB 统一显存池,但 `Qwen3.6-35B-A3B` 每词元仅激活 **`3.0B` 参数(Q4 高达 `79 tok/s`,无损 `Q8_0` 仍达 `56 tok/s`)**;而 `Llama-4-Scout-17B-16E` 每词元需激活 **`17B` 参数**,受 `256 GB/s` 带宽限制在 `Q4_K_M` 下实测约 **`15.4 tok/s`**(换动态 `UD-Q3_K_XL` 可提至 `19.6 tok/s`)。
DEPLOYMENT CHECKLIST // 配置落地核验步骤

部署 setup-lemonade-npu-igpu-dual-engine.sh 后的 3 步验收清单

  1. 已确认 `/dev/accel/accel0` 节点存在、`ulimit -l` 返回 `unlimited`,且 `flm validate` 全部通过内核、`amdxdna` 驱动与 NPU 固件版本检查。
  2. 已在 128GB 主机上配置 `amdttm.pages_limit=28311552`(解锁 `108 GB` 统一显存池),并保留约 `20 GB` 安全余量给内核与 IDE。
  3. 已在 IDE 中将高频行间补全分流至 `flm:npu` 常驻轻量模型,将主代码 Agent 会话指向 `ROCm 7.2` 上的 `Qwen3.6-35B-A3B` 或 `Llama-4-Scout`。