Rust in Everything

导读

主线位置:三条主线的起点。这一部分不走进任何一段代码路径,只交代读法,并用算式说明后面每一部分要解决的问题从哪里来。
版本:vLLM v0.32.0、SGLang v0.5.22
  1. 怎么读这一卷:四个 tag 和 commit;源码链接只认 tag;「默认」「可选」「条件默认」分别以源码里的哪种写法为准,比如 VLLM_USE_RUST_FRONTEND 默认关、SGLANG_RUST_SERVER 默认关,而 SGLang 的 Rust 前缀树默认开但在非 Linux 上回退 Python;四种数字(源码事实、估算、实测、待实测)怎么区分;主线每一步落在哪一页。
  2. 为什么服务大模型难:按 Llama-3.1-8B 的公开配置算:bf16 权重约 16.06 GB,每 token 线性层约 15 GFLOP,KV cache 每 token 128 KiB;预填充一次读权重算很多 token,解码每步读一遍权重只算少数 token;24 GiB 卡按 vLLM 默认 0.92 的显存比例,扣掉权重最多剩约 7.12 GiB,约 5.8 万个 token 的 KV。都是估算,实测待 C3-1。
flowchart TB
  read["怎么读这一卷"] --> ver["锁定版本与 commit"]
  read --> dflt["默认 / 可选 / 条件默认"]
  read --> nums["四种数字"]
  read --> map["主线落在哪一页"]
  why["为什么服务大模型难"] --> pd["预填充算力受限<br/>解码访存受限"]
  why --> kvb["KV cache 的账"]
  why --> len["长度差异:碎片与调度"]
  pd --> p03["03 调度"]
  kvb --> p02["02 KV cache"]
  len --> p02
  len --> p03

💬 关联讨论

发起讨论
加载中...