Issues / #2218
#2218 RTX 5090 + Core Ultra 9 285K,Strata v0.1.43.1 / IQ2_XS,adaptive overlap 开关对照
open · @liuhao16 · 0 Kommentare · Auf GitHub
BenchmarksServer & APIAMD / HIPNVIDIA / CUDAModels & quantsLinux
Beschreibung
## 摘要 2026-10-13 在单卡桌面 RTX 5090 + Core Ultra 9 285K 的 Linux 机器上,对同一个 Strata v0.1.43.1 本地 CUDA build 测试 `STRATA_ADAPT_OVERLAP=0/1`。采用8类短/中/长输入、6轮配对,共96次主测;另有预热及热前缀诊断,总计156次请求。 **结果:没有测出稳定的总体提速或退化。** 各题材等权的配对几何平均,ON 相对 OFF 为 **+0.27%**;探索性逐轮 bootstrap 95% 区间约 **−0.07%~+0.59%**,包含零。 ## 1. 硬件与软件 | 项目 | 配置/实测 | |---|---| | CPU | Intel Core Ultra 9 285K,24核24线程,单NUMA节点 | | CPU指令集 | AVX2 / AVX-VNNI;没有AVX-512,引擎日志确认CPU专家使用AVX2 | | GPU | 单张桌面 NVIDIA GeForce RTX 5090,GPU 0,计算能力 sm_120 | | 显存 | 标称32GB;nvidia-smi报告32607 MiB | | GPU功耗上限 | 600 W;本次测试未更改功耗上限 | | 内存 | 约64GB级配置;OS报告MemTotal为66,790,989,824 bytes,约62.20 GiB;物理条容量/频率未独立读取 | | Swap | 8 GiB;没有关闭swap或清理系统文件缓存 | | 存储 | Samsung SSD 9100 PRO 2TB,NVMe;模型所在根分区为ext4 | | PCIe | 查询到最大Gen5、x16;测试启动H2D probe约53.7–53.8 GB/s。未连续记录负载中的link gen,不能拿空闲Gen1快照当测试链路速度 | | OS | Ubuntu 24.04.2 LTS,Linux 7.0.0-38-generic,x86_64 | | NVIDIA驱动 | 595.99.02 | | CUDA工具链 | CUDA 13.0,NVCC V13.0.88 | | Python | 3.12.3 | | Strata | v0.1.43.1,commit `a0116b2782a5b82622358c04a06496485d12b2d6` | | 引擎来源 | 本地源码编译,Release、CUDA ON、sm_120、native experts ON;HIP/SYCL OFF | | 视觉 | 关闭 | 主板、内存频率/时序、CPU功耗限制、精确GGUF下载revision和负载期间其他进程清单未记录,不做猜测。没有使用多GPU、WSL2、远程专家或多客户端并发。 ## 2. 模型及有效运行配置 模型:**Qwen3.8-Flash-Next-GSQ-RCO,IQ2_XS**,不是Coder、Swift或Unsloth变体。 GGUF文件: - `Qwen3.8-Flash-Next-GSQ-RCO-IQ2_XS-00001-of-00002.gguf` - `Qwen3.8-Flash-Next-GSQ-RCO-IQ2_XS-00002-of-00002.gguf` 相关运行状态: - `--expert-cache auto`:12次启动均为 **18105 slots / 24.32 GiB VRAM**,从同一保存的expert profile初始化。 - 专家RAM arena约 **33.02 GiB**,启动时cudaHostRegister成功;未配置显式hugetlb页,日志请求transparent huge pages。 - `--prefill auto`:实际 **8192-token prompt chunks**、384-slot ring。 - `--max-context 262144`,`--kv int8`,`--kv-resident 32768`;其余KV保存在约 **3.09 GiB pinned RAM**。 - `--spec 4 --spec-min-p 0.5 --mtp <DATA_DIR>/mtp/rt`;已有draft vocabulary 106299 tokens;MTP载入约835 MiB VRAM。 - `--pool-workers 15`,另加host参与任务;启动日志host固定CPU0,workers在CPU1–15。 - 未显式设置 `--vram-reserve-mib`;日志cache sizing使用默认700 MiB reserve及draft-head余量。 - 未修改adaptive默认:`adapt_every=4`、`adapt_swaps=96`、`adapt_decay=0.7`。 - 两臂都保留v0.1.43.1默认callback warmup;ON日志确认stream-ordered signaling,未使用`STRATA_ADAPT_SIGNAL=host`。 - 日志显示自动native Q5_K head路径;本次未另行启用experimental-speed-projection。 - 启动后剩余显存约 **410 MiB**,测试采样最低 **311 MiB**;有低显存警告,未为跑分改变缓存容量或context。 ### 等价的引擎参数 以下是Python服务启动的引擎命令: ```bash # 关闭:0;开启:1。必须启动新的引擎进程,不能靠HTTP请求即时切换。 export STRATA_ADAPT_OVERLAP=0 DATA_DIR=/path/to/Strata-data ./engine/strata --serve \ --pack "$DATA_DIR/packs/iq2_xs" \ --native "$DATA_DIR/models/IQ2_XS/Qwen3.8-Flash-Next-GSQ-RCO-IQ2_XS-00001-of-00002.gguf" \ --ple-gguf "$DATA_DIR/models/IQ2_XS/Qwen3.8-Flash-Next-GSQ-RCO-IQ2_XS-00002-of-00002.gguf" \ --expert-profile ./data/expert-profile.bin \ --expert-cache auto \ --prefill auto \ --spec 4 \ --spec-min-p 0.5 \ --mtp "$DATA_DIR/mtp/rt" \ --max-context 262144 \ --kv int8 \ --kv-resident 32768 \ --pool-workers 15 ``` `engine/strata --serve`本身是供Python服务使用的引擎协议,**不是独立HTTP服务器**。实际benchmark HTTP服务启动形状如下,config保留上述engine args、tokenizer、GPU0及CUDA库目录: ```bash STRATA_ADAPT_OVERLAP=0 .venv/bin/python serve/server.py \ --engine strata \ --config ./strata-iq2_xs.json \ --port 8081 \ --host 127.0.0.1 ``` 另一臂将`0`改为`1`。API密钥保持启用,没有放入命令行或本报告。若config中的`env`也设置了overlap,会覆盖父进程环境;本机没有该覆盖。需要检查日志确认实际ON/OFF,不只是检查环境变量。 ## 3. 测试方法 - 全部材料在本地生成并保存,不包含真实用户对话,没有外部dataset下载:中文解释、英文代码、故事续写、JSON日志、英文文档、长代码、多主题中文文档、长英文代码与文档。 - 使用实际tokenizer与chat template拟合输入长度:256、384、256、2048、4096、16384、65536、102400 tokens。token数包含渲染后的聊天模板。 - 每类6组配对,每组同样输入字节、相同请求参数和顺序;不同轮使用不同早期标签,标签在一组ON/OFF中一致。 - 会话顺序为 **OFF→ON / ON→OFF / OFF→ON / ON→OFF / OFF→ON / ON→OFF**,共12次启动。每轮旋转题材顺序,轮内两臂保持一致。 - 每次启动恢复同一保存profile,做相同256-token预热;然后依次测8类输入。它们是**预热后逐步适应的混合工作负载**,不是每条prompt都独立冷启动。 - 没有`--expert-profile-save`,不让benchmark输出覆盖原profile。 - 请求参数:`temperature=0`,`seed=20261013`,`reasoning_effort=none`,`enable_thinking=false`,`max_tokens=512`,SSE streaming。正常EOS,不禁用EOS、不强制最小输出长度。 - **96次主测实际均达到512输出tokens,cache_n全部为0**。总计2,296,320输入tokens和49,152输出tokens。 - 另做短代码与64K中文的热前缀测试:先prime,再原样repeat,单独统计。12次预热、96主测、24 prime、24 repeat,共156次请求。 - 读入/生成速率使用API的引擎`prompt_per_second`和`predicted_per_second`;TTFT由流式客户端从发送请求到第一段非空文本计算,忽略空delta/keepalive;总耗时为客户端wall time。不把总耗时拿来计算decode tok/s。 - 模型加载不计入请求时序;没有清Linux文件缓存,载入过程通常约12秒。整个运行加恢复约17.1分钟,数据准备另计。 - 约每秒采样GPU温度、频率、功耗、VRAM及系统MemAvailable/swap。没有锁定GPU时钟或改变功耗上限。核心采样2895–2985 MHz,GPU温度46–70℃。 ## 4. 主测:decode 速度单位tok/s。两臂数字为6次测量的**中位数[min–max]**。配对变化先对每轮计算`(ON/OFF−1)×100%`,再取6轮中位数,**不是两列中位数相除**。 | 题材 | 输入tokens | OFF中位[min–max] | ON中位[min–max] | 配对变化中位 | ON胜出 | |---|---:|---:|---:|---:|---:| | 中文解释 | 256 | 207.3 [197.1–214.2] | 205.8 [196.0–212.8] | −0.86% | 2/6 | | 英文代码 | 384 | 266.5 [253.2–278.0] | 266.1 [261.7–270.6] | −0.49% | 3/6 | | 中文故事 | 256 | 186.9 [180.1–190.2] | 185.4 [182.5–193.0] | +0.17% | 3/6 | | 结构化日志 | 2048 | 248.2 [235.9–265.6] | 251.2 [231.8–261.3] | +0.20% | 3/6 | | 英文归纳 | 4096 | 209.9 [205.0–223.8] | 213.6 [204.5–227.6] | +0.32% | 4/6 | | 技术代码 | 16384 | 223.2 [212.0–231.1] | 227.7 [212.2–231.0] | +0.38% | 4/6 | | 中文长文 | 65536 | 192.6 [187.5–197.7] | 194.5 [184.2–199.3] | +0.67% | 5/6 | | 英文代码文档 | 102400 | 214.7 [210.1–230.8] | 218.1 [209.3–230.1] | +0.73% | 4/6 | ### 分组汇总 下面是各题材/各轮等权的配对几何平均变化,不按输入token数量加权: | 分组 | ON相对OFF | |---|---:| | 短输入,3类 | −0.02% | | 中输入,2类 | +0.20% | | 长输入,3类 | +0.60% | | 全部8类 | **+0.27%** | 六轮总体变化分别为 **−0.20%、+0.66%、+0.71%、−0.38%、+0.47%、+0.38%**。主测48组配对中,ON更快28组,OFF更快20组。单题材单轮差异可达−8.31%~+6.19%,远大于总体+0.27%。不据此声称有确定的0.27%加速。 ## 5. Prompt ingestion、TTFT与总耗时 下表为6次中位数;`OFF / ON`。读入速度是新读入token速率,所有主测无prefix reuse。 | 题材 | 读入tok/s,OFF / ON | TTFT秒,OFF / ON | 总耗时秒,OFF / ON | |---|---:|---:|---:| | 中文解释256 | 991.3 / 993.6 | 0.273 / 0.273 | 2.777 / 2.753 | | 英文代码384 | 1309.1 / 1317.6 | 0.307 / 0.305 | 2.216 / 2.240 | | 中文故事256 | 962.6 / 982.3 | 0.281 / 0.276 | 3.030 / 3.044 | | 日志2048 | 3753.7 / 3767.2 | 0.562 / 0.560 | 2.642 / 2.600 | | 归纳4096 | 5022.4 / 5020.0 | 0.834 / 0.833 | 3.295 / 3.254 | | 代码16384 | 6443.3 / 6442.9 | 2.567 / 2.565 | 4.883 / 4.856 | | 中文65536 | 6552.7 / 6553.6 | 10.031 / 10.032 | 12.689 / 12.656 | | 英文102400 | 6365.3 / 6366.5 | 16.147 / 16.145 | 18.526 / 18.480 | 长输入读入和TTFT几乎不受开关影响;100K输入的首token等待在两臂都约16.15秒。本次没有测出明显的长prompt读取加速。 ## 6. 热前缀诊断(不计入主汇总) | 案例 | 复用输入tokens | OFF / ON decode中位tok/s | 配对几何平均变化 | ON胜出 | OFF / ON TTFT中位秒 | |---|---:|---:|---:|---:|---:| | 短代码 | 377 / 384 | 271.7 / 278.3 | +2.26% | 5/6 | 0.032 / 0.032 | | 64K中文 | 65529 / 65536 | 194.6 / 193.7 | −1.02% | 2/6 | 0.050 / 0.049 | 短代码热请求有偏向ON的小收益,长中文则相反;不能据此推荐所有重复对话都开启。 ## 7. 正确性、生成轨迹与稳定性限制 - 相同输入、temperature0、相同seed仍不保证逐token一致:主测只有 **7/48组**完整输出相同。 - 本次没有定位输出分歧的具体来源。浮点舍入、专家缓存计算路径及MTP/后续adaptive轨迹是需要考虑的因素,不能直接把分歧认定为overlap缺陷或质量退化。 - MTP累计draft接受率OFF约 **66.93%**、ON约 **66.76%**。每条原始timings保留offered/accepted counts。 - 这是实际自由生成workload,不是固定token replay的纯拷贝开销测试,也不是质量评测。截断到512 tokens的代码未进行功能单元测试。 - 专家cache命中率请求中位约 **99.25%**,范围96.8–99.8%。高命中与较快PCIe使可隐藏的传输份额可能有限,仅作为相容解释,不作因果证明。 - 全156请求完成,有低显存告警;未发现CUDA错误、OOM、non-finite logits或watchdog失败。 - 未测试开启thinking、图片、并发客户端、满262144-token输入、其他量化、不同显存预留或不同专家缓存规模。不能把本报告外推到所有5090或其他后端。 ## 8. 所有主测decode原始值 每行6个数按配对轮次1~6排序,单位tok/s;同索引构成ON/OFF配对: ```text 中文解释 OFF: 208.1, 198.0, 207.2, 214.2, 207.5, 197.1 中文解释 ON : 202.0, 206.5, 212.8, 210.3, 205.1, 196.0 英文代码 OFF: 253.2, 264.1, 266.9, 270.2, 278.0, 266.2 英文代码 ON : 264.4, 270.6, 261.7, 264.1, 267.9, 268.8 中文故事 OFF: 183.3, 180.1, 185.4, 188.4, 190.2, 190.1 中文故事 ON : 187.0, 183.9, 193.0, 182.5, 183.4, 186.9 结构化日志 OFF: 252.8, 265.6, 239.3, 259.4, 235.9, 243.5 结构化日志 ON : 231.8, 251.8, 238.5, 261.3, 250.5, 255.5 英文归纳 OFF: 223.8, 205.4, 205.0, 220.7, 210.8, 209.1 英文归纳 ON : 227.6, 216.2, 206.1, 220.7, 211.0, 204.5 技术代码 OFF: 221.8, 212.0, 214.1, 231.1, 224.5, 228.1 技术代码 ON : 217.0, 212.2, 226.0, 231.0, 229.3, 229.6 中文长文 OFF: 197.7, 192.6, 192.9, 187.5, 190.7, 192.5 中文长文 ON : 199.0, 184.2, 195.2, 188.2, 199.3, 193.8 英文代码文档 OFF: 212.7, 227.6, 230.8, 211.6, 210.1, 216.7 英文代码文档 ON : 220.4, 230.1, 217.7, 218.4, 209.3, 217.5 ``` ## 结论 在这台桌面RTX5090、IQ2_XS、高专家命中率及原有spec4/MTP配置上,adaptive overlap开关基本持平。部分题材略快、部分略慢,整体变化低于可稳定确认的程度。
Mehr auf der Site
Links zu Install, Modellen, Releases.