Servizi
Contattaci

LLM Motori di Inferenza: vLLM vs LMDeploy vs SGLang

Cem Dilmegani
Cem Dilmegani
aggiornato il 15 apr. 2026

Abbiamo confrontato 3 principali motori di inferenza LLM su hardware NVIDIA H100: vLLM, LMDeploy e SGLang. Ciascun motore ha elaborato carichi di lavoro identici: 1.000 prompt ShareGPT utilizzando Llama 3.1 8B-Instruct per isolare il reale impatto prestazionale delle loro scelte architetturali e strategie di ottimizzazione.

Motori
Ideale per
vLLM
-Prototipazione e sperimentazione su oltre 100 architetture di modelli
-Ambienti multi GPU (NVIDIA, AMD, Intel)
LMDeploy
-Implementazioni in produzione che richiedono prestazioni H100 con complessità minima
-Team che privilegiano la semplicità di installazione (pip install a una riga)
SGLang
-Organizzazioni che necessitano del massimo throughput assoluto (16.215 tok/s)
-Cluster di inferenza dedicati

Risultati del benchmark dei motori di inferenza

Abbiamo misurato il throughput batch offline su 10.000 operazioni di inferenza totali (1.000 prompt × 10 esecuzioni per motore) per garantire stabilità statistica.

  • Throughput: Token di output generati al secondo in modalità inferenza batch. Misura l'efficienza con cui ciascun motore utilizza le capacità di calcolo dell'H100.

Tutti i motori sono stati configurati per le loro massime prestazioni teoriche: Llama 3.1 8B-Instruct, precisione bfloat16 e utilizzo della memoria GPU allo 0,8 su hardware H100 80GB.

Per comprendere come abbiamo calcolato i tassi di throughput, consulta la nostra metodologia di benchmark dell'inferenza.

Risultati principali

Il nostro approccio riduce al minimo le variabili confondenti: modello, hardware, dataset, configurazione di campionamento, limiti di memoria e protocollo di warmup identici. Questo isolamento rivela ciò che l'architettura di ciascun motore apporta realmente.

Il divario architetturale è del 29%: Anche quando vLLM è ottimizzato con gli stessi identici kernel (FlashInfer) di SGLang, resta significativamente indietro rispetto ai leader. SGLang (16.215 tok/s) e LMDeploy (16.132 tok/s) mantengono un vantaggio del 29% rispetto al vLLM completamente ottimizzato (12.553 tok/s). Ciò indica che il collo di bottiglia non è più il kernel matematico, ma il sovraccarico di orchestrazione interna del motore.

SGLang e LMDeploy sono sostanzialmente alla pari: la differenza prestazionale tra loro è inferiore allo 0,6%, rientrando nel margine di errore. Questo suggerisce che sia l'approccio "Python + Kernel nativi" (SGLang) sia l'approccio "Motore C++ puro" (LMDeploy) sono strategie ugualmente valide per raggiungere le massime prestazioni sulle architetture Hopper.

"Zona sicura" della memoria GPU all'80% di utilizzo: I tentativi di allocare il 95% della memoria GPU hanno causato crash immediati durante la compilazione CUDA Graph su tutti i motori, nonostante la capacità di 80GB. La causa principale è stata identificata nell'esaurimento della RAM di sistema durante l'acquisizione del grafo, non nei limiti di memoria GPU. Una frazione di 0,8 ha fornito l'equilibrio ottimale tra stabilità e dimensione del batch.

Comprendere la gerarchia delle prestazioni

Le differenze di throughput rivelano una chiara distinzione tra le architetture dei motori su H100:

SGLang & LMDeploy: Questi motori raggiungono ~16.200 tok/s. SGLang ottiene questo risultato tramite RadixAttention, un gestore di memoria specializzato progettato per pattern di serving complessi. LMDeploy lo raggiunge tramite TurboMind, un backend C++ personalizzato che elimina completamente il sovraccarico di Python.

vLLM: Anche con il backend FlashInfer abilitato, vLLM raggiunge un picco di ~12.500 tok/s. Sebbene questo rappresenti un enorme miglioramento rispetto alle configurazioni standard, il divario rimanente evidenzia il costo dell'architettura flessibile e basata su plugin di vLLM (PagedAttention) rispetto ai design iper-specializzati dei leader.

Differenze nella filosofia architetturale: SGLang e LMDeploy co-progettano i loro meccanismi di attenzione con le assunzioni dei kernel. vLLM mantiene un livello di compatibilità più ampio che richiede agli algoritmi di attenzione di funzionare con vari backend, limitando la profondità delle ottimizzazioni specifiche su hardware all'avanguardia.

Ottimizzazione dei pattern di accesso alla memoria: Il divario del 29% suggerisce che SGLang e LMDeploy ottimizzano il coalescing della memoria, la località della cache e la schedulazione dei batch in modo più aggressivo di quanto consenta lo scheduler di vLLM, in particolare nella gestione del Tensor Memory Accelerator (TMA) dell'H100.

Metodologia del benchmark

Ambiente di test

Configurazione hardware:

  • GPU: NVIDIA H100 80GB HBM3
  • Sistema: istanza cloud RunPod
  • Base Docker: runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404

Versioni software:

  • CUDA: 12.8.1
  • PyTorch: 2.8.0
  • vLLM: 0.11.0 (FlashInfer abilitato)
  • LMDeploy: 0.10.2
  • SGLang: v0.2.3

Dataset e carico di lavoro

Fonte: dataset ShareGPT_Vicuna_unfiltered da Hugging Face

Criteri di selezione:

Perché questo dataset: ShareGPT contiene conversazioni reali utente-chatbot con variazione naturale della lunghezza, rappresentando più accuratamente i carichi di lavoro reali dei chatbot rispetto ai benchmark sintetici.

Configurazioni dei motori

Tutti i motori sono stati configurati per le massime prestazioni mantenendo l'equità:

Configurazione vLLM (Backend FlashInfer):

Configurazione LMDeploy:

Configurazione SGLang:

Procedura di misurazione

Protocollo standard applicato a tutti i motori:

  1. Caricamento del modello: Scarica e inizializza il modello con precisione bfloat16.
  2. Fase di warmup: Elabora 20 prompt per attivare la compilazione JIT e stabilizzare i clock della GPU.
  3. Esecuzioni del benchmark: Esegui 10 passaggi completi di tutti i 1.000 prompt.
  4. Metodologia di temporizzazione:
  1. Conteggio dei token: Estrai i conteggi effettivi dei token dai formati di output specifici del motore.
  2. Calcolo del throughput: token_di_output_totali / durata.

Rigore statistico:

  • 10.000 operazioni di inferenza totali (1.000 prompt × 10 esecuzioni per motore).
  • ~1,5 milioni di token generati per motore.
  • Deviazione standard costantemente <1% della media su tutti i motori.

Interpretare i risultati

Cosa puoi concludere:

Per l'inferenza batch offline di Llama 3.1 8B su hardware H100, l'efficienza architetturale determina il vincitore. Anche con i migliori kernel possibili (FlashInfer), vLLM non può eguagliare il throughput di SGLang o LMDeploy. Il divario del 29% rappresenta il costo dell'orchestrazione Python rispetto all'ottimizzazione nativa in C++.

La gerarchia delle prestazioni si applica a questo scenario esatto: elaborazione batch di 1.000 prompt simultaneamente. SGLang e LMDeploy sono scelte robuste che offrono circa il 45% di valore in più per ora-GPU rispetto alle implementazioni standard e circa il 29% in più rispetto alle implementazioni vLLM altamente ottimizzate.

Cosa non puoi generalizzare:

  • Modelli diversi: Risultati specifici per Llama 3.1 8B. Modelli più grandi (es. 70B) o architetture diverse (es. Mixtral, Qwen) mostreranno pattern di scalabilità differenti.
  • Hardware diverso: Queste classifiche si applicano all'H100 80GB. Su A100 o V100, la portabilità di vLLM potrebbe prevalere sulla specializzazione di SGLang.
  • Metriche diverse: Questo misura solo il throughput. Il serving online richiede TTFT e percentili di latenza, dove i risultati differiscono significativamente.
  • Carichi di lavoro diversi: Prompt casuali minimizzano i benefici della cache dei prefissi. Prompt di sistema ripetuti o conversazioni multi-turno spostano drasticamente il panorama prestazionale a favore di SGLang.

Confronto dell'esperienza di sviluppo

I numeri delle prestazioni non catturano il quadro completo dell'implementazione. Ogni motore offre flussi di lavoro di sviluppo distinti:

vLLM: Standard del settore per buone ragioni

Semplicità unita ad ampia compatibilità. Una singola installazione pip di vllm supporta oltre 100 architetture di modelli su hardware NVIDIA, AMD e Intel. Una comunità enorme significa che Stack Overflow ha le risposte. Server API compatibile con OpenAI incluso.

  • Scegli vLLM per: Prototipazione rapida, ambienti GPU eterogenei, massima copertura di modelli o per sfruttare l'ecosistema più vasto.

LMDeploy: Grado di produzione con attrito minimo

Installazione a una riga (pip install lmdeploy) offre il 99,5% delle massime prestazioni su H100. Backend C++ nativo significa zero sovraccarico Python. Supporto alla quantizzazione di prima classe (AWQ, GPTQ) per ulteriori ottimizzazioni. Nessun inferno di dipendenze.

  • Scegli LMDeploy per implementazioni in produzione che richiedono massime prestazioni su H100 senza sacrificare la semplicità di installazione o la stabilità.

SGLang: Massime prestazioni con costo di complessità

Il throughput di picco assoluto (16.215 tok/s) ha un prezzo: sforzo significativo nel debug dell'installazione di FlashInfer. Richiede una versione specifica di PyTorch. Incompatibilità binarie con alcuni wheel precompilati. RadixAttention eccelle nei carichi di lavoro conversazionali.

  • Scegli SGLang per: Cluster di inferenza dedicati dove un team specializzato può gestire le dipendenze e hai bisogno di ogni ultimo punto percentuale di throughput.
Non perderti i nostri benchmark e approfondimenti basati sui dati. Il pulsante apre Google; selezionare AIMultiple conferma che desideri vedere AIMultiple più spesso nei risultati di ricerca di Google.
GoogleAggiungi come fonte preferita

Sfide di installazione e implementazione

Un confronto equo ha richiesto il superamento di ostacoli ingegneristici significativi:

Sfida 1: Conflitti di dipendenza di FlashInfer

Problema: I wheel FlashInfer di SGLang richiedono versioni specifiche di PyTorch, ma i container ottimizzati per H100 spesso forniscono versioni diverse.

Risoluzione:

Investimento di tempo: 6 ore per identificare versioni compatibili.

Conclusione: I wheel ML precompilati spesso nascondono vincoli di versione che emergono solo in fase di esecuzione.

Sfida 2: Abilitare FlashInfer in vLLM

Problema: Le versioni standard di vLLM spesso mancano del supporto FlashInfer o richiedono una complessa compilazione dai sorgenti.

Svolta: Abbiamo utilizzato la build vLLM 0.11.0 su PyTorch 2.8 Nightly. Questo ha abilitato con successo il supporto nativo FlashInfer tramite pip install "vllm[flashinfer]==0.11.0", aggirando le barriere di compilazione delle versioni precedenti.

Impatto: Questo ha fornito il confronto più equo possibile, confermando che sebbene i kernel aiutino, non risolvono il collo di bottiglia architetturale.

Sfida 3: Scoperta del punto ottimale di utilizzo della memoria

Problema: La raccomandazione standard di utilizzo della memoria GPU a 0,9 causava crash std::bad_alloc.

Progressione dei test:

Scoperta: L'acquisizione di CUDA Graph alloca RAM di sistema temporanea proporzionale all'utilizzo della memoria GPU. A 0,9 × 80GB = 72GB di allocazione GPU, la RAM di sistema viene esaurita durante la compilazione.

Limite pratico: L'utilizzo della GPU a 0,8 è la "zona sicura" nonostante la capacità hardware di 80GB.

Conclusione

Per l'inferenza batch di Llama 3.1 8B su H100, la gerarchia delle prestazioni ha due chiari livelli: vLLM (ottimizzato con FlashInfer) fornisce una solida baseline, mentre le architetture C++ native di SGLang e LMDeploy sbloccano un ulteriore 29% di throughput.

SGLang (16.215 tok/s) e LMDeploy (16.132 tok/s) raggiungono un throughput quasi identico, suggerendo che entrambi i motori saturano la larghezza di banda della memoria dell'H100. Il divario minimo tra loro è rumore statistico.

Per implementazioni in produzione: LMDeploy emerge come il vincitore pratico, offrendo il 99,5% del throughput di picco di SGLang con un'installazione banale (pip install lmdeploy) rispetto alla complessa risoluzione delle dipendenze di SGLang.

vLLM con FlashInfer (12.553 tok/s) offre una via di mezzo interessante: prestazioni rispettabili mantenendo la piena compatibilità hardware e la più ampia matrice di supporto modelli del settore. Tuttavia, per cluster H100 dedicati, lasciare sul tavolo il 29% di prestazioni è un costo elevato.

Per la standardizzazione su infrastrutture eterogenee o la rapida sperimentazione di modelli, vLLM rimane la scelta razionale. Per implementazioni H100 dedicate dove il throughput è fondamentale, la combinazione di LMDeploy tra prestazioni di picco e semplicità di installazione è imbattibile.

FAQ

Un motore di inferenza LLM è un software specializzato che ottimizza il modo in cui i modelli linguistici di grandi dimensioni generano risposte. Sebbene sia possibile eseguire modelli con PyTorch o TensorFlow di base, i motori di inferenza aggiungono ottimizzazioni critiche come la gestione efficiente della memoria, il raggruppamento di più richieste insieme e le ottimizzazioni dei kernel GPU. Questi miglioramenti possono aumentare drasticamente il throughput (token generati al secondo) e ridurre i costi, offrendo potenzialmente prestazioni 3-5 volte superiori sullo stesso hardware.

L'inferenza batch offline elabora molti prompt simultaneamente senza requisiti in tempo reale, pensa all'analisi di migliaia di documenti o alla generazione di embedding per un dataset. Il serving online gestisce le richieste dei singoli utenti con rigorosi requisiti di latenza, dove metriche come il Time To First Token (TTFT) contano più del throughput puro. Il motore che vince nel throughput batch potrebbe non essere ottimale per i chatbot interattivi, quindi scegli in base al tuo effettivo modello di carico di lavoro

Cita questa ricerca

Scegli il formato adatto a dove pubblicherai. Incollare la versione con link nel tuo CMS preserva il backlink.

Cem Dilmegani and Ekrem Sarı (2026) - "LLM Motori di Inferenza: vLLM vs LMDeploy vs SGLang". Pubblicato online su AIMultiple.com. Consultato il 15 Aprile 2026, da: https://aimultiple.com/inference-engines [Risorsa online]

Dilmegani, C., & Sarı, E. (2026, 15 Aprile). LLM Motori di Inferenza: vLLM vs LMDeploy vs SGLang. AIMultiple. https://aimultiple.com/inference-engines

@misc{dilmegani2026,
  author = {Dilmegani, Cem and Sarı, Ekrem},
  title  = {{LLM Motori di Inferenza: vLLM vs LMDeploy vs SGLang}},
  year   = {2026},
  month  = apr,
  howpublished    = {\url{https://aimultiple.com/inference-engines}},
  note   = {AIMultiple. Consultato il 15 Aprile 2026}
}
Cem Dilmegani
Cem Dilmegani
Analista principale
Cem è analista principale presso AIMultiple dal 2017. AIMultiple fornisce informazioni a centinaia di migliaia di aziende (secondo SimilarWeb), tra cui il 55% delle aziende Fortune 500, ogni mese. Il lavoro di Cem è stato citato da importanti pubblicazioni globali come Business Insider, Forbes, Washington Post, società globali come Deloitte e HPE, ONG come il World Economic Forum e organizzazioni sovranazionali come la Commissione Europea. È possibile consultare l'elenco di altre aziende e risorse autorevoli che hanno citato AIMultiple. Nel corso della sua carriera, Cem ha lavorato come consulente tecnologico, responsabile acquisti tecnologici e imprenditore nel settore tecnologico. Ha fornito consulenza alle aziende sulle loro decisioni tecnologiche presso McKinsey & Company e Altman Solon per oltre un decennio. Ha anche pubblicato un report di McKinsey sulla digitalizzazione. Ha guidato la strategia tecnologica e gli acquisti di un'azienda di telecomunicazioni, riportando direttamente al CEO. Ha inoltre guidato la crescita commerciale dell'azienda deep tech Hypatos, che ha raggiunto un fatturato annuo ricorrente a 7 cifre e una valutazione a 9 cifre partendo da zero in soli 2 anni. Il lavoro di Cem in Hypatos è stato oggetto di articoli su importanti pubblicazioni tecnologiche come TechCrunch e Business Insider. Cem partecipa regolarmente come relatore a conferenze internazionali di settore. Si è laureato in ingegneria informatica presso l'Università di Bogazici e ha conseguito un MBA presso la Columbia Business School.
Visualizza il profilo completo
Ricercato da
Ekrem Sarı
Ekrem Sarı
Ricercatore di intelligenza artificiale
Ekrem è un ricercatore di intelligenza artificiale presso AIMultiple, specializzato in automazione intelligente, GPU, agenti di intelligenza artificiale e framework RAG.
Visualizza il profilo completo

Sii il primo a commentare

Il tuo indirizzo email non verrà pubblicato. Tutti i campi sono obbligatori. I commenti vengono lasciati nella loro lingua originale.

0/450