Issues / #2948

#2948 [Bug]: default `--pipeline-windows 2` costs ~25% decode on 2x R9700 with every expert resident (v0.1.45)

open · @justincinmd · 0 コメント · GitHub で見る

BenchmarksSetup & installMulti-GPUAMD / HIPNVIDIA / CUDAModels & quantsWindowsLinux

本文

### What happened

v0.1.45 turns `--pipeline-windows 2` on by default for a two-stage layer split. On a pair of R9700s that hold every expert, it makes decode about 25% slower, and up to 2.7x slower at long context. `STRATA_PIPELINE_AUTO=0` brings the speed back.

Setup: 2x Radeon AI PRO R9700 (gfx1201), Linux, ROCm 7.2.4, v0.1.45 built with setup's flags, Flash-Next IQ3_S, `--layer-split 26` (26 / 22 layers), every expert in VRAM on both stages, `--spec 4 --spec-min-p 0.5`, one request at a time. The engine logs `--pipeline-windows 2 is on by default for a layer split of 2 stages` and `284 MiB of CUDA0 kept out of the expert cache`; the residency check still reports 100% on both cards.

Same binary and config, only the switch differs:

| | default (pipeline on) | `STRATA_PIPELINE_AUTO=0` |
|---|---:|---:|
| decode, greedy (tok/s) | 89.5 | 117.7 |
| decode, sampled (tok/s) | 79.4 | 109.8 |
| prompt read 4K / 16K / 64K (tok/s) | 1354 / 2067 / 2548 | 1425 / 2176 / 2681 |
| decode at 32K / 96K / 160K context (tok/s) | 44.3 / 36.5 / 58.9 | 99.8 / 99.7 / 86.7 |

We saw the same direction on 0.1.40 with `--pipeline-windows 2` set by hand on this rig (slightly slower, all experts resident), so it looks like the pipeline only pays when stages wait on expert misses.

Could the auto default stay off when every expert is resident on both stages, or be gated on a measured gain? Happy to run a candidate fix on this box.

### Strata version, GPU, OS

0.1.45 · 2x Radeon AI PRO R9700 32GB (gfx1201) · Ubuntu 24.04, ROCm 7.2.4

関連リンク

インストール・モデル・リリースへの站内リンク。