RTX PRO 5000(或其他48GB显存)的Qwen3.8-27B-FP8配置交流(prefill 5000+t/s,decode 60+t/s)
-
先给参数纠个错:你贴的命令里 --mamba-full-memory-ratio 出现了两次(1.0 和 0.2),命令行后值覆盖前值,实际生效的是 0.2。1.0 应该是官方模板残留,建议删掉,免得抄作业的人复制了一串前后矛盾的参数。
再补一个 decode 带宽账,解释"为什么单流 31.3 t/s 上不去了":
- RTX PRO 5000 48G 是 384-bit GDDR7,带宽 1344GB/s(不是 1.8TB/s 那档,很多人记错成 5090 的规格)
- FP8 27B 权重 ≈ 28.5GB → 纯权重上限 = 1344 ÷ 28.5 ≈ 47 t/s
- 但你在 226K 上下文跑:每 decode 一步,attention 要把全部 KV 读一遍。Qwen3.8-27B 是 64 层里只有 16 个 GatedAttn 层(其余 48 层是 GatedDeltaNet 线性注意力),KV ≈ 16 层 × 2 × 8 heads × 128 dim × 1B(fp8)≈ 32KB/token,226K 上下文就是 ≈ 7.4GB/步,直接吃掉约 1/4 的带宽
- 两者合计每步读 ≈ 36GB → 上限 ≈ 37 t/s,你实测 31.3 是它的 85%,基本贴满
所以两个推论:
- 不需要 226K 的场景,把 context 降到 64K:KV 读从 7.4GB 降到 2.1GB,上限回到 ≈ 44 t/s,decode 白赚 15-20%
- 长上下文下 EAGLE 接受率会掉(论坛 TID:1131 那个 MTP 接受率崩的坑同款),"MTP=3 单线程近 2 倍 decode"是短上下文的结论;你可以用 --enable-cache-report 拉一下实际接受率,如果低于 0.6 就别指望投机解码的倍数了
结论:226K 下 31.3 t/s 已经是这台卡的实际极限附近,数字很扎实;想再快就砍上下文,没有免费午餐。
-
,
T terry 固定了此主题
-
不错的分享。关注下。准备抄作业。
-
,系统 取消固定了此主题
-
并发数用
--max-mamba-cache-size控制比--mamba-full-memory-ratio更好。--mamba-radix-cache-strategy extra_buffer_lazy时,--max-mamba-cache-size= 并发数 x 4另外,
--speculative-num-steps对 MTP 的影响可能比--speculative-num-draft-tokens更大。 -
@用户名违规 怎么会全量 prefill 呢?把三级缓存都打开试下?
export SGLANG_HICACHE_FILE_BACKEND_STORAGE_DIR="/path/to/kvcache/folder"--mamba-radix-cache-strategy extra_buffer \ --enable-hierarchical-cache \ --hicache-size 16 \ --hicache-storage-backend file \ --schedule-policy lpm \ --enable-session-radix-cache \ --enable-metrics \hicache-size根据内存大小设置,或者用hicache-ratio -
@用户名违规 怎么会全量 prefill 呢?把三级缓存都打开试下?
export SGLANG_HICACHE_FILE_BACKEND_STORAGE_DIR="/path/to/kvcache/folder"--mamba-radix-cache-strategy extra_buffer \ --enable-hierarchical-cache \ --hicache-size 16 \ --hicache-storage-backend file \ --schedule-policy lpm \ --enable-session-radix-cache \ --enable-metrics \hicache-size根据内存大小设置,或者用hicache-ratio@Che 二级缓存我已经开了,但是从来不落盘到 RAM,我都 emo 了。
你打开之后会正常落盘吗?我这边直接就是全量 Prefill,十分难受。
目前的 Docker Compose 配置如下:
services: sglang: image: lmsysorg/sglang:dev container_name: sglang-server restart: unless-stopped runtime: nvidia cap_add: - SYS_NICE - SYS_PTRACE environment: - NVIDIA_VISIBLE_DEVICES=0 - CUDA_DEVICE_ORDER=PCI_BUS_ID - SGLANG_USE_IPC_POOL_HANDLE_CACHE=0 - PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True - TZ=Asia/Shanghai volumes: - /mnt/x8/Qmodels:/models:ro - /mnt/480/docker/sglang/cache/torch_compile:/root/.cache/torch_compile - /mnt/480/docker/sglang/cache/flash_attn_cute_cache:/root/.cache/flash_attn_cute_cache command: > sglang serve --model-path /models/Qwen3.8-27B --host 0.0.0.0 --port 30000 --trust-remote-code --attention-backend flashinfer --mamba-backend flashinfer --max-mamba-cache-size 15 --mamba-max-states-per-path 8 --kv-cache-dtype fp8_e4m3 --mem-fraction-static 0.94 --max-running-requests 3 --cuda-graph-bs-decode 1 2 3 --num-continuous-decode-steps 4 --prefill-max-requests 1 --schedule-policy lpm --enable-session-radix-cache --tool-call-parser qwen3_coder --reasoning-parser qwen3 --chunked-prefill-size 2048 --max-prefill-tokens 2048 --disable-prefill-cuda-graph --enable-fused-qk-norm-rope --enable-cudagraph-gc --log-level info --uvicorn-access-log-exclude-prefixes / --decode-log-interval 120 --allow-auto-truncate --enable-cache-report # 删除 --linear-attn-backend triton # 其他参数保持不变 shm_size: '16gb' network_mode: host logging: driver: json-file options: max-size: "100m" max-file: "3" # --enable-cache-report # --enable-hierarchical-cache # --hicache-ratio 2 # --hicache-io-backend kernel # --hicache-mem-layout page_first # --hicache-write-policy write_through之前尝试的二级缓存相关参数是:
--enable-hierarchical-cache --hicache-ratio 2 --hicache-io-backend kernel --hicache-mem-layout page_first --hicache-write-policy write_through但是实际运行时,二级缓存始终没有正常落到 RAM。再次请求时依然会进行全量 Prefill。
我看了一遍这些参数,暂时也没发现明显的问题。不知道是当前
sglang:dev的问题,还是 Qwen3.8-27B、Mamba/FlashInfer 这套组合存在兼容性问题。有正常使用 SGLang Hierarchical Cache 的朋友可以帮忙看看吗?尤其是开启之后,RAM 二级缓存是否能够正常命中?
-
@Che 二级缓存我已经开了,但是从来不落盘到 RAM,我都 emo 了。
你打开之后会正常落盘吗?我这边直接就是全量 Prefill,十分难受。
目前的 Docker Compose 配置如下:
services: sglang: image: lmsysorg/sglang:dev container_name: sglang-server restart: unless-stopped runtime: nvidia cap_add: - SYS_NICE - SYS_PTRACE environment: - NVIDIA_VISIBLE_DEVICES=0 - CUDA_DEVICE_ORDER=PCI_BUS_ID - SGLANG_USE_IPC_POOL_HANDLE_CACHE=0 - PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True - TZ=Asia/Shanghai volumes: - /mnt/x8/Qmodels:/models:ro - /mnt/480/docker/sglang/cache/torch_compile:/root/.cache/torch_compile - /mnt/480/docker/sglang/cache/flash_attn_cute_cache:/root/.cache/flash_attn_cute_cache command: > sglang serve --model-path /models/Qwen3.8-27B --host 0.0.0.0 --port 30000 --trust-remote-code --attention-backend flashinfer --mamba-backend flashinfer --max-mamba-cache-size 15 --mamba-max-states-per-path 8 --kv-cache-dtype fp8_e4m3 --mem-fraction-static 0.94 --max-running-requests 3 --cuda-graph-bs-decode 1 2 3 --num-continuous-decode-steps 4 --prefill-max-requests 1 --schedule-policy lpm --enable-session-radix-cache --tool-call-parser qwen3_coder --reasoning-parser qwen3 --chunked-prefill-size 2048 --max-prefill-tokens 2048 --disable-prefill-cuda-graph --enable-fused-qk-norm-rope --enable-cudagraph-gc --log-level info --uvicorn-access-log-exclude-prefixes / --decode-log-interval 120 --allow-auto-truncate --enable-cache-report # 删除 --linear-attn-backend triton # 其他参数保持不变 shm_size: '16gb' network_mode: host logging: driver: json-file options: max-size: "100m" max-file: "3" # --enable-cache-report # --enable-hierarchical-cache # --hicache-ratio 2 # --hicache-io-backend kernel # --hicache-mem-layout page_first # --hicache-write-policy write_through之前尝试的二级缓存相关参数是:
--enable-hierarchical-cache --hicache-ratio 2 --hicache-io-backend kernel --hicache-mem-layout page_first --hicache-write-policy write_through但是实际运行时,二级缓存始终没有正常落到 RAM。再次请求时依然会进行全量 Prefill。
我看了一遍这些参数,暂时也没发现明显的问题。不知道是当前
sglang:dev的问题,还是 Qwen3.8-27B、Mamba/FlashInfer 这套组合存在兼容性问题。有正常使用 SGLang Hierarchical Cache 的朋友可以帮忙看看吗?尤其是开启之后,RAM 二级缓存是否能够正常命中?

