跳到正文
LLM 推理

背景

每个想法在真实引擎中的位置

当你自己实现过一项技术之后,加深理解最快的方式就是去读别人的版本。这张表把每一章映射到值得一读的引擎上,从数据中心集群到树莓派上 2944 行的 C 程序。

功能矩阵

空白表示该引擎不需要这项功能,并非它有缺陷:batch 为 1 时批处理没有意义,一台机器只服务一个用户时分页同样没有意义。标记为 ? 的条目没有公开文档。

技术vLLMSGLangTRT-LLMllama.cpppicoLMquant.cppbaseRT
S02BPE / SentencePiece
S03GQA
S05KV 缓存
S06PagedAttentionradixpartial
S07前缀缓存reusesave/loadsave/load
S08权重量化FP8/AWQ/GPTQFP8/AWQFP8/INT4GGUF KQ2_K–Q8_0IQ2–Q8.base Q2–Q8
S08KV 量化FP8FP8INT8/FP8Q8/Q4fp164-bityes
S09连续批处理in-flightparallel seqs
S10抢占recomputerecomputeswap?
S11分块 prefillchunked ctx?
S12FlashAttentiononline softmax
S13CUDA Graph / 提前编译full AOTn/a (CPU)n/a
S14投机解码ngram/EAGLEEAGLElookahead?
S15语法约束XGrammarbuilt-inGBNFJSON only?
S16MoE
S17张量并行RPC
S18P/D 分离部署
S19OpenAI 兼容 APITritonbindings

该读什么,以及为什么

诚实地选一个