From 827f0f9e8b1345f9dc0f25ce73094c7eb641d01e Mon Sep 17 00:00:00 2001 From: moyixin <15971501952@163.com> Date: Sun, 20 Sep 2026 05:46:36 +0000 Subject: [PATCH] push md --- 基础设备.md | 740 +++++++++++++++++++++++++++++++++++++++++ 实验设计.md | 282 ++++++++++++++++ 最终稿文章结构总览.png | Bin 0 -> 331566 bytes 最终稿文章规划.md | 421 +++++++++++++++++++++++ 说明文档.md | 132 ++++++++ 5 files changed, 1575 insertions(+) create mode 100644 基础设备.md create mode 100644 实验设计.md create mode 100644 最终稿文章结构总览.png create mode 100644 最终稿文章规划.md create mode 100644 说明文档.md diff --git a/基础设备.md b/基础设备.md new file mode 100644 index 0000000..fb26be1 --- /dev/null +++ b/基础设备.md @@ -0,0 +1,740 @@ +# 基础设备配置(四层级 × 三档算力分级) + +> 版本: v2.0 起草日期: 2026-09-18 +> 设计目标: 为翼辉 SylixOS 调度框架研究建立 **集群→桌面→边→端** 四级硬件体系,每级内再按 **低/中/高** 三档细分 +> 现有硬件全覆盖: T2-L(4×V100 SXM)+ T3-L / T4-H(RK3588 工业盒)| 需新增: T1 集群扩展 + 其余档位 + +--- + +## 0. 分级体系总览 + +### 0.1 分级维度与分档规则 + +**分级维度**: 以「统一内存 / 显存容量」为第一分类维度——容量直接决定可承载的模型规模,且与功耗、散热、互联架构强相关,四个层级可连续衔接、无断层。 + +**分档规则**: 相邻两档的边界值归入**上界一侧** + +| 层级 | 代码 | 低级 | 中级 | 高级 | +| -------- | --- | --------------- | ---------------- | ---------------- | +| **端级** | T4 | **1~2 G** | **2~4 G** | **4~8 G** | +| **边级** | T3 | **8~16 G** | **16~32 G** | **32~64 G** | +| **桌面级** | T2 | **64~128 G** | **128~256 G** | **256~512 G** | +| **集群级** | T1 | **512 G~1 T** | —(不设中档) | **1 T~2 T** | + +> 边界值归属示例: 8 GB → 端-高;16 GB → 边-低;64 GB → 边-高;128 GB → 桌-低;512 GB → 桌-高;1 TB → 集-低。 + +### 0.2 全谱系总表(11 个档位) + +> 算力单位统一约定: **NVIDIA GPU 用 FP16 Tensor Core TFLOPS(dense)**,**NPU 用 INT8 TOPS**;两者不可直接换算。 + +| 档位 | 容量 | 算力(峰值) | 功耗 | 算力/供电架构 | 代表设备 | 状态 | +| -------- | ------------ | -------------------------- | ------------- | ---------------------------------- | ----------------------------- | ------- | +| **T4-L** | 1~2 G | 0.8~1 TOPS (INT8) | 3~5 W | ARM A55 + 小 NPU;DC 5V/12V 被动散热 | RK3568 1~2GB 核心板 | | +| **T4-M** | 2~4 G | 6 TOPS (INT8) | 5~10 W | ARM A72+A53 + NPU;DC 12V 被动散热 | RK3576 4GB | | +| **T4-H** | 4~8 G | 6~32 TOPS (INT8) | 7~21 W | ARM A76+A55 + M0 + NPU;DC 12V 被动 | **RK3588 8GB** / Jetson Orin Nano 8GB | 现有(16G 板降配) | +| **T3-L** | 8~16 G | 32~100 TOPS (INT8) | 10~30 W | ARM SoC 统一内存 + NPU/GPU;DC 12~24V 被动/小风扇 | **RK3588 16GB 工业盒** / Orin NX 16GB | 现有 | +| **T3-M** | 16~32 G | 275 TOPS (INT8) | 15~60 W | ARM A78AE + Ampere GPU + 2×DLA;DC 19V 主动风冷 | Jetson AGX Orin 32GB | | +| **T3-H** | 32~64 G | 275 TOPS / 91 TFLOPS (FP16) | 60~600 W | ARM 统一内存 或 x86+单卡 CUDA;风冷/液冷 | Jetson AGX Orin 64GB / 边缘工控机 + RTX 6000 Ada 48GB | | +| **T2-L** | 64~128 G | 500 TFLOPS (FP16) | 600~1.65 kW | x86 + 4×V100 SXM NVLink;双电源 + 360 液冷 | **4×V100 32GB SXM 塔式** | 现有 | +| **T2-M** | 128~256 G | 1000 TFLOPS (FP16) | 3.0~3.3 kW | x86 + 8×V100 SXM NVLink;双电源 + 液冷 | 8×V100 32GB SXM 整机 | 需扩展 | +| **T2-H** | 256~512 G | ~4000 TFLOPS (FP16) | 4.5~6.5 kW | x86 + 4×H100 SXM5 NVLink;高压供电 + 强制液冷 | 4×H100 80GB SXM5 工作站 | | +| **T1-L** | 512 G~1 T | ~2000 TFLOPS (FP16) | ~6.6 kW | 4 节点 × x86+4×V100,100GbE RoCE/IB;机房风冷/液冷 | 4×(T2-L 节点)+ IB 交换机 | 需扩展 | +| **T1-H** | 1~2 T | ~16 PFLOPS (FP16) | 20~25 kW | 4 节点 × x86+4×H100,NDR 400G IB;机房级液冷 | 4×(T2-H 节点)+ NDR 交换机 | | + +### 0.3 设计原则 + +1. **容量连续、功耗阶跃**: 从 1 GB / 3 W 到 2 TB / 25 kW,容量每上一档约 ×2,功耗随架构变化阶跃(被动散热 → 主动风冷 → 液冷 → 机房级液冷),形成天然的性能/能效对比曲线。 +2. **CUDA 栈贯通 T1/T2/T3**: 集群/桌面/边级全部或大部分走 NVIDIA CUDA 生态(V100 / Ampere / Hopper),模型与推理框架(vLLM / TensorRT-LLM)可跨档位无缝迁移,变量只有规模。 +3. **非 CUDA 端路线**: T4 全档位与 T3-L 走 RKNN/RKLLM NPU 栈,代表极致资源约束端点,是 RTOS 调度隔离价值最大化的场景。 +4. **现有硬件复用**: **4×V100 SXM(T2-L)** 与 **RK3588 工业盒(T3-L 16GB / T4-H 8GB 两用)** 为零采购成本基线,整条谱系以此为锚点向两侧扩展。 +5. **BSP 最小化**: 全谱系仅需两类 BSP——x86(T1/T2)与 ARM64(T3/T4),档位差异靠设备树与驱动裁剪吸收,不新增架构分支。 + +--- + +## T1. 集群级 — 512 G ~ 2 T + +### T1.1 定位 + +大规模分布式 LLM 推理与多模型并发服务。验证 SylixOS 在**多节点分布式调度**下的实时性——跨节点 RDMA 延迟、NCCL 集合通信抖动、分布式推理框架(vLLM+Ray / TensorRT-LLM+MPI)与实时控制任务的混合负载隔离。 + +### T1.2 档位对比 + +| 维度 | T1-L 集群-低 | T1-H 集群-高 | +| ----------- | --------------------- | --------------------------- | +| **容量** | 512 GB(4 × 128 GB) | 1.28 TB(4 × 320 GB) | +| **节点数** | 4 节点 | 4 节点 | +| **单节点加速器** | 4 × V100 32GB SXM | 4 × H100 80GB SXM5 | +| **集群算力** | ~2000 TFLOPS (FP16) | ~16 PFLOPS (FP16) | +| **节点内互联** | NVLink 300 GB/s | NVLink 900 GB/s | +| **节点间互联** | 100GbE RoCE / IB | NDR 400G IB | +| **整机功耗** | ~6.6 kW | 20~25 kW | +| **散热架构** | 每节点 360 液冷 + 机房风冷 | 机房级液冷(CDU / 后门换热器) | +| **主要模型** | 72B FP16 / 多实例 14B | 671B INT4 / 多实例 72B FP16 | + +#### T1.2.1 T1-L 集群-低 — 4 节点 × 4×V100 = 512 GB(本方案主线) + +| 项目 | 规格 | 数量 | 备注 | +| --------- | ------------------------------------------------ | ------------- | --------------------------- | +| **计算节点** | 同 T2-L 桌面级配置 | **4 台** | 每节点 4×V100 32GB SXM = 128GB | +| 节点内 GPU | NVIDIA V100 32GB SXM (NVLink 全互联) | 4×4 = 16 卡 | 每节点 NVLink 全互联 | +| 节点内 CPU | AMD EPYC 7402 (24C/48T, 2.0-3.2GHz) | 4 | 每节点 1 颗 | +| 节点内内存 | 128GB DDR4-2133 ECC | 4×128 = 512GB | 每节点 128GB | +| **节点间互联** | Mellanox ConnectX-6 100GbE / IB | 4 卡 | 每节点 1 卡,RoCE 或原生 IB | +| 节点间交换机 | 100GbE/IB 交换机 (Mellanox SN2700 或同档) | 1 | 32 端口 | +| 存储 | 共享 NFS / NVMe-oF (每节点 1TB NVMe 本地 + 共享存储) | — | 模型权重共享池 | +| 散热 | 每节点 360 一体液冷 ×2 | — | 同 T2-L | +| 电源 | 每节点 长城 1650W + 1250W 双电源 | 4 套 | 单节点 ~1.65 kW,集群 ~6.6 kW | +| 功率采集 | PDU + Yokogawa WT310 (整机) + nvidia-smi dmon (单卡) | — | 每节点独立采集 | + +**显存与算力** + +| 指标 | 值 | +| --------------- | ---------------------------------- | +| **总显存** | **512 GB** (4 × 128GB) | +| 单卡 FP16 算力 | 125 TFLOPS | +| 集群总算力 (FP16) | ~2000 TFLOPS (NVLink 节点内 + IB 节点间) | +| NVLink 带宽 (节点内) | 300 GB/s (GPU↔GPU) | + +**可运行模型** + +| 模型 | 量化 | 显存占用 | 并发实例数 | 推理框架 | +| ------------------------ | ---------- | ------- | ----- | ------------------ | +| **Qwen2.5-72B-Instruct** | FP16 | ~144 GB | 3+ | vLLM + Ray 分布式 | +| Qwen2.5-72B | INT4 (AWQ) | ~36 GB | 14+ | vLLM + Ray | +| **DeepSeek-V2-Chat** | FP16 | ~210 GB | 2 | TensorRT-LLM + MPI | +| Qwen2.5-14B | FP16 | ~28 GB | 18+ | vLLM (可单节点) | +| LLaMA-3-70B | FP16 | ~140 GB | 3+ | vLLM + Ray | + +> 注: 若已有 1 台 T2-L 节点,仅需追加 3 台。V100 SXM 为二手市场/拆机渠道,价格波动大。也可租用云上 V100 实例替代自建集群。 + +#### T1.2.2 T1-H 集群-高 — 4 节点 × 4×H100 = 1.28 TB(扩展档) + +| 项目 | 规格 | 数量 | 备注 | +| ------- | ----------------------------------------- | --------- | --------------------- | +| 计算节点 | 同 T2-H 桌面级配置 | 4 台 | 每节点 4×H100 80GB SXM5 | +| 节点内 GPU | NVIDIA H100 80GB SXM5 (NVLink 4 卡全互联) | 16 卡 | NVLink 900 GB/s | +| 节点内 CPU | AMD EPYC 9654 (96C/192T) 或 Intel Xeon 8468 | 4 | 每节点 1~2 颗 | +| 节点内内存 | 512GB DDR5-4800 ECC | 4 × 512GB | 每节点 512GB | +| 节点间互联 | NVIDIA ConnectX-7 NDR 400Gb/s IB | 4~8 卡 | 每节点 1~2 卡 | +| 节点间交换机 | NDR 400G IB 交换机 (Quantum-2 / SN5600) | 1 | 32 端口 | +| 存储 | 并行文件系统 (GPFS/Lustre) + 每节点 4TB NVMe | — | 671B 级模型权重池 | +| 散热 | 机房级液冷 (CDU + 冷板) | — | 风冷不可行 | +| 电源 | 每节点 4~6 kW 冗余电源 | 4 套 | 集群 ~20~25 kW | + +**可运行模型** + +| 模型 | 量化 | 显存占用 | 并发实例数 | 推理框架 | +| ------------------------ | ---------- | -------- | ----- | -------------------- | +| **DeepSeek-V3 / R1-671B** | INT4 (AWQ) | ~400 GB | 3+ | vLLM + Ray / SGLang | +| **Qwen2.5-72B** | FP16 | ~144 GB | 8+ | vLLM + TensorRT-LLM | +| LLaMA-3-405B | INT4 | ~230 GB | 5+ | TensorRT-LLM + MPI | +| Qwen2.5-32B | FP16 | ~64 GB | 20+ | vLLM | + +### T1.3 SylixOS 要求(T1 通用) + +| 要求项 | 描述 | 风险 | +| ------------------ | ------------------------------- | ------------------------------ | +| x86 BSP | 每节点运行 SylixOS x86 LTS | 低(T2-L 已验证) | +| **RDMA / RoCE 驱动** | ConnectX-6 / ConnectX-7 在 SylixOS 上的 RDMA 驱动 | **中-高**(需验证 Mellanox OFED 兼容性) | +| NCCL / MPI | 分布式集合通信库在 SylixOS 移植 | 中(NCCL 依赖 CUDA + POSIX) | +| Ray / 分布式框架 | vLLM + Ray 的 SylixOS 适配 | 中(Python + Ray 依赖链) | +| 分布式调度器 | SylixOS 跨节点实时任务调度原型 | **研究贡献点** | + +### T1.4 研究角度 + +- **跨节点调度延迟**: 分布式推理时,1ms 实时任务在跨节点 NCCL all-reduce 期间的尾延迟 +- **RDMA bypass 内核**: SylixOS 是否能利用 RDMA bypass kernel path 降低跨节点通信延迟 +- **分布式公平性**: 多节点并发请求时,高优先级实时任务的跨节点响应稳定性 +- **能效**: 分布式推理的每 token 能耗 vs 单节点(通信开销 vs 并行收益) +- **档位对照**: T1-L 与 T1-H 的**每 token 能耗比**——V100 集群(能效基线)vs H100 集群(能效上限) + +--- + +## T2. 桌面级 — 64 G ~ 512 G + +### T2.1 定位 + +单节点多 GPU 大模型推理。验证 SylixOS 在**单机多卡 NVLink 拓扑**下的 GPU 命令调度延迟、显存管理实时性、多模型并发流水线调度。 + +### T2.2 档位对比 + +| 维度 | T2-L 桌面-低 | T2-M 桌面-中 | T2-H 桌面-高 | +| ----------- | ---------------------- | --------------------------- | --------------------------- | +| **容量** | 128 GB(4 × 32 GB) | 256 GB(8 × 32 GB) | 320 GB(4 × 80 GB) | +| **加速器** | 4 × V100 32GB SXM | 8 × V100 32GB SXM | 4 × H100 80GB SXM5 | +| **算力** | 500 TFLOPS (FP16) | 1000 TFLOPS (FP16) | ~4000 TFLOPS (FP16) | +| **互联** | NVLink 300 GB/s ×4 | NVLink 300 GB/s ×8 | NVLink 900 GB/s ×4 | +| **整机功耗** | ~1.65 kW | ~3.0~3.3 kW | ~4.5~6.5 kW | +| **散热架构** | 360 液冷 ×2 + 塔式风道 | 360 液冷 ×2 + 双路风冷 | 强制液冷 (冷板),风冷不可行 | +| **电源架构** | 1650W + 1250W 双电源 | 2× 2000W 冗余 / 220V 单相 | 2× 3000W 冗余 / 220V 双相 | +| **形态** | 塔式一体定制机箱 | 4U 机架式 / 塔式 | 4U~5U 机架式液冷 | +| **可运行模型** | 72B INT4 / 14B FP16 | 72B FP16 / 多实例 32B | 671B INT4 / 72B FP16 多并发 | +| **状态** | 现有 | 需扩展(现有平台加卡) | 需 | + +#### T2.2.1 T2-L 桌面-低 — 4×V100 SXM = 128 GB(现有设备,谱系锚点) + +| # | 部件 | 型号 / 规格 | 数量 | 备注 | +| -- | ------- | ---------------------------------------------- | ----- | --------------------------- | +| 1 | 主板 | H12D-8D(双路 EPYC 服务器板) | 1 | | +| 2 | CPU | AMD EPYC 7402 (24C/48T, 2.0-3.2 GHz, TDP 180W) | 1 | | +| 3 | 硬盘 | 长城 M.2 NVMe 1TB | 1 | 系统盘 | +| 4 | 内存 | 三星 DDR4-32G-2133 | 4 | 共 128 GB DDR4 | +| 5 | 散热系统 | 360 一体液冷散热套装 | 2 | 主机 + GPU | +| 6 | 转接卡 | ROHSTNS-2SXM2-2P54E | 2 | | +| 7 | 信号线 | V100 32G × 2 | 4 | NVLink 桥接 | +| 8 | 机箱 | 塔式一体定制机箱 | 1 | | +| 9 | 主电源 | 长城全模组 1650W | 1 | | +| 10 | 副电源 | 长城 1250W 全模组 | 1 | SXM 平台用 | +| 11 | 散热器 | SP3 高性能散热器 | 1 | | +| 12 | SXM 平台 | 300G NVLink 4 卡直连底板 | 1 | | +| 13 | **GPU** | **NVIDIA V100 32GB SXM** | **4** | **NVLink 全互联,共 128GB HBM2** | + +**显存与算力** + +| 指标 | 值 | +| ---------- | --------------------------- | +| **总显存** | **128 GB** (4 × 32GB HBM2) | +| 单卡显存 | 32 GB HBM2 | +| 单卡 FP16 算力 | 125 TFLOPS | +| 总算力 (FP16) | ~500 TFLOPS | +| NVLink 带宽 | 300 GB/s (GPU↔GPU 全互联) | +| 内存带宽 | DDR4-2133 ~170 GB/s (CPU 侧) | +| **整机功耗** | **~1650 W** (满载) | + +**可运行模型** + +| 模型 | 量化 | 显存占用 | 并发实例数 | 推理框架 | +| ------------------------ | ---------- | ------ | ----- | ------------------- | +| **Qwen2.5-7B-Instruct** | FP16 | ~14 GB | 8+ | vLLM / TensorRT-LLM | +| **Qwen2.5-14B-Instruct** | INT4 (AWQ) | ~8 GB | 14+ | vLLM | +| Qwen2.5-14B | FP16 | ~28 GB | 4 | vLLM | +| **Qwen2.5-72B-Instruct** | INT4 (AWQ) | ~36 GB | 3 | vLLM (张量并行 TP=4) | +| LLaMA-3-8B | FP16 | ~16 GB | 7 | vLLM | +| MiniCPM-V 2.6 | INT4 | ~6 GB | 20+ | llama.cpp | +| Whisper-Large-v3 | FP16 | ~3 GB | 40+ | faster-whisper | + +#### T2.2.2 T2-M 桌面-中 — 8×V100 SXM = 256 GB + +在 T2-L 平台基础上**加卡扩容**,是「同一代硬件纵向扩展」的对照档位,最贴近现有设备、改造成本最低。 + +| 项目 | 规格 | 变更点 | +| --------- | ----------------------------------------------- | ------------------ | +| **GPU** | NVIDIA V100 32GB SXM **× 8** | 4 → 8 卡 | +| **SXM 平台** | 300G NVLink **8 卡直连底板** | 更换底板 | +| **转接卡** | ROHSTNS-2SXM2-2P54E | 2 → 4 | +| **NVLink** | 全互联 8 卡,300 GB/s | 拓扑扩展 | +| 主板 / CPU | H12D-8D + EPYC 7402(双路可升级 EPYC 7742 64C) | 建议升双路以喂满 8 卡 | +| 内存 | 128 GB → **256 GB** DDR4-2133 | 8 卡需更大 pinned memory | +| 电源 | 2 × 2000W 冗余(或 220V 单相 16A 回路) | 1650W+1250W 不足 | +| 散热 | 360 液冷 ×2 + 机箱风道强化 | — | +| **整机功耗** | **~3.0~3.3 kW** | +100% | +| **总算力** | **~1000 TFLOPS (FP16)** | +100% | + +**可运行模型(新增/提升)** + +| 模型 | 量化 | 显存占用 | 并发实例数 | 说明 | +| ------------------------ | ---------- | ------ | ----- | ------------------ | +| **Qwen2.5-72B-Instruct** | FP16 | ~144 GB | 1~2 | TP=8 张量并行,无需量化 | +| **Qwen2.5-32B-Instruct** | FP16 | ~64 GB | 3+ | TP=4 | +| DeepSeek-V2-Lite | FP16 | ~31 GB | 8+ | — | +| Qwen2.5-14B | FP16 | ~28 GB | 9+ | 单卡可容,多实例并发 | + +> **备选方案**: 4 × RTX 6000 Ada 48GB = 192 GB,364 TFLOPS (FP16),整机 ~2.4 kW,风冷即可。优势是无 NVLink 但单卡能效高、显存快;劣势是跨卡走 PCIe Gen5。 + +#### T2.2.3 T2-H 桌面-高 — 4×H100 SXM5 = 320 GB + +| 项目 | 规格 | +| ------- | ---------------------------------------- | +| **GPU** | NVIDIA H100 80GB SXM5 **× 4**(NVLink 全互联) | +| 单卡算力 | ~989 TFLOPS (FP16 Tensor Core, dense) | +| 单卡显存 | 80 GB HBM3 | +| NVLink | 900 GB/s (GPU↔GPU) | +| CPU | AMD EPYC 9654 (96C/192T) ×1~2 | +| 内存 | 512 GB DDR5-4800 ECC | +| 底板 | HGX H100 4-GPU 或 8-GPU 底板(留 4 卡空位) | +| 存储 | 4 TB NVMe RAID0(模型权重加载) | +| 散热 | **强制液冷(冷板式)**,风冷不可行 | +| 电源 | 2 × 3000W 冗余 / 220V | +| **整机功耗** | **~4.5~6.5 kW** | +| **总算力** | **~4000 TFLOPS (FP16)**,稀疏 ~8000 TFLOPS | + +**备选方案**: 8 × RTX 6000 Ada 48GB = 384 GB,728 TFLOPS (FP16),~4.0 kW,风冷可行——容量更大、功耗更低,代价是无 NVLink 与算力密度。 + +**可运行模型(新增/提升)** + +| 模型 | 量化 | 显存占用 | 并发实例数 | 说明 | +| ------------------------ | ---------- | ------- | ----- | ----------------- | +| **Qwen2.5-72B-Instruct** | FP16 | ~144 GB | 2 | TP=4,H100 下 TTFT 极低 | +| LLaMA-3-70B | FP16 | ~140 GB | 2 | — | +| **DeepSeek-V2-Chat** | FP16 | ~210 GB | 1 | 单机可跑 | +| Mixtral-8x7B | FP16 | ~93 GB | 3 | MoE 专家并行 | + +### T2.3 SylixOS 要求(T2 三档通用) + +| 要求项 | 描述 | 风险 | +| ----------------- | ----------------------------- | ------------------- | +| x86 BSP | SylixOS 2.x LTS x86 | 低 | +| **CUDA 驱动** | V100 SXM / H100 SXM 在 SylixOS 的 CUDA 驱动 | **中**(需翼辉确认) | +| NVLink 支持 | 4 卡 / 8 卡 NVLink 拓扑在 SylixOS 可用 | 中 | +| vLLM / llama.cpp | Python + CUDA 推理框架适配 | 中(llama.cpp 优先,依赖少) | +| nvidia-smi / DCGM | GPU 监控 + 功耗采集 | 低 | +| 8 卡 / 4 卡拓扑切换 | 同一 BSP 支持 T2-L/M/H 不同卡数 | 低(设备树 + 枚举) | + +### T2.4 对照组 OS + +- **主对照**: Ubuntu 22.04 LTS + `linux-image-rt` (PREEMPT_RT) + vLLM +- **辅助对照**: CentOS Stream 9 + RT 内核(可选) + +--- + +## T3. 边级 — 8 G ~ 64 G + +### T3.1 定位 + +边缘 AI 推理与工业控制并发。验证 SylixOS 在**统一内存架构**(CPU+加速器共享 LPDDR)下的实时性——推理任务与实时控制任务共享内存带宽时的隔离能力。 + +### T3.2 档位对比 + +| 维度 | T3-L 边-低 | T3-M 边-中 | T3-H 边-高 | +| --------- | ---------------------------- | -------------------------- | ----------------------------- | +| **容量** | 16 GB 统一内存 | 32 GB 统一内存 | 64 GB 统一内存 / 48 GB 独立显存 | +| **加速器** | RK3588 NPU 6+26 TOPS / Ampere | Ampere GPU + 2×DLA | AGX Orin 64GB / RTX 6000 Ada | +| **算力** | 32 TOPS / 100 TOPS (INT8) | 275 TOPS (INT8) | 275 TOPS / 91 TFLOPS (FP16) | +| **功耗** | 10~30 W | 15~60 W | 60~600 W | +| **供电架构** | DC 12~24 V,无风扇/小风扇 | DC 19 V,主动风冷 | DC 19 V 或 ATX,风冷/液冷 | +| **工作温度** | -40~60 ℃ 工业级 | -25~80 ℃ | -25~80 ℃ / 0~50 ℃ | +| **SylixOS 风险** | **极低**(RK3588 BSP 复用 T4) | **高**(T234 BSP 需验证) | 高 / 中 | +| **状态** | (RK3588 16GB 工业盒) | | | + +#### T3.2.1 T3-L 边-低 — RK3588 16GB 工业盒(现有设备) + +**这是现有 RK3588 设备的标准归属档位**(16 GB 统一内存落在边级区间内),也是唯一可零成本立即开展研究的边级档位。 + +| 项目 | 规格 | 备注 | +| --------- | --------------------------------------- | --------------------- | +| SoC | Rockchip RK3588(同 T4-H) | SylixOS BSP 与 T4 共用 | +| 内存 | **16 GB LPDDR4X**(统一内存) | -40~60 ℃ 工业宽温 | +| NPU | 6 TOPS 原生 + **26 TOPS 算力棒扩展 = 32 TOPS** | 算力棒走 M.2 2280 | +| 功耗 | ~21~30 W(含算力棒) | 被动散热,可选小风扇 | +| 内存带宽 | ~51.2 GB/s (128-bit LPDDR4X) | 与 T4 相同,是带宽瓶颈点 | +| 模型 | Qwen2.5-3B/7B INT4(RKLLM) | 比 T4-H 内存翻倍,可跑更大模型 | + +**备选方案(同档位、CUDA 路线)**: NVIDIA Jetson Orin NX 16GB — 100 TOPS (INT8, sparse),1024 CUDA + 32 Tensor Core,16 GB LPDDR5 / 102.4 GB/s,10~25 W,**CUDA 生态与 T1/T2 打通**。代价是 SylixOS T234 BSP 风险高。 + +#### T3.2.2 T3-M 边-中 — NVIDIA Jetson AGX Orin 32GB + +| 项目 | 规格 | +| --------- | -------------------------------------------------- | +| **SoC** | NVIDIA T234(Grace 系列衍生) | +| **CPU** | 12× ARM Cortex-A78AE @ 2.0 GHz(64-bit) | +| **GPU** | NVIDIA Ampere 架构,2048 CUDA cores + 64 Tensor cores | +| **DLA** | 2× DLA v2.0(深度学习加速器,可异步推理) | +| **AI 算力** | **275 TOPS** (INT8) / 137.5 TOPS (INT8+INT8 双精度) | +| **内存** | **32 GB LPDDR5**(统一内存,CPU/GPU 共享) | +| 内存带宽 | 204.8 GB/s | +| **功耗** | **15 W ~ 60 W**(可配置功率模式:15W/30W/50W/60W) | +| 工作温度 | -25 ~ 80°C(工业级,但不如 RK3588 的 -40~60°C 宽) | +| 存储 | 64GB eMMC + M.2 NVMe(可扩展) | +| 网络 | 2× 10GbE(RJ45)+ 1× 千兆 | +| 视频接口 | HDMI 2.1 + DP 1.4a | +| USB | 4× USB 3.2 + 2× USB 2.0 | +| PCIe | PCIe Gen4 ×4(可扩展外设) | +| MIPI CSI | 4 通道(可接工业相机) | +| 尺寸 | 100mm × 87mm(核心模块) | +| **出厂 OS** | Ubuntu 20.04 LTS (L4T) | +| 价格 | ~$2,000-4,000(~15,000-28,000 RMB) | + +**选择 Jetson AGX Orin 的理由** + +1. **CUDA 生态统一**: 与 T1/T2 同为 NVIDIA GPU,vLLM / TensorRT / llama.cpp 可直接移植,无需切换到 RKLLM 栈 +2. **统一内存架构**: CPU 和 GPU 共享 32GB LPDDR5,无独立显存——LLM 推理和实时控制任务**争抢同一内存带宽**,是验证内存带宽管控(RQ2)的理想平台 +3. **DLA 异步推理**: 2 个 DLA 可在 GPU/CPU 不介入时执行推理,适合"LLM 推理让出 CPU/GPU 给实时任务"的调度策略验证 +4. **功率可配置**: 15W/30W/50W/60W 多档功率模式,可在不同功耗预算下测试 +5. **丰富 I/O**: 10GbE + MIPI CSI + PCIe Gen4,可接工业相机、高速网络、扩展卡 + +#### T3.2.3 T3-H 边-高 — 64 GB 档(两条路线) + +| 路线 | 主推 A: Jetson AGX Orin 64GB | 主推 B: 边缘工控机 + RTX 6000 Ada 48GB | +| ---------- | -------------------------------- | -------------------------------- | +| **架构** | ARM A78AE + Ampere GPU(统一内存) | x86 (Xeon/Core) + 独立 CUDA 显卡 | +| **容量** | 64 GB LPDDR5(统一内存) | 48 GB GDDR6 ECC(独立显存) | +| **算力** | 275 TOPS (INT8) | 91 TFLOPS (FP16) / 182 TFLOPS 稀疏 | +| **功耗** | 15~60 W | 整机 ~600 W | +| **散热** | 被动/主动风冷 | 主动风冷或液冷 | +| **生态** | CUDA + DLA,与 T3-M 同 BSP | 完整 CUDA + NVLink 可选 | +| **优势** | 能效极高、宽温、无风扇可行 | 算力密度高、显存带宽大、生态完整 | +| **劣势** | 统一内存带宽仅 204.8 GB/s,带宽受限 | 功耗/体积/散热不适合现场部署 | +| **适用场景** | 边缘现场、宽温环境、低功耗 | 边缘机柜、算力下沉、多模型并发 | + +**可运行模型(T3 三档合并)** + +| 模型 | 量化 | 显存占用 | 预期 tokens/s | 适用档位 | 推理框架 | +| ------------------------ | ------------ | ------- | ----------- | ------------- | ------------------------ | +| **Qwen2.5-1.5B-Instruct** | INT4 | ~1.2 GB | ~40-60 | T3-L | RKLLM | +| **Qwen2.5-3B-Instruct** | INT4 | ~2.5 GB | ~50-80 | T3-L / T3-M | TensorRT-LLM / RKLLM | +| **Qwen2.5-7B-Instruct** | INT4 (W4A16) | ~5 GB | ~30-50 | T3-L / T3-M | TensorRT-LLM / llama.cpp | +| **Qwen2.5-14B-Instruct** | INT4 | ~8 GB | ~20-35 | T3-M | TensorRT-LLM | +| **Qwen2.5-32B-Instruct** | INT4 | ~18 GB | ~12-20 | T3-M / T3-H | TensorRT-LLM | +| **Qwen2.5-72B-Instruct** | INT4 (AWQ) | ~36 GB | ~5-8 | T3-H | TensorRT-LLM / vLLM | +| MiniCPM-V 2.6 | INT4 | ~6 GB | ~15-25 | T3-L 以上 | llama.cpp | +| Whisper-Large-v3 | INT8/FP16 | ~1.5 GB | 流式 ASR | T3-L 以上 | faster-whisper | +| YOLOv8n | INT8 | ~0.1 GB | 200+ FPS | T3 全档 | TensorRT / RKNN | + +### T3.3 SylixOS 要求(T3) + +| 要求项 | 描述 | 风险 | +| -------------------- | --------------------------------------- | ---------------------------- | +| **ARM64 BSP (T234)** | SylixOS 需提供 NVIDIA T234 SoC 的 ARM64 BSP | **高**(需翼辉确认是否支持 Jetson Orin) | +| **RK3588 BSP(T3-L)** | 与 T4-H 共用同一 BSP,零额外风险 | **极低** | +| CUDA 驱动 | Jetson 专用 CUDA(L4T 驱动栈)在 SylixOS 适配 | 高 | +| DLA 驱动 | DLA 异步推理在 SylixOS 的可用性 | 高 | +| 功率模式 API | 15W/30W/50W/60W 切换在 SylixOS 的实现 | 中 | +| 内存监控 | 统一内存架构下的内存带宽监控(PMU 计数器) | 中 | +| 独立显存管理(T3-H B 路线) | x86 + 独显的显存分配与实时性 | 中 | + +> **取舍**: Jetson 路线优势在 CUDA 生态统一 + 275 TOPS + DLA;RK3588-16GB(T3-L)优势在 SylixOS BSP 风险极低 + -40~60℃ 工业级宽温。**建议 T3-L 直接用现有 RK3588 起步,T3-M/H 待 Jetson BSP 确认后再采购。** + +### T3.4 对照组 OS + +| 档位 | 主对照 | 辅助对照 | +| ---- | -------------------------------- | ----------------------------- | +| T3-L | Ubuntu 22.04 + PREEMPT_RT(RK3588) | OpenHarmony 4.x + RT patch(可选) | +| T3-M | Ubuntu 20.04 LTS (L4T) + PREEMPT_RT | Ubuntu 22.04 + Docker(容器隔离方案) | +| T3-H | Ubuntu 22.04 + PREEMPT_RT(x86/ARM) | Docker + KVM | + +### T3.5 功率采集 + +| 设备 | 用途 | 适用档位 | +| ----------------------------- | --------------------- | ----------- | +| DC 功率计(USB 接口型) | 整机 DC 输入端功耗 | T3-L / T3-M | +| INA226 采集板 | SoC 主电源轨(若可接入) | 全档 | +| `jetson_stats` / tegrastats | 内部功耗代理(辅助,非主报) | T3-M / T3-H | +| 交流功率计(PZEM / 智能插座) | 边缘工控机整机功耗 | T3-H B 路线 | + +--- + +## T4. 端级 — 1 G ~ 8 G + +### T4.1 定位 + +工业端点超低功耗 LLM 推理与硬实时控制。验证 SylixOS 在**极致资源约束**(3~21 W / 1~8 GB / 0.8~32 TOPS)下的 LLM + 1ms 实时控制并发能力。这是 RTOS 杀手锏场景——资源越紧张,RTOS 调度隔离的价值越大。 + +### T4.2 档位对比 + +| 维度 | T4-L 端-低 | T4-M 端-中 | T4-H 端-高 | +| ----------- | ---------------------- | -------------------- | ------------------------------ | +| **容量** | 1~2 GB LPDDR4X | 2~4 GB LPDDR5 | 4~8 GB LPDDR4X / LPDDR5 | +| **SoC** | RK3568 (4×A55) | RK3576 (4×A72+4×A53) | RK3588 (4×A76+4×A55+M0) / Orin Nano | +| **NPU 算力** | 0.8~1 TOPS (INT8) | 6 TOPS (INT8) | 6~32 TOPS / 40~67 TOPS (INT8) | +| **功耗** | 3~5 W | 5~10 W | 7~21 W | +| **散热架构** | 无风扇被动 | 无风扇被动 | 无风扇被动(可选小风扇) | +| **供电** | DC 5V / 12V | DC 12V | DC 12V | +| **工作温度** | -40~85 ℃ 工业级 | -40~85 ℃ 工业级 | -40~60 ℃ / 0~50 ℃ | +| **可运行模型** | 0.5B INT4 / Whisper-Tiny | 1.5B INT4 / YOLO 系列 | 3B~7B INT4 / MiniCPM-V | +| **状态** | | | ✅ 现有(RK3588 16GB 降配) | + +#### T4.2.1 T4-L 端-低 — RK3568 核心板(1~2 GB) + +| 项目 | 规格 | +| --------- | -------------------------------------- | +| SoC | Rockchip RK3568 (22nm) | +| CPU | 4× Cortex-A55 @ 2.0 GHz | +| **NPU** | **0.8~1 TOPS (INT8)**(RKNN 原生栈) | +| **内存** | **1~2 GB LPDDR4X**(统一内存,板贴) | +| 内存带宽 | ~25.6 GB/s | +| GPU | Mali-G52(仅辅助显示) | +| 存储 | 8~16 GB eMMC | +| 网络 | 1× 千兆 + 可选 WiFi | +| 工业接口 | CAN ×2 / RS485 ×2 / GPIO(典型核心板引出) | +| **功耗** | **3~5 W**(无风扇被动散热) | +| 工作温度 | -40 ~ 85 ℃ 工业级 | +| 出厂 OS | Buildroot / Ubuntu 20.04(可换 SylixOS) | +| 参考价格 | ~300~800 RMB(核心板/开发板) | + +**可运行模型**: Qwen2.5-0.5B INT4(~0.5 GB)、Whisper-Tiny INT8(~0.2 GB)、YOLOv5n INT8。 +**定位价值**: 谱系最低档,用于测出「LLM 推理到底能把实时性压到多差」的**下界**,以及 RTOS 在极小内存下能否守住 1ms。 + +#### T4.2.2 T4-M 端-中 — RK3576 核心板(2~4 GB) + +| 项目 | 规格 | +| --------- | ---------------------------------------- | +| SoC | Rockchip RK3576 (8nm) | +| CPU | 4× Cortex-A72 + 4× Cortex-A53(异构大小核) | +| **NPU** | **6 TOPS (INT8)** + 可扩展算力棒 | +| **内存** | **2~4 GB LPDDR5**(统一内存) | +| 内存带宽 | ~40 GB/s | +| **功耗** | **5~10 W**(无风扇被动) | +| 工作温度 | -40 ~ 85 ℃ 工业级 | +| 参考价格 | ~600~1,500 RMB | + +**可运行模型**: Qwen2.5-1.5B INT4(~1.2 GB,~15-25 tok/s)、Qwen2.5-0.5B INT4 多实例、YOLOv8s INT8。 +**定位价值**: 端级主力档,算力是 T4-L 的 6 倍而功耗仅翻倍,是**能效拐点**档位。 + +#### T4.2.3 T4-H 端-高 — RK3588 8GB(现有设备降配)/ Jetson Orin Nano 8GB + +**路线 A(现有设备,零成本): RK3588 工业盒 8GB 配置** + +| 项目 | 规格 | 说明 | +| --------- | --------------------------------------------------- | ------------------------ | +| SoC | Rockchip RK3588 (8nm) | 与现有 16GB 工业盒**同板同 BSP** | +| CPU | 4×A76 @2.4 GHz + 4×A55 @1.8 GHz | 异构大小核 | +| MCU | Cortex-M0 @200 MHz(协处理,可选) | 跨核通信验证 | +| GPU | Mali-G610 MC4 | 仅辅助显示 | +| **NPU** | **6 TOPS**(内置, INT8)/ **32 TOPS**(板贴 26 TOPS 算力芯片扩展) | 两档可切换 | +| **内存** | **4~8 GB LPDDR4X**(统一内存) | 现有 16GB 板通过**内存分区限额**降配运行 | +| 内存带宽 | ~51.2 GB/s (128-bit) | 与 T3-L 同 | +| **功耗** | **7~21 W**(无风扇被动散热) | 6 TOPS 档 ~12W / 32 TOPS 档 ~21W | +| 工作温度 | -40 ~ 60 ℃ 工业级 | 宽温优势 | +| 出厂 OS | Ubuntu 22.04 | 换 SylixOS BSP | + +> **现有 16GB 工业盒的双档位用法**: 同一台设备既可作为 **T3-L(16 GB 全量)** 也可作为 **T4-H(分区限额 8 GB)** 运行,通过 SylixOS 内存分区 / cgroup 限额切换,一台设备覆盖两个档位的对照实验,是本方案的成本关键。 + +**路线 B(CUDA 生态): NVIDIA Jetson Orin Nano 8GB** + +| 项目 | 规格 | +| --------- | --------------------------------------------------- | +| SoC | NVIDIA T234(Ampere 1024 CUDA + 32 Tensor Core) | +| **AI 算力** | **40 TOPS (INT8, 稀疏)**(Super 模式 67 TOPS) | +| **内存** | **8 GB LPDDR5**(统一内存,102.4 GB/s) | +| **功耗** | **7~25 W**(可配置 7W/15W/25W) | +| 优势 | **T4 档内唯一 CUDA 路线**,TensorRT-LLM 与 T1/T2/T3-M 同栈 | +| 劣势 | SylixOS T234 BSP 风险高,宽温不如 RK3588 | +| 参考价格 | ~$249(开发套件) | + +**可运行模型(T4-H)** + +| 模型 | 量化 | 显存占用 | 预期 tokens/s | 推理框架 | +| ------------------------- | ---- | ------- | ----------- | ----- | +| **Qwen2.5-3B-Instruct** | INT4 | ~2.5 GB | ~40-60 | RKLLM | +| **Qwen2.5-7B-Instruct** | INT4 | ~5 GB | ~20-30 | RKLLM | +| MiniCPM-V 2.6 | INT4 | ~6 GB | ~15-25 | RKLLM | +| Whisper-Large-v3 | INT8 | ~1.5 GB | 流式 ASR | RKLLM | + +#### T4.2.4 硬件配置明细(RK3588 工业级边缘计算盒子,现有设备) + +**系统 (System)** + +| 项目 | 规格 | +| ------- | ---------------------------------------------------- | +| SoC | Rockchip RK3588 (8nm) | +| CPU | 4×Cortex-A76 @2.4 GHz + 4×Cortex-A55 @1.8 GHz(异构大小核) | +| MCU | Cortex-M0 @200 MHz(协处理,可选) | +| GPU | Mali-G610 MC4 | +| **NPU** | **6 TOPS**(内置, INT8)/ **32 TOPS**(板贴 26 TOPS 算力芯片扩展) | +| **内存** | **16 GB LPDDR4X**(板贴,不可升级)→ 可按 8 GB 分区用作 T4-H | +| **显存** | 统一内存(NPU 与 CPU 共享) | + +**存储 / 扩展** + +- EMMC 64 GB(系统盘) +- 1× TF 卡槽(存储扩展) +- 1× M.2 2280 NVMe(可扩展 SSD / 算力棒) + +**出厂软件** + +- 操作系统: **Ubuntu 22.04**(出厂预装) +- 验证方案: 替换为 SylixOS BSP for RK3588,保留 Ubuntu 22.04 作为对照组 + +**算力与功耗(T4-H 档)** + +| 指标 | 值 | +| ------------------ | ------------------------------- | +| **可用显存** | **8 GB**(16 GB 板分区限额) | +| NPU 算力 (6 TOPS 档) | 6 TOPS (INT8) | +| NPU 算力 (32 TOPS 档) | 32 TOPS (INT8, 含 26 TOPS 扩展) | +| GPU 算力 | Mali-G610 MC4(仅辅助,非主推理路径) | +| 内存带宽 | LPDDR4X ~51.2 GB/s (128-bit) | +| **TDP** | **7~21 W**(无风扇被动散热) | + +### T4.3 SylixOS 要求(T4) + +| 要求项 | 描述 | 风险 | 适用档位 | +| ---------------------- | --------------------------------------- | -------------------- | --------- | +| **RK3588 BSP** | SylixOS BSP for RK3588(A76+A55 大小核 SMP) | 中(需翼辉提供) | T4-H | +| **RK3576 BSP** | SylixOS BSP for RK3576 | 中-高(需翼辉确认) | T4-M | +| **RK3568 BSP** | SylixOS BSP for RK3568 | 中(RK3568 生态成熟,风险低于 T234) | T4-L | +| **rknn / RKLLM 驱动** | NPU 驱动在 SylixOS 移植 | **高**(平台B 模型适配核心风险) | T4 全档 | +| 板贴 26 TOPS 算力芯片驱动 | 算力棒 SDK | 高(厂商支持度) | T4-H | +| M0 核 BSP + RPMsg | 跨核通信 | 高(需翼辉 + 板卡引出 M0 调试口) | T4-H | +| **内存分区限额机制** | 16 GB 板按 8 GB 分区运行(T3-L/T4-H 切换) | 中(需 SylixOS 内存域支持) | T4-H | +| CAN ×2 驱动 | 工业现场总线 | 中 | T4 全档 | +| RS485 ×2 + RS232 ×1 | 串口 | 低 | T4 全档 | +| 双千兆 + WiFi + 4G/5G | 网络 | 中 | T4-H | +| 看门狗 / RTC | 工业可靠性 | 低 | T4 全档 | +| Jetson Orin Nano BSP | T234 低配版 BSP(路线 B) | 高 | T4-H 路线B | + +### T4.4 对照组 OS + +- **主对照**: Ubuntu 22.04(RK3588 出厂预装,完美匹配,直接对照) +- **辅助对照**: OpenHarmony 4.x + RT patch(可选) +- T4-L / T4-M: Buildroot + PREEMPT_RT + +--- + +## 5. 跨档位对比总表 + +### 5.1 全档位硬件规格对比 + +| 档位 | 容量 | 算力 | 功耗 | 加速器架构 | 散热架构 | 互联 | SylixOS BSP 风险 | +| -------- | ---------- | ------------------- | ----------- | ------------------ | ----------- | ---------------- | ------------- | +| **T4-L** | 1~2 GB | 0.8~1 TOPS | 3~5 W | ARM A55 + NPU | 被动无风扇 | GPIO/CAN/RS485 | 中 | +| **T4-M** | 2~4 GB | 6 TOPS | 5~10 W | ARM A72+A53 + NPU | 被动无风扇 | 千兆 + CAN | 中-高 | +| **T4-H** | 4~8 GB | 6~32 TOPS | 7~21 W | ARM A76+A55+M0+NPU | 被动无风扇 | 双千兆 + CAN + M.2 | 中 / 高(路线B) | +| **T3-L** | 8~16 GB | 32~100 TOPS | 10~30 W | ARM 统一内存 + NPU/GPU | 被动/小风扇 | 双千兆 + M.2 | **极低**(现有) | +| **T3-M** | 16~32 GB | 275 TOPS | 15~60 W | A78AE + Ampere + DLA | 主动风冷 | 10GbE + PCIe Gen4 | **高** | +| **T3-H** | 32~64 GB | 275 TOPS / 91 TFLOPS | 60~600 W | ARM 统一内存 / x86+独显 | 风冷 / 液冷 | 10GbE + PCIe | 高 / 中 | +| **T2-L** | 64~128 GB | 500 TFLOPS (FP16) | ~1.65 kW | x86 + 4×V100 NVLink | 360 液冷 + 风道 | NVLink | 低(现有) | +| **T2-M** | 128~256 GB | 1000 TFLOPS (FP16) | ~3.0~3.3 kW | x86 + 8×V100 NVLink | 360 液冷 + 风道 | NVLink | 低 | +| **T2-H** | 256~512 GB | ~4000 TFLOPS (FP16) | ~4.5~6.5 kW | x86 + 4×H100 NVLink | 强制液冷 | NVLink + PCIe | 中 | +| **T1-L** | 512 GB~1 T | ~2000 TFLOPS (FP16) | ~6.6 kW | 4 节点 × 4×V100 | 机房风冷 + 液冷 | NVLink + 100GbE | 中-高 | +| **T1-H** | 1~2 T | ~16 PFLOPS (FP16) | ~20~25 kW | 4 节点 × 4×H100 | 机房级液冷 | NVLink + NDR 400G | 中-高 | + +### 5.2 模型规模梯度 + +| 档位 | 代表模型 | 量化 | 显存占用 | 角色 | +| -------- | --------------------------- | ---------- | ------- | -------------- | +| T4-L | Qwen2.5-0.5B / Whisper-Tiny | INT4/INT8 | 0.5 GB | 谱系下界,实时性基准 | +| T4-M | Qwen2.5-1.5B | INT4 | 1.2 GB | 端级能效拐点 | +| T4-H | Qwen2.5-3B / 7B | INT4 | 2.5 / 5 GB | 端点可跑 7B | +| T3-L | Qwen2.5-3B / 7B | INT4 | 2.5 / 5 GB | 边缘推理 + 工业控制 | +| T3-M | Qwen2.5-14B / 32B | INT4 | 8 / 18 GB | 边缘多模型并发 | +| T3-H | Qwen2.5-72B | INT4 (AWQ) | 36 GB | 边缘可跑 72B | +| T2-L | Qwen2.5-72B / 14B | INT4 / FP16 | 36 / 28 GB | 桌面多模型并发 | +| T2-M | Qwen2.5-72B | FP16 | 144 GB | 桌面单机无量化 72B | +| T2-H | DeepSeek-V2 / 72B | FP16 | 210 / 144 GB | 桌面单机超大模型 | +| T1-L | Qwen2.5-72B / DeepSeek-V2 | FP16 | 144 / 210 GB | 多节点分布式推理 | +| T1-H | DeepSeek-V3/R1 671B | INT4 | ~400 GB | 超大模型分布式服务 | + +### 5.3 SylixOS 调度框架验证重点 + +| 档位 | 验证重点 | 核心实时指标 | 核心吞吐指标 | +| ----- | ----------- | ---------------------------------- | -------------------------- | +| T4-L | 极小内存下保号 | 1ms RT 任务延迟(1GB 内存约束下) | 0.5B tokens/s、内存占用上限 | +| T4-M | 能效拐点 | 1ms RT 任务 P99.9、CPU 频率调节影响 | 1.5B tokens/s、E_per_token | +| T4-H | 极致资源约束下保号 | **1ms RT 任务最大延迟 + CAN/RS485 延迟** | 3B/7B tokens/s、E_per_token | +| T3-L | 统一内存带宽隔离(NPU) | NPU 推理 + 实时任务共享 51.2 GB/s 带宽时 RT 抖动 | 7B INT4 tokens/s | +| T3-M | 统一内存带宽隔离(GPU) | LLM+RT 共享内存带宽时 RT 任务 P99.9 | 14B tokens/s、DLA 异步收益 | +| T3-H | 大容量边缘并发 | 72B 推理与 RT 任务共存时的优先级反转 | 72B INT4 tokens/s、多模型 QPS | +| T2-L | 单机多卡 NVLink 调度 | GPU 命令端到端延迟、多模型并发公平性 | 14B/72B tokens/s、TTFT P99.9 | +| T2-M | 8 卡拓扑调度 | 8 卡 NVLink 全互联下的集合通信抖动 | 72B FP16 tokens/s | +| T2-H | 高算力密度下的隔离 | H100 满负载时 RT 任务 P99.9 | 72B FP16 TTFT、671B 分片吞吐 | +| T1-L | 跨节点分布式调度隔离 | RDMA 延迟、NCCL all-reduce 期间 RT 任务抖动 | 72B 模型 tokens/s、多模型 QPS | +| T1-H | 超大规模分布式调度 | NDR IB 延迟、671B 推理期间 RT 抖动 | 671B tokens/s、能效比 | + +### 5.4 基线 OS 对照 + +| 档位 | SylixOS 实验组 | 主对照 (Linux RT) | 虚拟化对照 | 容器对照 | +| ------- | ---------------------- | --------------------- | -------------- | --------- | +| T4-L | SylixOS ARM64 (RK3568) | Buildroot + RT | — | Docker | +| T4-M | SylixOS ARM64 (RK3576) | Buildroot + RT | — | Docker | +| T4-H | SylixOS ARM64 (RK3588) | Ubuntu 22.04 + RT | KVM (RT VM) | Docker | +| T3-L | SylixOS ARM64 (RK3588) | Ubuntu 22.04 + RT | KVM (RT VM) | Docker | +| T3-M | SylixOS ARM64 (T234) | L4T Ubuntu 20.04 + RT | KVM (RT VM) | Docker | +| T3-H | SylixOS ARM64 / x86 | Ubuntu 22.04 + RT | KVM (RT VM) | Docker | +| T2-L/M | SylixOS x86 | Ubuntu 22.04 + RT | KVM (RT VM) | Docker | +| T2-H | SylixOS x86 | Ubuntu 22.04 + RT | KVM (RT VM) | Docker | +| T1-L | SylixOS x86 ×4 节点 | Ubuntu 22.04 + RT ×4 | KVM (RT VM) ×4 | Docker ×4 | +| T1-H | SylixOS x86 ×4 节点 | Ubuntu 22.04 + RT ×4 | KVM (RT VM) ×4 | Docker ×4 | + +--- + +## 6. 采购与获取计划 + +| 优先级 | 档位 | 设备 | 估算费用 (RMB) | 备注 | +| ------ | ------- | ----------------------------- | -------------------- | ---------------------- | +| **P0** | T3-L | **RK3588 16GB 工业盒**(现有) | **0** | 现有设备,立即可用 | +| **P0** | T2-L | **4×V100 SXM 塔式整机**(现有) | **0** | 现有设备,谱系锚点 | +| **P0** | T4-H | **RK3588 工业盒 8GB 分区**(现有) | **0** | 与 T3-L 同机双档位 | +| **P1** | T4-L | RK3568 1~2GB 核心板 | ~300-800 | 谱系下界,必做 | +| **P1** | T4-M | RK3576 4GB 核心板 | ~600-1,500 | 端级能效拐点 | +| **P1** | T3-M | Jetson AGX Orin 32GB | ~15,000-28,000 | 需尽早确认 SylixOS T234 BSP | +| **P2** | T3-M 备选 | RK3588 32GB 工业盒 + 26 TOPS 算力棒 | ~3,000-5,000 | 若 Jetson BSP 不支持 | +| **P2** | T3-H | Jetson AGX Orin 64GB | ~30,000-50,000 | 边缘可跑 72B | +| **P2** | T4-H 备选 | Jetson Orin Nano 8GB 开发套件 | ~1,800-2,500 | CUDA 路线对照 | +| **P3** | T2-M | 4× V100 32GB SXM + 8 卡底板 + 电源 | ~70,000-100,000 | 现有平台加卡扩容 | +| **P3** | T2-H | 4× H100 80GB SXM5 工作站 | ~800,000-1,200,000 | 可租云实例替代 | +| **P3** | T1-L | 3× 计算节点 + 12× V100 + IB | ~270,000 | 可用云实例替代 | +| **P4** | T1-H | 4 节点 × 4×H100 + NDR IB | ~3,000,000+ | 强烈建议云租替代 | +| — | 仪器 | DC 功率计 ×2 (T3+T4) | ~6,000 | T4 强制 | +| — | 仪器 | INA226 采集板 ×2 | ~500 | T3+T4 | +| — | 仪器 | 交流功率计 / 智能插座 | ~1,000 | T3-H / T2 档 | +| — | 仪器 | 示波器 (Tektronix MDO34) | ~30,000 | GPIO 环回延迟(可借用) | +| — | 仪器 | 红外测温枪 ×2 | ~1,000 | 被动散热档位 | +| — | 仪器 | CANalyzer | ~20,000 | T4 CAN 总线延迟(可借用) | +| **合计** | | **P0~P2 必做项** | **~55,000-95,000** | 不含 T1/T2 扩展 | + +### 降本策略 + +1. **P0 零成本起步**: T2-L + T3-L + T4-H 三个档位由现有硬件直接覆盖,可立即启动 SylixOS 适配与基线数据采集,无需等待采购。 +2. **一机两档**: RK3588 16GB 工业盒通过内存分区同时充当 T3-L(16 GB)与 T4-H(8 GB),省去一台设备与一套 BSP 验证成本。 +3. **档位跳跃验证**: 若某档位 SylixOS BSP 不可行,可直接跳过该档(如 T4-M 若 RK3576 BSP 不可用,用 T4-H 降配替代),谱系不断。 +4. **T1/T2-H 云替代**: H100 集群强烈建议租用云实例(阿里云 GN7 / AWS p5),按需付费,避免百万级 CAPEX 与机房改造。 +5. **T3-M Jetson**: 可先用 NVIDIA 开发者板(约 $2,000)验证 SylixOS BSP 可行性后再采购工业级版本。 +6. **仪器借用**: 示波器和 CANalyzer 可从实验室借用,不必专门采购。 + +--- + +## 7. SylixOS BSP 适配 Checklist(跨档位汇总) + +### 7.1 x86 BSP(T2 全档 + T1 全档) + +- [ ] SylixOS 2.x LTS x86 在 H12D-8D 主板可启动 +- [ ] AMD EPYC 7402 / 9654 多核 SMP 调度 +- [ ] **4× V100 SXM CUDA 驱动**(T2-L,核心) +- [ ] **8× V100 SXM CUDA 驱动 + 8 卡拓扑**(T2-M) +- [ ] **4× H100 SXM5 CUDA 驱动 + NVLink 900GB/s**(T2-H) +- [ ] NVLink 4 卡 / 8 卡全互联拓扑枚举 +- [ ] nvidia-smi / DCGM 监控 +- [ ] vLLM / llama.cpp 在 SylixOS x86 编译运行 +- [ ] **Mellanox ConnectX-6 RDMA 驱动**(T1-L 专属) +- [ ] **ConnectX-7 NDR 400G RDMA 驱动**(T1-H 专属) +- [ ] NCCL / MPI 分布式通信库(T1 专属) +- [ ] IPMI / BMC 功耗采集 +- [ ] tickless + CPU 隔离 + 中断亲和性 +- [ ] 高功耗档位热管理(H100 液冷温度阈值联动降频) + +### 7.2 ARM64 BSP — T234 / Ampere(T3-M / T3-H-A / T4-H 路线B) + +- [ ] **SylixOS ARM64 在 NVIDIA T234 SoC 可启动**(核心,需翼辉确认) +- [ ] 12× Cortex-A78AE SMP 调度(AGX Orin)/ 6× A78AE(Orin NX / Nano) +- [ ] Jetson Ampere GPU CUDA 驱动 +- [ ] **DLA v2.0 驱动**(异步推理,AGX Orin 专属) +- [ ] 16/32/64 GB LPDDR5 统一内存管理 +- [ ] 功率模式切换 API (7W/15W/25W/30W/50W/60W) +- [ ] 10GbE 网络驱动 +- [ ] MIPI CSI 工业相机接口 +- [ ] PCIe Gen4 扩展 +- [ ] 温度传感器 + 降频阈值 + +### 7.3 ARM64 BSP — RK3588(T4-H / T3-L) + +- [ ] SylixOS BSP for RK3588(A76+A55 大小核 SMP) +- [ ] CPU 频率独立调节 (governor) +- [ ] **内存分区限额机制**(16 GB 板按 8 GB 运行,T3-L ↔ T4-H 切换) +- [ ] tickless / idle hook +- [ ] 看门狗驱动 +- [ ] **rknn / RKLLM NPU 驱动**(核心) +- [ ] **板贴 26 TOPS 算力芯片驱动**(32 TOPS 档位) +- [ ] **M0 核 BSP + RPMsg 跨核通信**(若用 M0) +- [ ] 双千兆 + WiFi 6 + 4G/5G 驱动 +- [ ] CAN ×2 驱动 +- [ ] RS485 ×2 + RS232 ×1 驱动 +- [ ] GPIO 子系统 +- [ ] HDMI 输出(调试) +- [ ] **Ubuntu 22.04 与 SylixOS 双系统引导** + +### 7.4 ARM64 BSP — RK3576(T4-M) + +- [ ] SylixOS BSP for RK3576(A72+A53 大小核 SMP) +- [ ] 6 TOPS NPU 驱动(RKNN 栈) +- [ ] 2~4 GB LPDDR5 内存管理 +- [ ] CAN / RS485 / 千兆网络驱动 +- [ ] 低功耗被动散热下的频率/温度联动 + +### 7.5 ARM64 BSP — RK3568(T4-L) + +- [ ] SylixOS BSP for RK3568(4×A55 SMP) +- [ ] 0.8~1 TOPS NPU 驱动(RKNN 栈) +- [ ] **1~2 GB 极小内存下的内核裁剪与内存域划分**(核心难点) +- [ ] CAN / RS485 / 千兆网络驱动 +- [ ] 1ms 实时任务在 1 GB 内存约束下的可行性验证 diff --git a/实验设计.md b/实验设计.md new file mode 100644 index 0000000..022ce42 --- /dev/null +++ b/实验设计.md @@ -0,0 +1,282 @@ +# SylixOS 混合实时任务与 AI 推理实验设计 + +> 更新日期:2026-09-20。依据:[基础设备配置 v2.0](../基础设备.md),扩展自[原实验设计](../实验设计.md)。 +> 本文给出待执行方案,不代表已有测试结果。设备标称参数、模型容量估计和性能目标均须通过实机准入验证。 + +## 1. 研究目标与实验范围 + +研究问题是:在端、边、桌面、集群不同资源条件下,SylixOS 的调度与资源隔离能否在保持实时任务截止期的同时,提高 AI 推理服务的有效吞吐和能效? + +| 研究问题 | 自变量 | 主要观测量 | 支持结论所需证据 | +|---|---|---|---| +| RQ1:混合负载下的实时性 | OS、调度策略、干扰强度 | 唤醒延迟、响应时间、截止期违约率 | 同硬件同负载的配对对照 | +| RQ2:隔离机制的代价与收益 | CPU/IRQ 亲和性、内存限额、推理准入 | P99.9 延迟、有效吞吐、拒绝率 | 默认、完整方案与逐项消融 | +| RQ3:功耗预算下的运行能力 | 频率、空闲策略、推理并发 | J/token、温度、违约率 | 满足同一服务质量约束的配置比较 | +| RQ4:规模扩展后的瓶颈 | GPU 数、节点数、模型规模 | 扩展效率、通信尾延迟、公平性 | 同模型强扩展与固定单节点负载弱扩展 | + +执行分为两层:**核心实验使用现有 T2-L、T3-L 和 T4-H 内存受限配置;其他八档属于条件扩展**。核心结论不依赖新增集群、Jetson 或 H100 到位。LLM 是主负载,YOLO 检测和语音识别是可选混合负载;训练不纳入主实验。 + +## 2. 设备分层与实验平台 + +### 2.1 四层级、十一档实验映射 + +沿用设备文档的档位标签,实际容量单列。设备文档中“512 GB 边界归桌面高档”与“512 GB 集群标为 T1-L”存在口径差异;本文按多节点架构将该集群记为 T1-L,不据容量边界推导性能。 + +| 层级与档位 | 拟用设备 / 容量 | 状态 | 对应实验重点 | +|---|---|---|---| +| T4-L 端低 | RK3568,1~2 GB | 待获取、待适配 | 极小内存、轻量模型、实时任务保留资源 | +| T4-M 端中 | RK3576,4 GB | 待获取、待适配 | 小模型能效、频率与实时性关系 | +| T4-H 端高 | 现有 RK3588 16 GB 板限额至 8 GB | 可开展限额配置验证 | 内存压力、GPIO/CAN/RS485 混合负载 | +| T3-L 边低 | 现有 RK3588,16 GB 统一内存 | 核心平台 B | NPU/CPU 共享资源干扰、多模型并发 | +| T3-M 边中 | Jetson AGX Orin 32 GB | BSP 与驱动准入后开展 | GPU 共享内存、可用时加入 DLA | +| T3-H 边高 | AGX Orin 64 GB 或 x86 + RTX 6000 Ada 48 GB | 二选一,分别标识架构 | 大模型并发与容量上限 | +| T2-L 桌面低 | 现有 4×V100 SXM 32 GB,总显存 128 GB | 核心平台 A | 多卡推理、NVLink 通信与实时隔离 | +| T2-M 桌面中 | 8×V100 32 GB,总显存 256 GB | 待扩容 | 同代 GPU 数量扩展 | +| T2-H 桌面高 | 4×H100 80 GB,总显存 320 GB | 待获取或租用 | 高算力密度、跨代对照 | +| T1-L 集群低 | 4 节点×4×V100,总显存 512 GB | 待扩展 | 跨节点通信与分布式推理 | +| T1-H 集群高 | 4 节点×4×H100,总显存 1.28 TB | 远期扩展 | 大模型分布式服务与能效 | + +GPU 显存、主机内存和 SoC 统一内存分别记录,不加总为单一可分配空间。多卡总容量不能代替每卡分片可行性验证;FP16 TFLOPS 与 INT8 TOPS 不直接换算,也不作为实测吞吐。 + +### 2.2 平台 A:现有 V100 服务器 + +依设备清单配置 H12D-8D 主板、单颗 EPYC 7402(24 核/48 线程)、128 GB DDR4、1 TB NVMe、4×V100 SXM 32 GB、NVLink 底板、双电源及液冷。完整 BOM 见设备文档 T2.2.1。 + +实验前采集 CPU/NUMA 拓扑、实际内存通道、PCIe 链路、逐对 GPU 互联与带宽、各卡温度和功率上限。4 卡互联形态以枚举和通信测试为准。双电源输入均纳入整机能耗,不把额定电源瓦数当作运行功耗。 + +分别测试 1、2、4 卡;单卡先完成模型与采样链路验证,再加入多卡并行。CPU 实时任务使用固定物理核,记录其 SMT 同胞核的使用方式,避免不同组的物理资源分配不一致。 + +### 2.3 平台 B:现有 RK3588 工业盒 + +依设备清单采用 4×A76 + 4×A55、16 GB 统一内存、64 GB eMMC,以及实际引出的 GPIO、CAN、RS485 和网络接口。原生 NPU 与外接加速器分开登记。 + +- B16:全量 16 GB,记为 T3-L。 +- B8:同板施加 8 GB 限额,记为 T4-H 受限配置;两种配置顺序运行。 +- 原生 NPU 是首轮路径;所谓“6+26 TOPS”仅为设备文档中的组合标称。扩展芯片型号、连接方式、模型格式和任务拆分能力通过后,才增加独立对照,不假定两者能共同加速同一 LLM。 +- 可选 M0、CAN 和 RS485 必须先核对实物与 BSP;缺失的接口实验登记为未开展。 + +**内存限额口径**:优先采用能覆盖 OS 可见内存及加速器保留区的启动配置,并记录实际可用容量。若只能限制应用进程,则标为“8 GB 应用预算”,不能称为整机 8 GB。核对驱动缓冲区、DMA/CMA、页缓存、共享内存与交换空间是否受限;禁止将限额实验解释为真实 8 GB 板卡的功耗或带宽结论。 + +### 2.4 测量设备 + +| 测量对象 | 工具与接线 | 要求 | +|---|---|---| +| RK3588 整机功耗 | DC 输入端功率计;INA226 仅在量程和接线适配时使用 | 包含加速器和约定外设;保存电压、电流与采样率 | +| V100 整机功耗 | 覆盖两路电源的交流功率计 / PDU | 单卡遥测仅作归因,不能替代整机读数 | +| 物理实时响应 | 示波器或逻辑分析仪,GPIO 输入到输出环回 | 记录探头、触发方式、分辨率及环回空载值 | +| 工业接口 | CAN 分析仪、RS485 对端或回环装置 | 固定波特率、帧长、总线负载和时间戳位置 | +| 热状态 | 可用片上传感器,辅以外部温度测量 | 分别记录环境温度、芯片温度、频率和降频事件 | + +传感器不能读取的指标记为 N/A,不以零代替;不得预设所有平台都有 `npu-smi`、DCGM 或相同性能接口。 + +## 3. 软件与模型准入 + +### 3.1 分阶段准入门槛 + +| 门槛 | 验证内容 | 通过证据 | 失败后的处理 | +|---|---|---|---| +| G0 设备识别 | 启动、SMP、容量、接口、时钟 | 硬件清单和启动日志 | 修复平台配置,暂停性能比较 | +| G1 实时与采样 | 周期任务、单调时钟、优先级、日志缓冲 | 空载时间序列、计时校验 | 仅记录功能适配结果 | +| G2 加速器 | 驱动加载、内存分配、最小算子、结果回读 | 运行日志、正确性结果 | 保留 CPU 路径,单独标识后端 | +| G3 完整模型 | 转换、加载、推理、释放、重复运行 | 模型校验值、输出、峰值内存 | 缩小模型或更换已验证后端 | +| G4 混合负载 | RT + 推理稳定运行至少 30 分钟 | 无崩溃、采样完整、失败可追踪 | 排查后再进入正式批次 | + +SylixOS 能启动不等于 CUDA、RKLLM、RKNN、NCCL、Ray 或 RDMA 已可用。设备文档列出的软件栈均按候选路线处理,冻结实际 OS/BSP、驱动、SDK、编译器和框架版本后再比较。 + +若仅能采用“SylixOS 实时域 + Linux 推理域”,应作为单独的异构系统架构组,注明核分配、通信和内存共享方式。该结果不能写成 SylixOS 原生 GPU/NPU 推理结论。 + +### 3.2 模型梯度与用途 + +| 平台 | 首轮候选 | 扩展候选 | 后端准入检查 | +|---|---|---|---| +| T4-L/M | Qwen2.5-0.5B / 1.5B,候选 INT4 | 轻量视觉或语音模型 | 对应芯片实际支持的模型、算子及量化格式 | +| B8 / B16 | Qwen2.5-0.5B / 1.5B / 3B,候选 INT4 | 7B;YOLOv8-n/s INT8 | RKLLM 与 RKNN 分别验证;不可混用兼容性结论 | +| T2-L | Qwen2.5-7B FP16,先单卡 | 14B FP16;72B 量化多卡 | V100 的驱动、内核、量化算子和并行支持 | +| T3-M/H | 7B / 14B,容量适配后运行 | 32B / 72B 量化 | 精确到所选设备和软件版本 | +| T2-M/H、T1-L | 同一 7B/14B 基准;72B FP16 作为容量实验 | 多实例与更长上下文 | 每卡显存、通信路径和框架支持 | +| T1-H | 72B 作为跨规模桥接模型 | 671B 量化模型 | 完整权重、运行时、KV cache 和分片均可容纳 | + +模型占用按“权重 + KV cache + 激活/工作区 + 运行时 + 保留余量”评估;不按权重大小直接计算并发实例数。每个候选先完成并发 1 的峰值测量,再逐级增加上下文和并发。原稿中的 tokens/s、FPS、内存估计作为待验证参考,不作为已知性能。 + +### 3.3 输入与正确性控制 + +LLM 固定模型修订、tokenizer、量化文件校验值、随机种子、解码参数和输入 token 序列。首轮使用输入长度 128/512/2048、目标输出 128 token;受限平台不能完成的单元记录容量失败。性能用固定长度合成输入,任务质量用独立固定题集;提前结束的请求记录实际输出长度,不补造 token。 + +YOLO 可选使用固定 640×640 输入、同一验证集和相同预处理,报告 mAP、帧处理延迟和丢帧率。量化实验同时比较任务质量与速度;不同后端若算子或数值格式不同,只能归为整套软件栈比较。 + +## 4. 指标定义与采集口径 + +### 4.1 实时性与系统开销 + +对第 i 次周期任务记录计划释放时刻 r_i、就绪时刻 q_i、实际开始时刻 s_i 和完成时刻 f_i,周期为 T,相对截止期为 D。 + +| 指标 | 定义 | 汇总 | +|---|---|---| +| 唤醒延迟 | s_i − r_i,包含定时释放与调度影响 | P50/P95/P99/P99.9、观测最大值 | +| 就绪后调度延迟 | s_i − q_i,仅在两系统均可取得等价就绪事件时使用 | 同上,独立于唤醒延迟 | +| 响应时间 | f_i − r_i | 分位数、观测最大值 | +| 截止期违约率 | count(f_i > r_i + D) / 计划释放次数 | 分子、分母、丢失/跳过次数 | +| 完成抖动 | 相邻完成间隔减去 T | 分布与时间序列 | +| 上下文切换 / IPC | 固定线程数和消息大小的往返测量 | µs;说明是否含系统调用和拷贝 | +| 外部响应 | 外部触发到 GPIO 翻转或回包的时间 | µs/ms,说明物理链路边界 | + +缺失的周期不能直接从分母移除;需追踪其完成状态,否则该批实时性数据判为不完整。Linux 可使用 cyclictest 等作为辅助,跨 OS 主比较使用相同任务语义的测试程序,不假定 Linux 工具可直接运行于 SylixOS。 + +### 4.2 推理服务 + +在负载发生器的单调时钟上记录计划到达、实际发送、首 token 和最后 token 到达时间。 + +- TTFT:首 token 到达 − 实际发送,包含排队、传输与 prefill;同时记录发送滞后,防止负载发生器饱和掩盖排队。 +- TPOT:对输出 token 数 n > 1,使用(末 token 到达 − 首 token 到达)/(n−1);逐 token 间隔另行汇总。 +- 总输出吞吐:测量窗口内收到的输出 token 数 / 窗口时长;另报成功完成请求吞吐和请求成功率。 +- 有效吞吐:仅统计满足预先冻结的 TTFT、完成期限及质量要求的成功请求,其输出 token 数 / 窗口时长;同时报告拒绝、超时和错误,避免只靠丢弃请求改善尾延迟。 +- CPU→加速器端到端延迟:主机提交到结果可用;设备事件计时只作执行阶段分解,不代替完整链路。 + +### 4.3 能耗与热状态 + +在与负载一致的窗口 [t0,t1] 内积分:E_total = ∫P(t)dt;E_token = E_total / N_output,单位 J/token;tokens/J = N_output / E_total。固定窗口包含排队及已执行失败请求消耗的电能,并另外报告完成率。 + +同时可报告 E_dynamic = E_total − P_idle×(t1−t0),但不得与整机总能耗混用。N_output=0 时能效记为不可计算。混合视觉与 LLM 负载的总能耗不能全部归因于 LLM;应单列场景或增加独立负载对照。 + +报告平均功率、仪器采样峰值、空载功率、温度、实际频率和降频时间比例。**21 W 等设备标称值不直接定义实测整机峰值上限**;工程功耗预算由测量边界、具体硬件及项目需求在试运行后冻结。 + +## 5. 对照组与变量控制 + +### 5.1 OS 与部署组 + +| 编号 | 配置 | 作用 | +|---|---|---| +| O0 | 板卡支持的普通 Linux,固定发行版与内核 | 通用系统基线 | +| O1 | 同硬件可用的 Linux PREEMPT_RT,记录补丁与驱动兼容性 | 主要实时对照 | +| O2 | SylixOS 默认配置 | 原生系统基线 | +| O3 | SylixOS 调度、隔离与推理准入优化 | 主实验组 | +| O4 | Linux RT 等预算调优 | 避免仅一侧调优造成偏差 | +| O5(可选) | KVM 实时虚拟机 / 容器部署,分别记录 | 部署开销;不能视为独立内核类型 | + +平台 B 原稿列出的出厂 Ubuntu 22.04 先核对镜像;扩展平台选择实际受支持的 OS 镜像。无法提供同一推理后端时,明确区分“OS 调度效应”与“系统方案效应”。 + +### 5.2 配置控制与消融 + +所有对照固定核心数量、RT 优先级、内存预算、模型输入、加速器数量、功率策略、后台服务和日志方式。B8/B16 对照只改变内存预算;频率策略作为独立实验变量,记录各 OS 的实际频率,不仅记录策略名称。 + +完整方案逐项去除:①CPU 核隔离;②IRQ 亲和性;③预分配/内存限额;④推理队列限长与准入;⑤功耗感知策略。每次只去除一个机制,并保留默认配置;不支持的机制注明不可用,不伪造等效实现。 + +## 6. 负载设计 + +### 6.1 实时任务 + +主任务周期 T=1 ms,D=1 ms;扩展周期 0.5/5/10 ms。任务体采用确定性计算或内存访问,在每台机器固定参考频率下校准至约 100 µs,再冻结迭代次数;后续频率实验不重新校准工作量。另测试 20%/40% 参考 CPU 占用预算,记录实测执行时间。 + +任务使用绝对时间周期释放,预分配日志缓冲,测试窗口内避免同步磁盘写入。GPIO/总线回环作为独立端到端任务。LLM 负责命令解析时与周期控制解耦,推理超时走模拟默认动作,先在回环或仿真环境验证。 + +### 6.2 背景干扰与推理到达 + +| 场景 | 内容 | 目的 | +|---|---|---| +| L0 | 仅 RT | 实时性下界与测量开销 | +| L1 | 仅推理 | 最大可持续服务能力与独立能耗 | +| L2 | RT + LLM | 核心混合场景 | +| L3 | L2 + CPU 干扰 | 参考占用 25/50/75/100%,注明施加核心 | +| L4 | L2 + 内存流式读写 | 实测带宽压力与容量压力分别扫描 | +| L5 | L2 + 网络/存储 I/O | IRQ、DMA 与系统服务干扰 | +| L6 | RT + LLM + YOLO(可选) | 多模型竞争与优先级影响 | +| L7 | L2 + 突发/过载 | 队列、拒绝与恢复行为 | + +推理先以并发 1/2/4 做容量筛选,再以开放到达过程测试。每种硬件与模型固定一个参考基线的可持续请求率 λ_ref,所有 OS 使用同一绝对到达序列,测试 0.25/0.5/0.75/1.0/1.25×λ_ref。不得各组按自身吞吐重新归一化后声称承受相同负载。 + +突发模式使用相同种子:稳态运行后每 60 秒施加持续 10 秒的 2×基础到达率,记录队列峰值和恢复时间。负载发生器尽量位于独立机器;共机时记录其 CPU 开销。 + +## 7. 实验矩阵与具体步骤 + +### 7.1 核心实验 + +| 实验 | 平台 / 变量 | 操作与输出 | 关联问题 | +|---|---|---|---| +| E0 准入与空载 | A、B16、B8;G0~G4 | 固定版本、拓扑和功耗边界;输出准入表 | 全部 | +| E1 微基准 | O0~O4;L0、CPU/内存/I/O 干扰 | 测周期任务、IPC、物理环回;输出 CDF 与最大值 | RQ1 | +| E2 推理基线 | A 单卡 7B;B 从 0.5B 起;L1 | 扫输入长度、并发,测正确性、容量、吞吐、能耗 | RQ2/3 | +| E3 混合负载 | 各平台准入模型;L2~L5、L7 | 固定到达流比较 OS;绘制违约率与有效吞吐曲线 | RQ1/2 | +| E4 内存限额 | B16 与 B8;固定模型和频率 | 分别增加上下文、并发和内存干扰,测失败点及 RT 影响 | RQ2 | +| E5 多卡竞争 | A 的 1/2/4 卡 | 同模型并行扩展和多实例分别测试;采通信时间与公平性 | RQ4 | +| E6 能耗与热 | A、B;已验证频率/空闲模式 | 固定服务负载与环境,测能效、降频和违约率 | RQ3 | +| E7 消融 | O3 完整方案及逐项去除 | 使用 E3 中固定中载与过载单元重复测试 | RQ2 | +| E8 长稳与恢复 | A、B 的最终候选配置 | 连续 24 小时混合负载,注入推理进程重启、队列过载 | RQ1/3 | + +E5 中,同一 7B 模型只有在所有 GPU 数配置均支持相同后端及并行机制时才计算强扩展;多实例吞吐增长单列,不冒充单请求加速。多租户公平性可使用各租户相对独占吞吐 x_i,计算 Jain 指数 (Σx_i)²/(kΣx_i²),同时报告每租户 TTFT 和服务等级。 + +E8 记录重启时间、请求丢失、RT 违约、内存增长及恢复到稳定吞吐的时间。驱动重置和热环境测试仅在存在可恢复测试路径和相应设备时增加;没有温箱数据不能宣称覆盖 −40~60℃ 全温域。 + +### 7.2 条件扩展 + +| 扩展 | 前提 | 实验内容 | 结论边界 | +|---|---|---|---| +| X1 T4-L/M | 板卡、BSP、模型准入 | 复用 E1~E4、E6,小模型与容量下限 | 不能用 RK3588 限额替代新 SoC 的功耗结果 | +| X2 T3-M/H | GPU/DLA 与 OS 路径明确 | 共享内存、多模型干扰、功率模式 | ARM 与 x86 路线分组,不只按容量归因 | +| X3 T2-M/H | 拓扑、供电和散热可用 | 4→8 卡、V100→H100 | 数量扩展与架构更换分开比较 | +| X4 T1-L | 至少 2 节点,网络和集合通信准入 | 1/2/4 节点,通信微基准与 RT + 分布式推理 | 单节点不可容纳模型时,以最小可运行节点数作参考 | +| X5 T1-H | 大模型分片、网络和测量资源齐备 | 固定 72B 对照后增加超大模型 | 云租环境若无物理功耗或 OS 控制,则相应指标不报告 | + +T1 强扩展固定总模型及工作量,速度提升以参考节点数 n0 的完成时间为基准,效率 = 加速比/(n/n0);弱扩展固定每节点请求负载,报告总有效吞吐和尾延迟。网络协议、交换机、MTU、拥塞配置和进程布局冻结。RDMA/NCCL 不可用时,TCP 回退单独成组。 + +跨节点单向延迟需记录时钟同步方法与误差;误差不能满足精度要求时改测往返时间,不将其一半无条件当作单向延迟。 + +### 7.3 控制实验数量 + +不一次展开全部档位、OS、模型、长度、干扰和功率的笛卡尔积。首轮使用 A 单卡 7B、B 的已准入小模型、512 输入/128 输出、并发 1 和固定频率,完成 E0~E3;随后围绕出现干扰或资源瓶颈的单元展开 E4~E7。最终确认实验使用提前冻结的配置与新运行批次,避免只报告探索阶段的最佳结果。 + +## 8. 运行流程与统计方法 + +1. 保存硬件清单和配置快照;核对时钟、仪器连接、数据目录及剩余空间。 +2. 重启进入指定配置,先测空载;模型预热至少 5 分钟,并记录温度是否稳定。冷启动时间单独测量。 +3. 按随机顺序执行对照;同一设备采用配对批次,保持相同输入、种子及环境条件。 +4. 普通性能单元至少独立运行 5 次、每次稳态窗口 10 分钟;RT 以 1 ms 周期可每次得到约 60 万次计划释放。长稳实验独立运行 24 小时。 +5. 尾延迟按指标各自样本量判断。请求级 P99.9 以每单元至少 10 万个有效请求为采样目标,数量不足时标为探索性估计,报告样本数并延长采集或改报 P99;不能用 RT 周期样本数充当请求数。 +6. 保存原始失败、超时和 OOM;测试程序、仪器或配置失效的批次标记无效并说明原因,保留原文件后重跑。 +7. 输出每次运行的分位数、最大值和违约率;跨运行报告中位数与区间,使用按运行/时间块重采样的 bootstrap,保留随机种子。不给时间相关的百万周期样本套用独立样本假设。 + +观测最大值是本次时长与负载下的最大值,不是理论最坏执行时间。零违约只表述为“在 N 次计划释放和指定工况下未观测到违约”,不能证明硬实时安全上界。能耗差异还需考虑仪器精度、采样频率与环境漂移。 + +## 9. 验收与结果判断 + +验收分为“数据可用”“系统约束满足”和“研究假设得到支持”,避免将目标写成已取得结果。 + +| 类型 | 判据 | 说明 | +|---|---|---| +| 数据可用 | G0~G4 通过,原始数据与配置完整,重复运行可复现 | 必须项 | +| 实时约束 | 核心 1 ms 任务在预定负载范围内,观测违约数为 0 | 同时报告样本量、最大响应时间和过载结果 | +| 推理服务 | 达到预先冻结的 TTFT、质量、吞吐和完成率要求 | 按模型与输入长度分别制定 | +| 调度收益 | 对 O1/O4 的配对比较改善尾延迟或扩大无违约负载范围 | 同时报有效吞吐代价和置信区间 | +| 能耗收益 | 满足相同实时和推理约束时降低 J/token | 不以降低完成率换取能效结论 | +| 长稳 | 完成 24 小时,无不可恢复故障、日志失效或持续内存增长 | 任何故障均保留并分析 | + +原稿的“0.5B ≥25 token/s、1.5B ≥12 token/s、7B ≥20 token/s、TTFT P99.9 ≤500 ms、吞吐偏差 ≤15%”仅保留为历史候选目标。E2 试运行后依据指定模型、长度、并发及任务需求决定采用与否,正式实验前冻结,不能看完正式结果再下调阈值。原有 8/15/21 W 数值同样不直接作为跨配置统一验收值。 + +## 10. 数据产物与论文图表 + +建议按 `results//////` 保存数据,每次运行至少包含: + +| 文件 | 内容 | +|---|---| +| manifest.json | 档位、实物编号、容量口径、OS/BSP/驱动、模型校验值、核心/IRQ/频率配置、输入与种子、测试程序版本 | +| rt.csv | 计划释放、就绪(如可用)、开始、完成、CPU ID、违约与丢样状态 | +| requests.csv | 请求 ID、计划到达、发送、首/末 token、输出数、质量/成功状态、超时和拒绝原因 | +| power.csv / thermal.csv | 时间戳、功率、电压电流(如可用)、温度、实际频率、传感器来源 | +| events.log | OOM、驱动错误、降频、重启、网络异常和测量故障 | +| summary.json | 样本量、分位数、最大值、吞吐、能耗、配置有效性及异常说明 | + +不同机器的时钟域及对齐方式写入 manifest;保留原始时间戳,汇总脚本不得静默删除异常值。 + +最终图表包括:①平台与准入状态表;②各负载下 RT 延迟 CDF/尾部放大图;③到达率—违约率—有效吞吐曲线;④B8/B16 内存占用与失败边界;⑤多卡/多节点扩展效率;⑥实时约束内的能耗—吞吐散点图;⑦消融效应及区间;⑧24 小时温度、频率、内存和违约时间序列。未执行的扩展档明确标为计划,不混入实测图。 + +## 11. 实施顺序与停止条件 + +| 阶段 | 工作 | 完成标志 | +|---|---|---| +| P0-1 | 清点 A/B,仪器校准,OS 与加速器准入 | 准入表明确通过项与阻塞项 | +| P0-2 | 完成 E1/E2,冻结正式配置和阈值 | 微基准、模型容量、基线数据齐全 | +| P0-3 | 完成 E3~E7 核心对照 | 能回答 RQ1~RQ3 及单机 RQ4 | +| P0-4 | E8 长稳、复核与图表 | 可复现数据包与结论边界完整 | +| P1/P2 | 小内存板卡、边级扩展与必要仪器 | 在准入后复用核心实验流程 | +| P3/P4 | 多卡升级与集群扩展 | 硬件、通信、OS 和功耗采集均满足对应实验条件 | + +设备文档的采购优先级用于安排依赖,本实验设计不要求先采购全谱系设备。扩展驱动无可用实现时停止该路线的原生性能测试,输出适配缺口;内存不足时记录最大可运行配置;仪器缺失时保留性能实验并将能耗记为未测。最终报告分别陈述已实测结论、适配结果和后续计划。 diff --git a/最终稿文章结构总览.png b/最终稿文章结构总览.png new file mode 100644 index 0000000000000000000000000000000000000000..a667c99b45d8d402a39ad568978a7aeb233e4363 GIT binary patch literal 331566 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%0Aet~d_PYD))xD=T9QR3F-bDCi-xkN>&xTJ4d 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 D#Y^a?R;EgU0?h7 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 literal 0 HcmV?d00001 diff --git a/最终稿文章规划.md b/最终稿文章规划.md new file mode 100644 index 0000000..16f0a51 --- /dev/null +++ b/最终稿文章规划.md @@ -0,0 +1,421 @@ +# 最终稿文章规划 — SylixOS 大模型推理调度框架研究 + +> **版本**: v1.0 (最终稿规划) +> **日期**: 2026-09-20 +> **整合来源**: 基础设备.md + 方案1.md v1.0 (大模型负载实验设计) + 方案2.md v2.0 (第三方基准复现方法学) + +> **目标产物**: 一篇面向 RTSS/RTAS 级别的系统化研究文章 (含完整实验数据与基准对比) + +--- + +## 0. 文章定位与核心贡献 + +### 0.1 一句话定位 + +> **用业界公认方法学,在四层连续算力硬件谱系 (1 GB → 2 TB / 3 W → 25 kW) 上,首次系统化评测国产 RTOS (SylixOS) 在大模型推理负载下的低延迟、低功耗与实时保号能力,填补 RTOS 在边缘~集群算力评测领域的数据空白。** + +### 0.2 三大核心贡献 + +| 编号 | 贡献 | 来源整合 | 对标空白 | +|------|------|----------|----------| +| C1 | **四层连续算力谱系上的 RTOS 调度评测** — 从端级 RK3568 (1 GB/3 W) 到集群级 4×H100 (1.28 TB/25 kW),11 个档位覆盖被动散热→机房液冷全散热形态,首次在连续硬件梯度上刻画 RTOS 调度性能曲线 | 基础设备.md §0~§5 | 公开研究仅覆盖单一平台或两档对比,无连续谱系 | +| C2 | **大模型混合负载下 RTOS 实时保号量化** — LLM 推理 + 1 ms 周期控制并发场景下,SylixOS 的 T_rt_max_under_llm 与 J_rt_under_llm 相对 Linux RT 的尾延迟优势量化 (≤30% = 显著优势) | 方案1.md §3, §6, §9 | 公开基准仅测吞吐 FPS,未测混合负载下的实时任务保号 | +| C3 | **RTOS 数据与业界公开基准首次横向对齐** — 引入第三方文章 (萤火虫数智笔记) 的 CPU/内存/NPU/功耗实测方法学与数据,在 SylixOS 上复现并对比,使 RTOS 数据首次可对外校验 | 方案2.md §2, §5, §7 | 国产 RTOS 在边缘算力 SoC 上的实测数据严重缺失 | + +### 0.3 目标读者与发表场景 + +| 维度 | 选择 | +|------|------| +| 目标会议 | RTSS / RTAS (实时系统 Top-Tier) 或 ISLPED (低功耗) | +| 备选 | EMSOFT / DAC / MLSys (系统方向) | +| 文章类型 | 系统评测 + 方法论论文 (非纯算法论文) | +| 核心读者 | RTOS 研究者、边缘 AI 系统工程师、国产化选型决策者 | + +--- + +## 1. 文章整体结构 (十章) + +``` +第1章 引言 — 问题、动机、贡献概述 +第2章 背景与相关工作 — LLM 推理特征 + RTOS 基础 + 差距分析 +第3章 四层连续算力硬件谱系 — 11 档位体系设计与现有设备锚点 +第4章 SylixOS 调度框架技术架构 — 五层技术栈与六大优化方向 +第5章 实验方法学 — 第三方基准复现 + 混合负载场景 + 避坑约束 +第6章 大模型负载选型与配置 — 跨档位模型矩阵 +第7章 实验结果 — 基准对齐 + 实时性 + 能效 + 温度耦合 +第8章 深入分析 — 档位间性能曲线 + RTOS vs Linux RT 差异化 +第9章 讨论与威胁有效性 — 适用场景边界 + 局限性 +第10章 结论与展望 +``` + +--- + +## 2. 逐章详细规划 + +### 第1章 引言 + +**目标**: 300~500 词,点明矛盾、贡献、文章路线图。 + +| 小节 | 内容要点 | 来源映射 | +|------|----------|----------| +| 1.1 问题矛盾 | RTOS 追求 µs~ms 级确定性 vs LLM 推理是 GB 级内存、s 级耗时的软实时负载;边缘~集群场景中二者必须共存 | | +| 1.2 研究空白 | 公开基准 (如萤火虫文章) 全部基于 Linux/Ubuntu,国产 RTOS 在边缘算力 SoC 上的实测数据严重缺失;现有研究无连续硬件谱系 | 方案2.md §1.1 | +| 1.3 本文贡献 | C1 (四层谱系评测)、C2 (混合负载保号量化)、C3 (业界基准对齐),一句话概述每个贡献 | | +| 1.4 文章组织 | 十章路线图 | 本规划 §1 | + +**关键图表**: 无 (引言章通常无图表或仅一张概念图)。 + +--- + +### 第2章 背景与相关工作 + +**目标**: 600~800 词,建立读者所需的 LLM 推理 + RTOS 双重背景。 + +| 小节 | 内容要点 | 来源映射 | +|------|----------|----------| +| 2.1 LLM 推理特征 | prefill/decode 两阶段;CPU/内存密集;长尾分布;并发争抢;模型加载 IO 抖动 | 方案1.md §1.1 | +| 2.2 RTOS 调度基础 | 硬优先级 + 优先级继承;内存锁定;tickless;中断线程化;SMP 可预测调度;精简内核路径 | 方案1.md §1.1 表 | +| 2.3 Linux RT 相对短板 | cgroup/kswapd 大模型加载停顿;PREEMPT_RT P99.9 仍受内核态长路径限制;tickless 仅 idle 启用 | 方案1.md §1.1 | +| 2.4 相关工作对比 | vLLM/TGI (服务器级无实时保证)、Micro-LLM (模型压缩不关注 OS 调度)、NPU SDK (封闭黑箱)、CUDA Stream (无实时分析) | FRAMEWORK.md §6, 方案2.md §2.4 | +| 2.5 第三方基准方法学 | 萤火虫文章的 5 维度方法学 (CPU/内存/NPU/功耗/温度) + 5 条避坑清单 | 方案2.md §2 | + +**关键图表**: + +| 编号 | 图表 | 描述 | +|------|------|------| +| Fig.1 | LLM 推理两阶段时序图 | prefill (计算密集, 串行) vs decode (逐 token, KV Cache IO 密集) 的 RTOS 任务映射 | +| Tab.1 | SylixOS vs Linux RT 特性对比 | 6 项 RTOS 特性对应的大模型负载优势 + Linux RT 短板 | + +--- + +### 第3章 四层连续算力硬件谱系 + +**目标**: 800~1000 词,这是 C1 的核心展示章,也是本文区别于其他单平台研究的最大差异化。 + +| 小节 | 内容要点 | 来源映射 | +|------|----------|----------| +| 3.1 分级维度与分档规则 | 以「统一内存/显存容量」为第一分类维度;边界值归上界;四层连续无断层 | 基础设备.md §0.1 | +| 3.2 全谱系总表 (11 档位) | T4-L→T4-M→T4-H→T3-L→T3-M→T3-H→T2-L→T2-M→T2-H→T1-L→T1-H 的容量/算力/功耗/散热/代表设备/状态 | 基础设备.md §0.2 | +| 3.3 设计原则 | 容量连续功耗阶跃;CUDA 栈贯通 T1/T2/T3;非 CUDA 端路线 (T4 全档 + T3-L);现有硬件复用 (V100+RK3588 锚点);BSP 最小化 (x86+ARM64 两类) | 基础设备.md §0.3 | +| 3.4 现有设备与采购计划 | P0 零成本起步 (T2-L+T3-L+T4-H);一机两档 (RK3588 16 GB 同时充当 T3-L 与 T4-H);T1/T2-H 云替代 | 基础设备.md §6 | +| 3.5 各层级定位与验证重点 | T1 跨节点分布式调度;T2 单机多卡 NVLink;T3 统一内存带宽隔离;T4 极致资源约束保号 | 基础设备.md T1~T4 各 §.1 | + +**关键图表**: + +| 编号 | 图表 | 描述 | +|------|------|------| +| Fig.2 | 四层硬件谱系全景图 | 横轴=容量 (1 GB→2 TB, log 刻度), 纵轴=功耗 (3 W→25 kW, log 刻度), 11 个档位点标注, 散热形态用颜色分区 (被动/风冷/液冷/机房液冷) | +| Tab.2 | 11 档位全规格对比表 | 容量、算力、功耗、加速器架构、散热、互联、SylixOS BSP 风险、状态 (现有/需扩展) | +| Tab.3 | 模型规模梯度表 | 11 档位 × 代表模型 × 量化 × 显存占用 × 角色 (谱系下界→超大模型分布式) | +| Tab.4 | 采购计划表 | P0~P4 优先级 + 估算费用 + 降本策略 | + +--- + +### 第4章 SylixOS 调度框架技术架构 + +**目标**: 600~800 词,将 FRAMEWORK.md 的五层技术栈和六大优化方向浓缩为文章的技术背景章。 + +| 小节 | 内容要点 | 来源映射 | +|------|----------|----------| +| 4.1 核心问题定义 | 不是让 RTOS "跑大模型",而是用 RTOS 做 "LLM 推理资源的调度与协调" | FRAMEWORK.md §0 | +| 4.2 五层技术栈 | L1 硬件层 → L2 RTOS 调度核 → L3 资源抽象 (加速器驱动/DMA/内存控制器) → L4 运行时 (任务图/流水线/内存池) → L5 模型层 (量化/KV Cache/投机解码) | FRAMEWORK.md §2 | +| 4.3 LLM 推理阶段 → RTOS 任务映射 | Tokenizer→LOW, Embedding→HIGH, Attention→MAX, FFN→HIGH, KV Cache Write→MEDIUM, Sample→LOW;阶段特征矩阵 (计算/IO/延迟敏感/确定性/优先级) | 01-inference-scheduling.md §2 | +| 4.4 六大优化方向概览 | 方向1 推理图任务调度 (Hybrid FP+EDF) → 方向2 KV Cache 内存池 → 方向3 加速器协同 → 方向4 量化感知调度 → 方向5 中断与实时 → 方向6 能耗热管理 | FRAMEWORK.md §3, 01~06 子文档 | +| 4.5 SylixOS BSP 适配要点 | x86 BSP (V100/H100 CUDA 驱动, NVLink, RDMA)、ARM64 BSP (RK3588/RK3576/RK3568 NPU 驱动, T234 Jetson BSP)、内存分区限额 (一机两档)、跨核通信 (M0+RPMsg) | 基础设备.md §7 (BSP Checklist) | + +**关键图表**: + +| 编号 | 图表 | 描述 | +|------|------|------| +| Fig.3 | 五层技术栈架构图 | L1~L5 层叠 + 每层关键组件 + 层间接口 | +| Fig.4 | LLM 推理 DAG → RTOS 任务图 | 推理阶段的有向无环图, 标注每阶段优先级 (MAX/HIGH/MEDIUM/LOW) 和可抢占性 | +| Tab.5 | 推理阶段特征矩阵 | 阶段 × (计算密集度/IO 密集度/延迟敏感度/确定性要求/RTOS 优先级) | +| Tab.6 | 六大优化方向概览 | 方向 × (核心问题/关键手段/目标指标/对应章节) | + +--- + +### 第5章 实验方法学 + +**目标**: 800~1000 词,这是 C2 和 C3 的方法论基础,也是本文"可复现"承诺的核心。 + +| 小节 | 内容要点 | 来源映射 | +|------|----------|----------| +| 5.1 方法论框架 | "基准测量 → 建模 → 算法设计 → 仿真验证 → 原型实现 → 实测对比" 六步循环 | 07-analysis-methods.md §1 | +| 5.2 第三方基准复现方法学 | 引入萤火虫文章的 5 维度方法 (CPU/内存/NPU/功耗/温度);在 SylixOS 上重跑 sysbench/stress-ng/RKNN,与文章数据对比 | 方案2.md §5.1~§5.3 | +| 5.3 混合负载实验设计四原则 | 原则1: 混合负载而非孤立;原则2: 看尾延迟不看均值;原则3: 突发场景而非稳态;原则4: 调度精细度而非裸吞吐 | 方案1.md §3 | +| 5.4 功耗真测强制约束 | 禁止仅靠软件读数;DC 功率计 (Yokogawa WT310) + INA226 采集板强制;采样 ≥1 Hz | 方案2.md §5.4 | +| 5.5 温度监控强制约束 | 烤机 1 h 稳态 <75 ℃ 才采样;≥85 ℃ 数据作废;全程温度日志 | 方案2.md §5.5 | +| 5.6 环境元数据强制清单 | OS/内核/BSP/固件/驱动/室温/散热/工具/量化/时间戳 10 项强制 | 方案2.md §5.6 | +| 5.7 对照组设计 | OS 层: SylixOS vs Ubuntu+PREEMPT_RT vs (KVM/Docker);配置层: C0 默认 → C1 tuned → C2 extreme | 方案1.md §7, 方案2.md §7.1 | + +**关键图表**: + +| 编号 | 图表 | 描述 | +|------|------|------| +| Fig.5 | 实验方法论流程图 | 六步循环 + 第三方基准对齐校验门 (±15% 才准入主场景) | +| Tab.7 | 业界基准对照表 | 指标 × (文章基线 / SylixOS 实测 / 偏差 / 评判) — CPU 单核~1280、多核~7120、YOLOv5s 32 FPS、3B LLM ~90 tok/s | +| Tab.8 | 避坑清单映射 | 5 条避坑点 × (强制约束/验证方式/落实位置) | +| Tab.9 | 环境元数据清单模板 | 10 项元数据 × 示例值 | + +--- + +### 第6章 大模型负载选型与配置 + +**目标**: 500~700 词,定义跨 11 档位的模型矩阵。 + +| 小节 | 内容要点 | 来源映射 | +|------|----------|----------| +| 6.1 选型原则 | 国产化优先 (Qwen/MiniCPM);跨架构可比 (x86+CUDA 与 ARM+NPU);量化版本完整 (FP16/INT8/INT4);社区生态成熟 (vLLM/llama.cpp/TensorRT-LLM/RKLLM) | 方案1.md §2.1 | +| 6.2 跨档位模型矩阵 | T4-L: Qwen2.5-0.5B INT4;T4-M: 1.5B INT4;T4-H: 3B/7B INT4;T3-L: 3B/7B INT4 (RKLLM);T3-M: 14B/32B INT4 (TensorRT-LLM);T3-H: 72B INT4;T2-L: 72B INT4/14B FP16;T2-M: 72B FP16;T2-H: DeepSeek-V2 FP16;T1-L: 72B FP16 分布式;T1-H: 671B INT4 | 基础设备.md §5.2 + 方案1.md §2.2~§2.3 | +| 6.3 推理框架与配置 | vLLM (T2/T1)、TensorRT-LLM (T2/T3-M/H)、llama.cpp (T2-L/T3-L 退路)、RKLLM (T4/T3-L);batch 1/8/32;上下文 512/2048/8192;并发 1/8/32 | 方案1.md §2.2~§2.4 | +| 6.4 负载生成器 | vLLM benchmark / llama-bench / 自研并发客户端 / RKLLM demo / 自研 LLM+RT 混合负载驱动脚本 | 方案1.md §2.4 | + +**关键图表**: + +| 编号 | 图表 | 描述 | +|------|------|------| +| Tab.10 | 跨档位模型矩阵 | 11 档位 × (代表模型/参数/量化/显存占用/并发实例/推理框架/预期 tok/s) | +| Tab.11 | 负载生成器清单 | 工具 × 平台 × 角色 × SylixOS 可用性 | + +--- + +### 第7章 实验结果 + +**目标**: 1500~2000 词,本文篇幅最大的章节,展示全部实验数据。 + +| 小节 | 内容要点 | 来源映射 | +|------|----------|----------| +| 7.1 基准对齐结果 (第一层判据) | SylixOS 在 RK3588 上的 CPU 单核/多核 (sysbench)、内存带宽、NPU FPS (YOLOv5s/ResNet18/MobileNetV2)、3B LLM tok/s 与文章基线的偏差 (目标 ±10%~±20%) | 方案2.md §7.2, §9.3 第一层 | +| 7.2 低功耗结果 | P_idle / P_prefill / P_decode / E_per_token 分阶段功耗曲线;T2-L (V100) 与 T3-L/T4-H (RK3588) 两平台对照;SylixOS vs Linux RT 能效比 | 方案1.md §5.1, §6.7, 方案2.md §4.1 | +| 7.3 低延迟结果 | T_irq / T_sched / T_ctx P50~Max;T_ttft / T_tok 尾延迟分布直方图;SylixOS vs Linux RT P99.9/Max/σ 对比 | 方案1.md §5.2, §6.5 | +| 7.4 混合负载保号结果 (★ 核心) | 场景1: LLM 推理 + 1 ms 周期控制并发;T_rt_max_under_llm / J_rt_under_llm;4 变体 (A1 Linux RT 默认 / A2 Linux RT tuned / A3 SylixOS 默认 / A4 SylixOS 极限);30 min 全周期延迟时间序列图 | 方案1.md §6.1, §5.3, §9.3 | +| 7.5 多模型并发与突发场景 | 场景2: 多模型流水线 P0/P1/P2 优先级公平性;场景3: 突发加载/切换瞬间实时性保持;场景4: GPU/NPU 多请求调度公平性 | 方案1.md §6.2~§6.4 | +| 7.6 温度-功耗-性能耦合 | 场景8: 25%→100% CPU 逐步加压的三维耦合曲线;SylixOS vs Linux RT 降频触发温度与性能下降斜率 | 方案2.md §4.4, §6.8 | +| 7.7 异构核分配 | 场景6: RK3588 大核 A76 (LLM) + 小核 A55 (1 ms RT) + M0 (100 µs 控制) 的 SylixOS 异构调度优势 | 方案1.md §6.6 | +| 7.8 跨档位性能曲线 | 11 档位上 T_sched P99.9 / E_per_token / T_rt_max_under_llm 的连续曲线 (现有 P0 档位实测 + 扩展档位预估) | 基础设备.md §5.3, 基础设备.md §5.1~§5.2 | + +**关键图表**: + +| 编号 | 图表 | 描述 | +|------|------|------| +| Tab.12 | 业界基准复现对比表 (最终版) | 填入 SylixOS 实测值与偏差列 | +| Fig.6 | 功耗分阶段曲线 | prefill 峰值 → decode 稳态 → idle 的 W(t) 曲线, SylixOS vs Linux RT 叠加 | +| Fig.7 | 混合负载实时任务延迟分布 (★ 核心证据) | P50~Max 直方图 + 时间序列, 4 变体叠加, 突出 A4 的"细长尾部"优势 | +| Fig.8 | LLM token 延迟直方图 | Qwen2.5-7B 1 流 1 h 采集, SylixOS vs Linux RT | +| Fig.9 | 突发加载瞬间时间序列 | 模型加载瞬间实时任务延迟 spike, SylixOS ≤50 µs vs Linux RT 100 µs~1 ms | +| Fig.10 | 温度-功耗-性能三维耦合曲线 | T_core / P / perf 三轴, 不同 CPU 负载档位 | +| Fig.11 | 跨档位性能连续曲线 | 横轴=11 档位 (T4-L→T1-H), 纵轴=P99.9 调度延迟 / E_per_token / T_rt_max, 三条曲线 | +| Tab.13 | 通过判据三层汇总 | 第一层基准对齐 + 第二层实时性 + 第三层优越性量化 | + +--- + +### 第8章 深入分析 + +**目标**: 800~1000 词,从数据中提炼规律性结论。 + +| 小节 | 内容要点 | 来源映射 | +|------|----------|----------| +| 8.1 档位间性能曲线规律 | 容量每 ×2 时 RTOS 优势的变化趋势;端级 (资源越紧→RTOS 价值越大) vs 集群级 (资源充裕→RTOS 优势收窄) 的拐点分析 | 基础设备.md §5.3 | +| 8.2 SylixOS vs Linux RT 差异化量化 | 按 §9.4 优越性判据:T_rt_max_under_llm ≤30% = 显著优势 / ≤60% = 可比偏优 / >60% = 未体现;按档位和场景分别判定 | 方案1.md §9.4 | +| 8.3 混合负载下 RTOS 优势的根因 | 硬优先级 + 优先级继承 → 不被 decode 抢占;内存锁定 → KV Cache 抖动不驱逐关键页;精简内核路径 → 加载大模型不引入额外抖动;中断线程化 + 亲和性 → NPU 中断不污染实时核 | 方案1.md §1.1 表, 05-irq-realtime.md | +| 8.4 能效分析 | 每 token 能耗 vs 档位 (V100 集群能效基线 vs H100 能效上限);INT4 vs FP16 的能效拐点;RKLLM NPU vs CUDA GPU 的 J/token 对比 | 基础设备.md §0.3, 06-power-thermal.md | +| 8.5 BSP 风险与可行性 | x86 BSP (低风险, V100 已验证) vs ARM64 RK3588 BSP (极低, 现有) vs T234 Jetson BSP (高, 需翼辉确认) vs RKLLM 移植 (高, 核心风险);档位跳跃验证降本策略 | 基础设备.md §7, 方案1.md §10 | + +**关键图表**: + +| 编号 | 图表 | 描述 | +|------|------|------| +| Fig.12 | RTOS 优势 vs 硬件档位趋势图 | 横轴=11 档位, 纵轴=SylixOS 相对 Linux RT 的 P99.9 改善百分比, 标注"显著优势/可比偏优/未体现"区间 | +| Tab.14 | 优越性量化结论矩阵 | 场景 × 档位 × (T_rt_max 比值 / 判定结论) | +| Tab.15 | BSP 风险与可行性矩阵 | 档位 × (BSP 类型/风险等级/状态/降本策略) | + +--- + +### 第9章 讨论与威胁有效性 + +**目标**: 400~600 词,诚实地界定适用边界和局限性。 + +| 小节 | 内容要点 | 来源映射 | +|------|----------|----------| +| 9.1 适用场景边界 | 资源越紧张 (T4) → RTOS 价值越大;资源充裕 (T1-H) → RTOS 优势收窄, 可能"可比偏优";混合负载 (LLM+RT 并发) → RTOS 杀手锏;纯吞吐场景 → 通用 OS 可能更高 | 方案1.md §3, §9.4 | +| 9.2 威胁有效性 | (1) RKLLM 移植风险: 若未完成, 退路 llama.cpp CPU 推理但失去 NPU 优势, 需标注; (2) V100 驱动成熟度: 4 卡 NVLink 联用可能受限, 单卡先行; (3) sysbench/stress-ng 移植: POSIX 兼容可行性高但需验证; (4) 量化精度差异: 同模型同量化跨 OS 不变, 已控制; (5) 室温/散热波动: 25±2 ℃ + 液冷恒定 | 方案1.md §10, 方案2.md §11 | +| 9.3 与已有工作的关系 | vs vLLM/TGI (服务器级, 无实时保证)、vs NPU SDK (封闭黑箱)、vs CUDA Stream (无实时分析)、vs 第三方文章 (仅 Linux, 仅 RK3588, 未测实时性) | FRAMEWORK.md §6, 方案2.md §2.4 | +| 9.4 方法论局限 | 文章仅引用单一第三方来源 (萤火虫文章), 跨平台参照 (昇腾 Qwen-7B) 为非本方案硬件; 消融实验仅在现有 P0 档位可完整执行; 扩展档位 (T1-H/T2-H) 依赖云租替代, 数据可比性需说明 | 方案2.md §13 后续建议 | + +--- + +### 第10章 结论与展望 + +**目标**: 300~400 词,总结贡献并指出未来方向。 + +| 小节 | 内容要点 | +|------|----------| +| 10.1 结论 | 重申 C1/C2/C3 三大贡献的量化结果 (基准对齐 ±X%、混合负载 ≤Linux RT X%、能效 ≤Linux RT X%) | +| 10.2 展望 | 跨平台横向对比 (RK3588 vs Jetson vs 昇腾); 功能安全 SIL2/IEC 61508 关联; 多机分布式推理; 昇腾 Qwen-7B 作为第二业界参照点; 自适应优先级与动态 WCET 估计 | +| 10.3 开放研究问题 | 动态 WCET 在线估计; 运行时自适应优先级; 跨层优化 (调度+量化联合); 预测式调度; 容错恢复调度 | 01-inference-scheduling.md §8 | + +--- + +## 3. 来源文档到章节的映射矩阵 + +| 来源文档 | 主要贡献章节 | 次要贡献章节 | +|----------|------------|------------| +| **基础设备.md** | §3 (硬件谱系) | §4.5 (BSP 适配), §6.2 (模型矩阵), §7.8 (跨档位曲线), §8.1 (档位趋势), §8.5 (BSP 风险) | +| **方案1.md v1.0** | §5.3 (四原则), §7.4 (混合负载) | §2.1~§2.3 (LLM 推理特征/RTOS 优势/Linux 短板), §5.7 (对照组), §6 (模型选型), §7.2~§7.5 (功耗/延迟/并发/突发), §7.7 (异构), §8.2 (优越性量化), §9.2 (威胁有效性) | +| **方案2.md v2.0** | §5.2 (基准复现), §5.4~§5.6 (强制约束) | §2.5 (第三方方法学), §7.1 (基准对齐结果), §7.6 (温度耦合), §9.3 (与已有工作关系), §9.4 (方法论局限) | +| **FRAMEWORK.md** | §4 (技术架构) | §1 (核心问题), §2.4 (相关工作), §8.3 (根因分析), §10.3 (开放问题) | +| **01-inference-scheduling.md** | §4.3 (任务映射) | §7.4 (混合负载调度模型), §8.3 (根因) | +| **02-kv-cache-memory.md** | §4.4 (方向2 概览) | §7.4 (KV Cache 对实时任务的影响), §8.4 (能效) | +| **03-accelerator-collab.md** | §4.4 (方向3 概览) | §7.7 (异构核分配), §8.3 (根因) | +| **04-quantization-scheduling.md** | §4.4 (方向4 概览) | §6.2 (量化选型), §8.4 (能效拐点) | +| **05-irq-realtime.md** | §4.4 (方向5 概览) | §7.3 (中断延迟), §8.3 (根因) | +| **06-power-thermal.md** | §4.4 (方向6 概览) | §7.2 (功耗), §7.6 (温度耦合), §8.4 (能效) | +| **07-analysis-methods.md** | §5.1 (方法论框架) | §7 (评估指标体系), §8 (分析方法), §9 (消融实验设计) | + +--- + +## 4. 关键数据产物清单 + +| 编号 | 产物 | 类型 | 优先级 | 依赖 | +|------|------|------|--------|------| +| D1 | 11 档位硬件规格总表 | 数据表 | P0 | 基础设备.md 已就绪 | +| D2 | 跨档位模型矩阵 | 数据表 | P0 | 基础设备.md + 方案1.md 已就绪 | +| D3 | RK3588 上 sysbench/stress-ng 基准复现数据 | 实测数据 | P0 | 需 SylixOS BSP + sysbench 移植 | +| D4 | 业界基准对比表 (SylixOS vs 文章基线) | 对比表 | P0 | D3 | +| D5 | 混合负载 30 min 全周期延迟时间序列 | 实测数据 | P0 | 需混合负载驱动脚本 + 4 变体 | +| D6 | 混合负载延迟分布直方图 (4 变体叠加) | 图表 | P0 | D5 | +| D7 | 功耗分阶段曲线 (prefill/decode/idle) | 图表 | P0 | 功率计采集 + LLM 推理 | +| D8 | LLM token 延迟直方图 (1 h 采集) | 图表 | P1 | vLLM/RKLLM benchmark | +| D9 | 突发加载瞬间实时任务时间序列 | 图表 | P1 | 混合负载脚本 + 模型切换 | +| D10 | 温度-功耗-性能三维耦合曲线 | 图表 | P1 | stress-ng 逐步加压 + 温度日志 | +| D11 | 跨档位性能连续曲线 | 图表 | P1 | P0 档位实测 + P1~P4 档位预估 | +| D12 | 优越性量化结论矩阵 | 分析表 | P1 | D4+D6+D7 | +| D13 | 环境元数据清单 (每份数据附) | 元数据 | P0 | 方案2.md §5.6 模板 | + +--- + +## 5. 写作优先级与依赖关系 + +``` +Phase 0: BSP 适配 + 工具移植 (3 周) + ├─ SylixOS RK3588 BSP 部署 + ├─ sysbench / stress-ng / RKLLM 移植验证 + └─ vLLM / llama.cpp 在 SylixOS 编译运行 + +Phase 1: 基准复现 + 文章骨架 (1.5 周) + ├─ D3: RK3588 基准复现 → D4: 业界对比表 + ├─ 撰写: §1 引言 + §2 背景 + §3 硬件谱系 + §4 技术架构 + §5 方法学 + §6 模型选型 + └─ 依赖: D3 通过 ±15% 对齐门 → 准入 Phase 2 + +Phase 2: 低功耗测试 + 温度耦合 (2 周) + ├─ D7: 功耗曲线 + D10: 温度耦合曲线 + └─ 撰写: §7.2 + §7.6 + +Phase 3: 低延迟 + 混合负载测试 (3 周) + ├─ D5+D6: 混合负载核心证据 + D8: token 延迟直方图 + D9: 突发场景 + └─ 撰写: §7.3 + §7.4 + §7.5 + +Phase 4: 异构调度测试 (1 周) + ├─ 场景6: A76+A55+M0 异构分配 + └─ 撰写: §7.7 + +Phase 5: 数据汇总 + 深入分析 + 全文定稿 (2.5 周) + ├─ D11: 跨档位曲线 + D12: 优越性矩阵 + ├─ 撰写: §7.8 + §8 深入分析 + §9 讨论 + §10 结论 + └─ 全文校对 + 图表终版 +``` + +**总周期: ~13 周** (Phase 0~5 累计) + +--- + +## 6. 章节字数预算 + +| 章节 | 预算字数 | 占比 | +|------|---------|------| +| §1 引言 | 400 | 4% | +| §2 背景与相关工作 | 700 | 7% | +| §3 四层硬件谱系 | 900 | 9% | +| §4 技术架构 | 700 | 7% | +| §5 实验方法学 | 900 | 9% | +| §6 模型选型 | 600 | 6% | +| §7 实验结果 | 1800 | 18% | +| §8 深入分析 | 900 | 9% | +| §9 讨论 | 500 | 5% | +| §10 结论 | 350 | 3% | +| 参考文献 + 附录 | ~2000 | 23% | +| **总计** | **~9750** | 100% | + +> 注: 按 RTSS/RTAS 会议论文 10~12 页双栏计算, 正文约 8000~10000 词, 参考文献+附录另计。 + +--- + +## 7. 核心叙事线 (Storyline) + +``` +问题矛盾 (§1) + → RTOS 确定性 vs LLM 计算密集, 边缘~集群必须共存 + → 空白: 国产 RTOS 在边缘算力上零实测数据 + +背景铺垫 (§2) + → LLM 推理的 CPU/内存/长尾特征 + → RTOS 的 6 项调度优势 + Linux RT 的 3 项短板 + → 第三方方法学引入 (5 维度 + 5 避坑) + +硬件谱系 (§3) ← C1 差异化 + → 11 档位连续梯度: 1 GB/3 W → 2 TB/25 kW + → 现有 P0 零成本起步 (V100 + RK3588) + → 一机两档降本 + +技术架构 (§4) + → 五层技术栈 + 六大优化方向 + → LLM 推理 DAG → RTOS 任务映射 + → BSP 适配要点与风险 + +方法学 (§5) ← C2/C3 基础 + → 第三方基准复现 (先对齐 ±15% 才准入) + → 混合负载四原则 (杀手锏设计) + → 功耗真测 + 温度监控 + 元数据强制 + +模型选型 (§6) + → 跨 11 档位的 Qwen/LLaMA/MiniCPM/Whisper 矩阵 + → INT4/INT8/FP16 量化梯度 + +实验结果 (§7) ← 本文核心 + → 7.1 基准对齐 (第一层门) + → 7.2~7.3 功耗/延迟 (基础指标) + → 7.4 混合负载保号 (★ 杀手锏证据) + → 7.5~7.7 并发/突发/异构 + → 7.8 跨档位连续曲线 + +深入分析 (§8) + → 档位间趋势: 资源越紧 → RTOS 价值越大 + → 优越性量化: ≤30% 显著优势 / ≤60% 可比偏优 + → 根因: 硬优先级 + 内存锁定 + 精简内核 + 中断亲和 + → 能效: V100 基线 vs H100 上限, INT4 拐点 + +讨论 (§9) + → 适用边界: T4 杀手锏, T1-H 可能收窄 + → 威胁有效性: RKLLM 移植/V100 驱动/sysbench 移植 + → 与已有工作: vs vLLM/NPU SDK/CUDA Stream/第三方文章 + +结论 (§10) + → 三大贡献量化回顾 + → 跨平台/功能安全/分布式/自适应展望 +``` + +--- + +## 8. 待确认事项 + +| 编号 | 待确认项 | 影响章节 | 当前假设 | +|------|---------|---------|---------| +| Q1 | SylixOS 在 x86+4×V100 NVLink 的 CUDA 驱动支持度 | §4.5, §7.3, §8.5 | 需翼辉确认; 单卡先行, 4 卡作 stretch | +| Q2 | RK3588 BSP 是否集成 rknn/RKLLM | §5.2, §7.1, §9.2 | 需翼辉确认; 退路 llama.cpp CPU | +| Q3 | sysbench/stress-ng 在 SylixOS 可移植性 | §5.2, §7.1 | POSIX 兼容, 假设可行 | +| Q4 | T234 (Jetson Orin) BSP 是否支持 | §3.2 (T3-M/H) | 风险高; T3-L 用 RK3588 起步 | +| Q5 | RK3588 板卡是否引出 M0 调试接口 | §7.7 (场景6) | 若未引出, 场景6 需调整 | +| Q6 | 是否纳入功能安全 SIL2/IEC 61508 章节 | §10.2 展望 | 暂列为展望, 不入正文 | +| Q7 | 是否纳入昇腾 Qwen-7B 作为第二业界参照 | §7.1, §9.4 | 暂列为后续, 非本方案硬件 | +| Q8 | 主对照组确认: Ubuntu 22.04+PREEMPT_RT | §5.7 | 与第三方文章配置一致, 可比性最高 | + +--- diff --git a/说明文档.md b/说明文档.md new file mode 100644 index 0000000..25e424b --- /dev/null +++ b/说明文档.md @@ -0,0 +1,132 @@ +# SylixOS 大模型推理调度研究逻辑说明 + +## 1. 文档目的 + +本文用于解释[整体逻辑流程图](./整体逻辑流程图.md),说明《基础设备.md》《实验设计.md》和《最终稿文章规划.md》如何共同组成一套完整的研究方案。 + +三份文档承担不同职责: + +| 文档 | 回答的问题 | 在研究中的作用 | +|---|---|---| +| [基础设备.md](./基础设备.md) | 在哪些硬件条件下研究? | 定义四层、十一档硬件谱系及现有设备锚点 | +| [实验设计.md](./实验设计.md) | 如何产生可信且可复现的证据? | 定义准入、对照、负载、指标、统计与验收方法 | +| [最终稿文章规划.md](./最终稿文章规划.md) | 如何把证据组织成论文贡献? | 把硬件、方法、结果和分析映射到论文十章结构 | + +整个研究的主线是: + +> 硬件谱系 → 软件与模型准入 → 公平对照 → 混合负载实验 → 可复现数据 → 跨档位规律 → 论文贡献。 + +## 2. 核心研究矛盾 + +实时控制任务通常要求微秒到毫秒级的确定性,大模型推理却会长时间占用 CPU、内存、总线、GPU 或 NPU,并产生排队、模型加载、KV Cache 和中断干扰。两类任务共存时,单纯提高模型吞吐不能说明系统适合实时场景。 + +因此,本研究不只考察“模型能跑多快”,而是同时回答三个问题: + +1. 在 LLM 推理干扰下,1 ms 周期任务是否仍能满足截止期? +2. SylixOS 的资源隔离和调度机制能否改善尾延迟,同时避免过大的推理吞吐损失? +3. 在满足相同实时性和推理服务约束时,系统能否降低每 token 能耗? + +## 3. 为什么建立四层硬件谱系 + +《基础设备.md》以可用内存或显存为主要分级维度,构建端、边、桌面和集群四个层级。这样可以观察系统瓶颈随硬件规模变化的过程: + +| 层级 | 主要资源矛盾 | 研究重点 | +|---|---|---| +| T4 端级 | 内存和功耗预算非常紧张 | 极小资源下的实时任务保留能力 | +| T3 边级 | CPU、NPU/GPU 共享统一内存 | 带宽隔离、多模型竞争和功率模式 | +| T2 桌面级 | 多 GPU 共享 CPU、内存与互联 | NVLink 通信、多卡调度和并发公平性 | +| T1 集群级 | 节点内计算与节点间通信耦合 | RDMA/NCCL 抖动及跨节点调度 | + +当前最重要的实测锚点是: + +- RK3588 16 GB 作为 T3-L 边级平台; +- 同一 RK3588 施加 8 GB 内存预算,作为 T4-H 受限配置; +- 4×V100、128 GB 总显存服务器作为 T2-L 桌面级平台。 + +其余档位用于后续采购、扩容或云租后的条件扩展。现有设备负责产生核心证据,扩展设备用于验证规律能否跨硬件规模成立。 + +需要注意,RK3588 的 8 GB 限额配置只能用于研究内存预算变化,不能等同于真实 8 GB 板卡的功耗、物理带宽或热特性。 + +## 4. 为什么必须先做准入 + +设备可以启动,不代表加速器、模型和混合负载已经具备可比较条件。因此实验被划分为五个连续门槛: + +| 门槛 | 核心检查内容 | +|---|---| +| G0 设备准入 | 启动、SMP、容量、接口和硬件拓扑 | +| G1 测量准入 | 单调时钟、周期任务、日志和功耗仪器 | +| G2 加速器准入 | CUDA、RKLLM、RKNN、驱动和基本算子 | +| G3 模型准入 | 模型转换、加载、正确推理和峰值内存 | +| G4 混合负载准入 | RT 与 LLM 同时稳定运行至少 30 分钟 | + +只有通过 G4 的配置才能进入正式对照实验。准入失败本身也是研究结果,应记录为 BSP、驱动、模型格式或容量限制,不能用估计值补齐。 + +## 5. 如何保证对照公平 + +主对照包括普通 Linux、Linux PREEMPT_RT、SylixOS 默认配置和 SylixOS 优化配置。比较时需要固定: + +- 模型版本、量化格式、tokenizer、输入长度、输出长度和随机种子; +- CPU 核数量、实时优先级、内存预算、加速器数量和频率策略; +- 推理请求到达序列、背景干扰强度、预热时间和测量窗口; +- 环境温度、散热条件、驱动与框架版本。 + +如果两个系统无法使用等价推理后端,结果应表述为“完整系统方案比较”,不能只归因于操作系统调度器。 + +## 6. 实验如何逐步展开 + +实验采用从简单到复杂的顺序: + +1. E0 确认设备、测量和空载基线。 +2. E1 测量实时任务唤醒、响应、IPC 和物理接口延迟。 +3. E2 单独测量模型容量、TTFT、TPOT、吞吐和能耗。 +4. E3 运行核心场景,即 1 ms 实时任务与 LLM 推理并发。 +5. E4 比较 RK3588 的 16 GB 与 8 GB 预算配置。 +6. E5 比较 V100 的 1、2、4 卡运行状态及公平性。 +7. E6 分析温度、频率、功耗与性能耦合。 +8. E7 逐项移除核隔离、IRQ 亲和、内存预分配、准入控制等机制,确认收益来源。 +9. E8 对最终候选配置进行 24 小时长稳与恢复测试。 + +背景负载从仅实时任务、仅推理逐步增加到 RT+LLM、CPU/内存/I/O 干扰以及突发过载。这样可以确定系统在哪一个压力区间开始出现排队、降频或截止期违约。 + +## 7. 哪些指标构成核心证据 + +实时性证据包括 P50、P95、P99、P99.9、观测最大响应时间和截止期违约率。论文中的“实时保号”必须建立在截止期违约统计和完整样本量上,不能只比较平均延迟。 + +推理服务证据包括 TTFT、TPOT、成功请求吞吐、有效吞吐、成功率、超时率和拒绝率。有效吞吐只统计满足预先冻结服务约束的请求,防止通过拒绝请求或牺牲实时任务获得虚假吞吐优势。 + +功耗证据使用整机输入端功率测量,计算 J/token 和 tokens/J,并同时记录温度、实际频率和降频时间。GPU/NPU 软件遥测可以用于解释能耗来源,但不能代替整机功率计。 + +多卡和多节点实验还需要报告强扩展效率、弱扩展吞吐、通信尾延迟和多租户公平性。 + +## 8. 数据如何转化为论文贡献 + +实验数据最终对应三项贡献: + +| 贡献 | 所需证据 | 对应论文内容 | +|---|---|---| +| C1 四层连续算力谱系评测 | 各档位的容量、功耗、瓶颈与扩展趋势 | 第3章硬件谱系、第7章结果、第8章跨档位分析 | +| C2 混合负载实时保号量化 | RT+LLM 下的尾延迟、违约率、有效吞吐和消融结果 | 第4章调度机制、第5章方法、第7章核心结果 | +| C3 可复现方法与基准对齐 | 统一输入、环境元数据、完整原始数据和外部基准复现 | 第5章方法学、第7章基准结果、第9章有效性威胁 | + +文章的论证顺序应保持为:先说明为什么需要四层谱系,再说明 SylixOS 的调度机制和实验方法,然后给出结果,最后讨论优势产生的原因、适用范围和局限性。 + +## 9. 实测、计划与结论边界 + +论文中应严格区分以下三类内容: + +- **实测结果**:已通过准入并完成实验的数据; +- **候选目标**:正式实验前冻结的服务或性能阈值; +- **扩展计划**:尚未获得设备、驱动或测量条件的实验。 + +设备标称 TOPS、TFLOPS、TDP 和模型预估 tokens/s 不能写成实验结果。FP16 TFLOPS 与 INT8 TOPS不能直接比较,多卡总显存也不能直接推导模型一定可运行。 + +24 小时无违约只能表述为“在指定工况和样本量下未观测到违约”,不能证明理论最坏情况。没有温箱数据时,也不能宣称已经验证 RK3588 的完整工业温区。 + +## 10. 最终闭环 + +这套研究的最终闭环不是追求某一平台的最高 tokens/s,而是寻找一条可重复验证的关系: + +> 随着资源从端级扩展到集群级,SylixOS 的实时调度和资源隔离在什么负载范围内能显著改善实时任务确定性,这种改善需要付出多少吞吐和能耗代价,其优势又会在哪个硬件档位开始减弱。 + +如果数据支持该关系,就形成四层硬件谱系、混合负载实时保号和统一评测方法三项论文贡献;如果某些档位不支持,也应把适配失败、容量上限和优势消失的边界作为研究结论的一部分。 +