64K-టోకెన్ ప్రాంప్ట్ల విషయంలో vLLM, SGLang కంటే మెరుగ్గా పనిచేస్తుంది, కానీ 8-GPU B300 సర్వర్లో కాంటెక్స్ట్ 200Kకి చేరుకున్నప్పుడు SGLang ముందంజలోకి వస్తుంది. టోకెన్ విండోలు పెరిగేకొద్దీ, ప్రిఫిల్ (prefill) పని కంటే డీకోడ్-స్టేజ్ (decode-stage) అడ్డంకులే పనితీరును నిర్ణయిస్తాయని ఈ మార్పు తెలియజేస్తుంది.
ఈ బెంచ్మార్క్ ఎందుకు ముఖ్యం
చాట్ అసిస్టెంట్లు, కోడ్ అసిస్టెంట్లు మరియు వందల వేల టోకెన్లను మెమరీలో ఉంచుకోవాల్సిన ఏవైనా యాప్లకు లాంగ్-కాంటెక్స్ట్ ఇన్ఫరెన్స్ (long-context inference) ఖర్చును పెంచుతుంది. Kimi-K3 అనేది ఒక లార్జ్-పారామీటర్ మోడల్, ఇటువంటి విండోలను సులభంగా హ్యాండిల్ చేయగల మొదటి ఓపెన్-వెయిట్ LLMలలో ఒకటి, కానీ దానిని నడిపే ఇంజిన్ అనేది ఒక రిక్వెస్ట్ సెకన్లలో పూర్తవుతుందా లేదా నిమిషాల్లో పూర్తవుతుందా అనేది నిర్ణయిస్తుంది.
vLLM మరియు SGLang రెండూ హై-త్రూపుట్ ఇన్ఫరెన్స్ను అందిస్తాయని వాగ్దానం చేస్తాయి, అయినప్పటికీ అవి డీకోడ్ స్టేజ్ విషయంలో విరుద్ధమైన పద్ధతులను అనుసరిస్తాయి. vLLM డీకోడ్ పాత్ను సరళంగా ఉంచుతుంది, తద్వారా Decode Context Parallelism (DCP) వల్ల కలిగే అదనపు సింక్రొనైజేషన్ను నివారిస్తుంది. SGLang, DCPని ఉపయోగించి కీ-వాల్యూ (KV) క్యాచీ రీడ్స్ను బహుళ GPUల మధ్య విస్తరిస్తుంది; ఈ పద్ధతి అదనపు కమ్యూనికేషన్ ఖర్చుతో మెమరీ బ్యాండ్విడ్త్ను సమతుల్యం చేయగలదు.
టెస్ట్బెడ్ (The testbed)
- Hardware: ఎనిమిది NVIDIA B300 GPUలతో కూడిన ఒకే ఒక సర్వర్, ప్రతి దానిలో సమానమైన మెమరీ ఉంటుంది.
- Workloads: రెండు కాంటెక్స్ట్-లెంగ్త్ సెట్టింగ్లు – 64K టోకెన్లు ("లాంగ్ కాంటెక్స్ట్" యొక్క కనిష్ట స్థాయి) మరియు 200K టోకెన్లు (అనేక పరిశోధన డెమోలు లక్ష్యంగా పెట్టుకునే గరిష్ట స్థాయి).
- Metrics: ఒక ఫిక్స్డ్ బ్యాచ్ ప్రాంప్ట్లను ప్రాసెస్ చేయడానికి పట్టే మొత్తం సమయం; త్రూపుట్ (throughput) అనేది సమయ వ్యత్యాసం నుండి లెక్కించబడుతుంది.
మేము బ్యాచ్ సైజ్, మోడల్ వెయిట్స్ మరియు మెమరీ-యూటిలైజేషన్ టార్గెట్లను స్థిరంగా ఉంచాము. రన్ల మధ్య మేము మార్చిన ఏకైక అంశం ఇన్ఫరెన్స్ ఇంజిన్ మాత్రమే.
గణాంకాలు (Numbers on the line)
| కాంటెక్స్ట్ (Context) | ఇంజిన్ (Engine) | సమయం (సెకన్లలో) | సాపేక్ష వేగం (Relative speed) |
|---|---|---|---|
| 64 K | vLLM | 100.5 | – |
| SGLang | 150.8 | vLLM ≈ 1.5× వేగంగా | |
| 200 K | vLLM | 295.2 | – |
| SGLang | 225.3 | SGLang ≈ 1.31× వేగంగా |
కాంటెక్స్ట్ పెరిగినప్పుడు vLLM యొక్క త్రూపుట్ (సెకనుకు టోకెన్లు) గణనీయంగా పడిపోయింది: 64K నుండి 200Kకి 3.29× తగ్గుదల నమోదైంది. అదే పరిధిలో SGLang త్రూపుట్ కేవలం 1.25× మాత్రమే తగ్గింది.
ఈ వ్యత్యాసం ఎక్కడ నుండి వస్తుంది
రెండు ఇంజిన్లు కూడా ప్రిఫిల్ స్టేజ్ (KV క్యాచీలోకి ప్రాంప్ట్ను లోడ్ చేయడం) కోసం దాదాపు సమానమైన సమయాన్ని కేటాయిస్తాయి. మోడల్ ఒక్కొక్క టోకెన్ను జనరేట్ చేసే డీకోడ్ స్టేజ్లో ఈ వ్యత్యాసం కనిపిస్తుంది.
- 64K టోకెన్లు: ఇక్కడ ఇంటర్-GPU కమ్యూనికేషన్ ఎక్కువగా ఉంటుంది. vLLM యొక్క సింగిల్-GPU డీకోడ్ పాత్, DCPకి అవసరమైన అదనపు సింక్రొనైజేషన్ను నివారిస్తుంది, దీనివల్ల ఇది సుమారు 1.5× వేగంగా పూర్తవుతుంది.
- 200K టోకెన్లు: KV క్యాచీ ఎంత పెద్దదిగా పెరుగుతుందంటే, దానిని రీడ్ చేయడం అనేది ఒక అడ్డంకిగా (bottleneck) మారుతుంది. SGLang యొక్క DCP (సైజ్ 8కి సెట్ చేయబడింది), ఆ రీడ్స్ను ఎనిమిది GPUల మధ్య పంచుతుంది. దీనివల్ల కలిగే బ్యాండ్విడ్త్ లాభం, కమ్యూనికేషన్ వల్ల కలిగే నష్టాన్ని అధిగమించి, SGLangకి స్పష్టమైన ఆధిక్యాన్ని ఇస్తుంది.
మెమరీ ప్రెజర్ (memory pressure) గురించి మరొక ముఖ్యమైన పరిశీలన ఉంది. ఏదైనా ఇంజిన్ను 0.95 మెమరీ-యూటిలైజేషన్ టార్గెట్తో నడిపినప్పుడు, B300లపై అవుట్-ఆఫ్-మెమరీ (OOM) రీట్రైలు (retries) సంభవించాయి. టార్గెట్ను 0.92కి తగ్గించడం వల్ల రీట్రైలు నిలిచిపోయి, రన్టైమ్లు స్థిరపడ్డాయి, అయితే దీనివల్ల లేటెన్సీ (latency) స్వల్పంగా పెరిగింది.
ఎవరు గెలుస్తారు, ఎవరు thuaస్తారు
- తక్కువ నుండి మధ్యస్థ కాంటెక్స్ట్లు ఉన్న డెవలపర్లు (≤ 64K టోకెన్లు) vLLM యొక్క సరళమైన డీకోడ్ పాత్ నుండి ఎక్కువ ప్రయోజనం పొందుతారు. వేగవంతమైన పనితీరు వల్ల క్లౌడ్-కంప్యూట్ బిల్లులు తగ్గుతాయి మరియు యూజర్ ఎక్స్పీరియన్స్ మెరుగుపడుతుంది.
- డీప్-అనాలిసిస్ లేదా రీసెర్చ్ టూల్స్ నిర్మించే బృందాలు, కాంటెక్స్ట్లో వందల వేల టోకెన్లను ఉంచాల్సి వస్తే, DCP ఎనేబుల్ చేసిన SGLang వైపు మొగ్గు చూపాలి. దీని స్థిరమైన త్రూపుట్ వల్ల టైమ్-అవుట్ రిస్క్ తగ్గుతుంది మరియు మెమరీ డిమాండ్ పెరిగేకొద్దీ GPU యూటిలైజేషన్ ఎక్కువగా ఉంటుంది.
- హార్డ్వేర్ ప్లానర్లు, కేవలం GPU సంఖ్య మాత్రమే లీనియర్ స్కేలింగ్ను (linear scaling) గ్యారెంటీ చేయదని గమనించాలి.
