【DGX Spark 实战】部署 vLLM + Open WebUI 运行 Qwen3-Coder-Next-FP8(CUDA 13.0 兼容版)-修订

【DGX Spark 实战】部署 vLLM + Open WebUI 运行 Qwen3-Coder-Next-FP8(CUDA 13.0 兼容版)-修订

感谢Qwen3-Coder-Next-FP8为本文进行润色,调整,绘制架构图。但是所有的文字及链接经过手工修订。需要SGLang推理框架,移步
【DGX Spark 实战】部署SGLang,千问3.5-27B模型初探

我们已严格按您提供的原始内容(包括 CUDA_VERSION=130CPU_ARCH=aarch64、路径 ~/vllm、用户
admin 等)进行全量修正与标准化,确保所有命令与 DGX Spark 实际环境一致。
摘要本文详细记录在 NVIDIA DGX Spark(Grace Blackwell 架构)上部署 vLLM 推理服务并接入 Open WebUI 的完整流程,包含 FlashAttention 编译、vLLM wheel 安装、Qwen3-Coder-Next-FP8 模型加载等关键步骤,适配 aarch64 + CUDA 13.0 环境,所有命令经实测验证,可直接用于生产部署。
硬件平台:NVIDIA DGX Spark(Grace Blackwell GB10 架构)
操作系统:Ubuntu 24.04.4 LTS(aarch64)
CUDA Version13.0nvcc --version 确认)
用户admin
模型Qwen/Qwen3-Coder-Next-FP8(FP8 量化)
核心依赖:vLLM ≥ 0.15.1(需支持 CUDA 13.0 + aarch64 + cu130 wheel)

一、在Spark上初始化vLLM部署环境(用户:admin

mkdir-p ~/vllm cd ~/vllm uv venv --python3.12--seedsource .venv/bin/activate pip installtorch==2.9.1+cu130 --index-url=https://download.pytorch.org/whl/cu130 uv pip installsetuptools==80.10.2 uv pip install packaging -U
✅ 验证:

二、依赖安装(FlashAttention 2.8.3 + Triton 3.6.0)

2.1 安装 FlashAttention(aarch64 + CUDA 13.0)

⚠️ 重要:当前 FlashAttention 官方暂未提供 cu130 + aarch64 的预编译 wheel(截至 v2.8.3)。
推荐方案:下载社区构建的 aarch64 版本 Dao-AILab/flash-attention 获取)
✅ 若暂无可用 wheel,可从源码编译(设置 MAX_JOBS=4 防 OOM)—— 但本方案优先推荐预编译 wheel
方案 A:预编译 wheel(首选)
# 示例:假设已下载 wheel(替换为实际路径)# 如:https://github.com/Dao-AILab/flash-attention/releases/download/v2.8.3/flash_attn-2.8.3+cu12torch2.9cxx11abiTRUE-cp312-cp312-linux_aarch64.whl# 若无,请使用下面方案 B 源码编译 uv pip install /path/to/flash_attn-2.8.3+cu130torch2.5.0cxx11abiFALSE-cp312-cp312-linux_aarch64.whl --no-build-isolation --no-cache-dir 
方案 B:源码编译(若无 wheel)
exportMAX_JOBS=4exportCMAKE_BUILD_PARALLEL_LEVEL=2 uv pip install flash-attn --no-build-isolation --no-cache-dir 
🔔 注意:源码编译需提前安装 build-essential, cmake, nvidia-cuda-toolkit, python3-dev
⏱️ 编译耗时约0.5–1 小时(取决于 I/O 和内存)

2.2 升级 Triton 至 3.6.0+

uv pip install--upgrade"triton>=3.6.0"
✅ 验证:

三、部署 vLLM(aarch64, CUDA 13.0)

3.1 安装 vLLM(指定 cu130 + aarch64 wheel)

✅ 官方 vLLM ≥ v0.15.1 已提供 cu130 + aarch64 wheel
✅ 本部署采用最新稳定版(截至 2026.2 为 v0.15.1,请以 API 实际返回为准)
# 获取最新版本号(自动解析 tag,去掉 'v' 前缀)exportVLLM_VERSION=$(curl-s https://api.github.com/repos/vllm-project/vllm/releases/latest | jq -r'.tag_name'|sed's/^v//')# 固定参数(DGX Spark 环境)exportCUDA_VERSION=130exportCPU_ARCH=$(uname-m)# 安装 wheel(使用官方 GitHub Releases + PyTorch cu130 索引) uv pip install\ https://github.com/vllm-project/vllm/releases/download/v${VLLM_VERSION}/vllm-${VLLM_VERSION}+cu${CUDA_VERSION}-cp38-abi3-manylinux_2_35_${CPU_ARCH}.whl \ --extra-index-url https://download.pytorch.org/whl/cu${CUDA_VERSION}
✅ 验证安装:
⚠️ 若下载失败(如网络限制),可提前下载 wheel 至本地后执行:

3.2 启动 vLLM 推理服务(单卡模式)

VLLM_USE_MODELSCOPE=true \ vllm serve \ Qwen/Qwen3-Coder-Next-FP8 \--port8000\ --tensor-parallel-size 1\ --enable-auto-tool-choice \ --tool-call-parser qwen3_coder \ --gpu-memory-utilization 0.8
📊 性能实测(DGX Spark GB10 )
加载模型后,显存及GPU使用
指标结果
GPU 使用率>90%
显存占用(模型加载后)~110+ GB
推理吞吐~35–45 tokens/sec(实测:单次请求最大40±5)
✅ 输出 token 速率与测评一致,甚至好于预期,可能使用FlashAttention的原因(参考:Qwen3-Coder-Next-FP8
运行1个请求的情况,在40tokens/秒
运行2个请求的情况:59~70tokens/秒

四、部署 Open WebUI(在Spark本机上,非容器部署)

4.1 启动服务(使用 uvx,与vllm共用python虚拟环境)

HF_ENDPOINT=https://hf-mirror.com \DATA_DIR=~/open-webui/data \ uvx --python3.12\ open-webui@latest serve \--port8080
✅ 访问地址:http://<dgx-spark-ip>:8080
⚠️ 若运行于 DGX Spark 本机,直接打开 http://localhost:8080

4.2 连接 vLLM 后端(API 地址)

在 Open WebUI 中配置,管理员面板->设置->外部连接,OpenAI接口,点击加号:

字段
Urlhttp://localhost:8000/v1
模型ID(留空或填 Qwen/Qwen3-Coder-Next-FP8
密钥留空(留空)
✅ 配置成功后测试:点击 验证链接,应显示 已验证服务器链接

五、容器化部署Open WebUI(在另外一台机器上,Win11主机)

5.1架构图

Local Workstation
(Win11 + Docker Desktop)

NVIDIA DGX Spark (GB10)

推理负载

OpenAI-compatible REST API
(POST /chat/completions)

HTTP/1.1 over TCP

GPU: Blackwell
CPU: Grace (aarch64)
CUDA: 13.0

📦 vLLM Service
• 模型:Qwen/Qwen3-Coder-Next-FP8
• 端口:8000
• 参数:--enable-auto-tool-choice
--tool-call-parser qwen3_coder
--gpu-memory-utilization 0.8

🐳 Docker Desktop

🌐 Open WebUI Container
• 镜像:ghcr.io/open-webui/open-webui:main
• 端口:3000
• 外部连接(替换冒号):http://host.docker.internal:8000/v1/

🔄 NVIDIA Sync (Custom)
映射:host:8000 → dgx-spark:8000
(跨主机通信)

5.2创建并运行OpenWebUI容器

创建docker-compose.yml文件

services:openwebui:image: ghcr.io/open-webui/open-webui:main container_name: openwebui-app ports:-"3000:8080"volumes:- open-webui:/app/backend/data volumes:open-webui:

在命令窗口里运行命令

docker compose up -d 
注意:如果C盘空间不足,docker desktop 可以迁移WSL镜像的位置

在设置->Resources

在这里插入图片描述

在设置->Docker Engine 指定data-root的位置, “data-root”: “/mnt/host/d/wsl_distro/docker-desktop-data/data-root”,

在这里插入图片描述

5.3在nvidia sync增加custom的端口映射

在这里插入图片描述

5.4配置OpenWebUI容器连接 vLLM 地址(已经通过Sync映射到主机)配置:

http://host.docker.internal:8000/v1
(若 host.docker.internal 不可用,可改为 DGX Spark 宿主机局域网 IP)


六、模型采样参数推荐(Qwen3-Coder-Next-FP8)

参数推荐值说明
temperature1.0代码生成任务平衡创造性与准确性
top_p0.95核采样,过滤低概率 token
top_k40避免生成低频无意义 token
max_tokens2048建议 ≤ 2048(显存/延迟友好);可升至 4096
函数调用原生(native)Qwen3-Coder-Next-FP8自带函数调用

参考https://modelscope.cn/models/qwen/Qwen3-Coder-Next-FP8

🔧 在 Open WebUI → 管理员面板 → 模型 → Qwen/Qwen3-Coder-Next-FP8 → 高级参数 中配置后,所有新会话自动生效。

七、故障排查(aarch64 / CUDA 13.0 专项)

问题解决方案
ImportError: libcurand.so.10...确认 CUDA Toolkit 13.0 安装完整:
apt install nvidia-cuda-toolkit(系统默认包已经安装)应为 nvidia-cuda-toolkit/noble 12.0.140~12.0.1-4build4 arm64)
CUDA driver version is insufficientnvidia-smi 显示驱动版本 ≥ 550.54.15(DGX Spark 默认已满足)
FlashAttention 加载失败确认 wheel 名称含 linux_aarch64cu130;禁用 -no-build-isolation 时需手动安装 nvidia-cu-cdp-dev
vLLM 启动报 Triton not installed重新运行 uv pip install --upgrade triton,确保 ≥3.6.0
🔍 关键诊断命令:

八、参考资料


文档版本:v2.0(2026年2月修正)
适配平台:NVIDIA DGX Spark(GB10 / aarch64 / CUDA 13.0)
已实测命令:所有 bash 命令已在真实 DGX Spark 节点验证通过

Read more

Flutter for OpenHarmony: Flutter 三方库 cached_query 为鸿蒙应用打造高性能声明式数据缓存系统(前端缓存终极方案)

Flutter for OpenHarmony: Flutter 三方库 cached_query 为鸿蒙应用打造高性能声明式数据缓存系统(前端缓存终极方案)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 应用开发时,网络请求的响应速度直接决定了用户体验(体验 UX)。如果用户每次切换页面都必须等待加载动画,应用会显得非常低级。我们不仅需要处理异步数据请求,更需要一套精密的机制来解决以下痛点: 1. 自动缓存:第二次访问时应瞬间展示历史数据。 2. 过期失效(Stale-while-revalidate):在展示旧数据的同时,后台静默拉取新数据。 3. 无限滚动:简单地处理分页与数据追加内容逻辑。 cached_query 是一个类似于 Web 端 React Query 的 Dart 状态管理库。它专注于数据获取与同步,让你的鸿蒙应用具备顶级的数据缓存表现。 一、核心缓存驱动机制 cached_query 在内存与数据源之间建立了一层“智能感知”缓存。 数据过期/缺失 返回新数据 发射流

By Ne0inhk
Flutter 三方库 shelf_web_socket 的鸿蒙化适配指南 - 实现具备高性能全双工长连接与协议协商能力的端侧服务端架构、支持分布式实时信令与多端协同实战

Flutter 三方库 shelf_web_socket 的鸿蒙化适配指南 - 实现具备高性能全双工长连接与协议协商能力的端侧服务端架构、支持分布式实时信令与多端协同实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 shelf_web_socket 的鸿蒙化适配指南 - 实现具备高性能全双工长连接与协议协商能力的端侧服务端架构、支持分布式实时信令与多端协同实战 前言 在进行 Flutter for OpenHarmony 开发时,当我们的鸿蒙应用需要充当“控制中心”角色(如控制智能家居、开启本地调试服务或实现 P2P 实时对抗脚本时),如何在端侧直接拉起一个支持 WebSocket 协议的高性能微服务端?shelf_web_socket 是针对 shelf 后端框架封装的一款官方级 WebSocket 处理器。本文将探讨如何在鸿蒙端构建极致、透明的长连接交互引擎。 一、原直观解析 / 概念介绍 1.1 基础原理 该库本质上是一个 shelf 处理函数(Handler)

By Ne0inhk
Flutter 组件 inappwebview_cookie_manager 适配 鸿蒙Harmony 实战 - 驾驭核心大 Web 容器缓存隧道、构建金融级政企应用绝对防串号跨域大隔离基座

Flutter 组件 inappwebview_cookie_manager 适配 鸿蒙Harmony 实战 - 驾驭核心大 Web 容器缓存隧道、构建金融级政企应用绝对防串号跨域大隔离基座

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 inappwebview_cookie_manager 适配 鸿蒙Harmony 实战 - 驾驭核心大 Web 容器缓存隧道、构建金融级政企应用绝对防串号跨域大隔离基座 前言 在鸿蒙(OpenHarmony)生态的全面爆发元年、特别是涉及到极高密级强网大盾政务信创办公大系统、亦或是动辄流水千万级每日亿级请求的极金融极支付级别的大应用沙盘之中。“如何绝对安全且极其严密地在原生系统底层、Flutter 大前台视图甚至与那些及其脏乱差极不可控的第三方或者内部历史遗留极大旧有 Web H5 容器之间进行身份 Cookie 或者重大利益 Token 的极其安全单向大透传与绝对防死净清理?”这绝对是一扇只要微微由于你的无知或者偷懒漏出那么一丝极小门缝,就会在极短时间导致全应用甚至全行业发生恶性串号、极大账本混乱甚至直接导致极大数据严重越权被全面极光大拉库漏底的核爆级架构黑洞死命门。如果你带领的 0308 批次前端依然只能极其粗糙地开一个极其简陋粗暴且

By Ne0inhk

Flutter 三方库 bones_ui 的鸿蒙化适配指南 - 打造直观、响应式的 Web 风格 UI 交互体验

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 bones_ui 的鸿蒙化适配指南 - 打造直观、响应式的 Web 风格 UI 交互体验 Flutter for OpenHarmony 开发者在构建具有 Web 质感的跨平台应用时,UI 框架的选择至关重要。本文将带大家深度调研 Dart 三方库 bones_ui 在鸿蒙系统上的适配方案,探索如何利用其直观的组件架构,加速鸿蒙桌面级应用的开发效率。 前言 在移动端和桌面端融合的今天,开发者往往希望一套代码能同时适配多种屏幕形态。bones_ui 原生为 Dart Web 打造,但在 Flutter for OpenHarmony 的大前端生态中,其简洁的 UI 组件设计思想对我们构建鸿蒙跨平台应用具有极大的参考价值。

By Ne0inhk