
Perché la tua GPU da 30.000€ non rende come credevi: L’Ingegneria dell’Inferenza LLM in Produzione
C’è un errore di valutazione che continua a pesare sui bilanci infrastrutturali delle aziende che scalano modelli di intelligenza artificiale: presumere che la velocità di generazione dei token dipenda principalmente dalla potenza di calcolo (FLOPS) della GPU.
Se aggiorni un cluster da NVIDIA A100 a H100, ti aspetti un incremento prestazionale fino a 3 volte coerente con il throughput teorico del chip. Eppure, in fase di generazione, la latenza per token rimane spesso invariata.
Il motivo risiede nella fisica dei semiconduttori: la generazione dei token negli LLM è un problema di Memory Bandwidth (larghezza di banda della memoria) travestito da problema di calcolo.
Se stai progettando un’infrastruttura aziendale e vuoi evitare sovraprezzi inutili, la nostra business unit di Sviluppo ed Engineering AI di Impesud analizza proprio questi colli di bottiglia per ottimizzare il TCO infrastrutturale.
Il Roofline Model: Prefill vs. Decode Phase
Per capire come ottimizzare un’infrastruttura di inferenza, è necessario distinguere le due fasi d’esecuzione di un Transformer:
- Prefill Phase (Compute-Bound): Il modello elabora il prompt di input in parallelo. In questa fase i Tensor Core lavorano a pieno regime; la saturazione della matrice di calcolo è elevata e le prestazioni dipendono dai TFLOPS erogati dalla GPU.
- Decode Phase (Memory-Bound): Il modello genera i token uno alla volta, in modo autoregressivo. Per produrre un singolo token, la GPU deve trasferire dalla High Bandwidth Memory (HBM) alla SRAM di calcolo tutti i pesi del modello e l’intero KV Cache accumulato.
Una NVIDIA A100 eroga circa 312 TFLOPS in FP16, ma muove “solo” 2 TB/s di dati tra HBM e i core di calcolo. Se la GPU impiega 1 microsecondo per eseguire i calcoli algebrici ma ne attende 15 per trasferire i dati dalla memoria, passare a una GPU con più FLOPS lascerà il sistema comunque in stato di attesa passiva (idle state).
1. FlashAttention (I/O-Aware Attention) & FlashDecoding
L’attenzione standard scrive e rilegge l’intera matrice N x N nella HBM, con un fattore di memoria quadratico O(N^2) rispetto alla lunghezza della sequenza.
- Come funziona: FlashAttention (sviluppato da Tri Dao) divide le matrici Q, K, V in blocchi (tiles) dimensionati per la SRAM on-chip (la memoria ultraveloce integrata nel chip). L’attenzione viene calcolata internamente senza mai materializzare la matrice intermedia sulla HBM.
- Evoluzione industriale: Per contesti ultra-lunghi (128k+ token), FlashAttention classico soffre la fase di decode. Oggi si adotta FlashDecoding / FlashDecoding+, che parallelizza il calcolo della KV Cache lungo la dimensione della sequenza sfruttando più Streaming Multiprocessors (SM) simultaneamente.

2. PagedAttention, KV Cache Quantization & Offloading
Nelle allocazioni tradizionali si riserva un blocco continuo di VRAM pari alla massima lunghezza teorica dell’output. I benchmark del paper ufficiale su PagedAttention e vLLM dimostrano che dal 60% all’80% della VRAM viene sprecata in frammentazione interna.
- Come funziona: PagedAttention applica il concetto di memoria virtuale dei sistemi operativi alla VRAM. La memoria KV Cache viene allocata dinamicamente in pagine di dimensione fissa tramite una Block Table.
- Evoluzione industriale: La sola paginazione non basta per contesti estesi o ad alto traffico. Le architetture moderne integrano la quantizzazione della KV Cache a FP8 o INT4 e l’offloading gerarchico (spostamento dei blocchi inattivi su memoria RAM host o SSD NVMe via PCIe).

tramite Block Tables. Fonte: Medium
3. Continuous Batching (Iteration-Level Scheduling)
Nel batching statico tradizionale, un gruppo di richieste deve attendere la risposta più lunga prima di liberare gli slot di calcolo.
- Come funziona: Introdotto da progetti come Orca, il continuous batching interviene a livello di singolo ciclo di decoding. Non appena una richiesta emette il token
<EOS>, lo slot libero viene riempito da una nuova richiesta in coda dalla fase di prefill.
4. Speculative Decoding, EAGLE & Native Multi-Token Prediction (MTP)
Leggere un modello da 70B+ parametri per ogni singolo token genera un sovraccarico di I/O consistente.
- Come funziona: Un modello “draft” più piccolo genera in anticipo K token speculativi; il modello target esegue un singolo forward pass per verificare tutti i K token in parallelo tramite Speculative Decoding, garantendo la medesima distribuzione di output del modello principale.
- Evoluzione industriale: I modelli draft separati sono stati superati da approcci come EAGLE-3 (che specula sugli hidden states invece che sui token finali) e da architetture con Multi-Token Prediction (MTP) integrato direttamente nei pesi del modello target.
5. Kernel Fusion
Ogni operazione PyTorch standard (MatMul, LayerNorm, SiLU) invoca un kernel GPU dedicato che scrive i risultati intermedi in HBM. Compilatori come TensorRT-LLM e torch.compile fondono queste operazioni in un unico kernel personalizzato, mantenendo i dati nei registri di memoria e nella SRAM.
Il Cambio di Paradigma: L’Oltre vLLM e la Gestione Multi-Modello
I framework di inferenza tradizionali sono stati concepiti assumendo che un singolo modello monopolizzi l’intera GPU, pre-allocando quasi tutto lo spazio VRAM per la KV Cache.
Nei sistemi enterprise reali, una pipeline (ad esempio in architetture Agentiche o RAG avanzate) comprende:
- Un modello di Embedding
- Un modello di Reranking
- Modelli leggeri di Classificazione e Guardrails
- L’LLM principale
Isolare ciascun modello nel proprio microservizio comporta il riservare GPU dedicate anche a modelli da poche centinaia di megabyte. Progetti open-source emergenti come Superlinked SIE mirano a risolvere questo problema consentendo la condivisione dinamica della VRAM tra più modelli.
Le Soluzioni Architetturali Emergenti
- Disaggregated Serving (Prefill/Decode Separation): Separare fisicamente i nodi GPU. Le schede ad alta potenza di calcolo gestiscono la fase Compute-Bound (Prefill), mentre i nodi ad alta larghezza di banda e VRAM gestiscono la fase Memory-Bound (Decode), scambiandosi la KV Cache via rete ad alta velocità (RDMA/InfiniBand).
- Architetture di Attention Compresse (MLA e GQA): Il passaggio da Multi-Head Attention (MHA) a Grouped-Query Attention (GQA) e, più di recente, a Multi-Head Latent Attention (MLA) permette di comprimere la dimensione della KV Cache fino a 64 volte proiettandola in uno spazio latente compresso.
- Resilienza con State Checkpointing: Negli agenti a lungo raggio, l’efficienza richiede tolleranza ai guasti. L’integrazione dello state checkpointing (come implementato da CrewAI) consente di salvare lo stato dell’agente ad ogni evento critico, permettendo il ripristino o il branching dell’esecuzione senza ricalcolare contesti già elaborati.
Considerazioni per la Roadmap Tecnologica
- Analisi del Bottleneck: Prima di pianificare l’acquisto di nuovo hardware, analizza le metriche di occupazione I/O e l’efficienza della KV Cache. L’adozione di PagedAttention, quantizzazione e GQA/MLA garantisce spesso incrementi di throughput superiori rispetto a un semplice aggiornamento di scheda.
- Ottimizzazione di Pipeline: Valuta la condivisione della VRAM tra i sotto-modelli della pipeline per evitare la frammentazione delle risorse infrastrutturali.
- Pianificazione dell’Architettura: Modella i costi valutando il Total Cost of Ownership (TCO) dell’intera catena di elaborazione dei dati, dal pre-processing al salvataggio dello stato degli agenti.
Per un’analisi della tua infrastruttura corrente o per progettare pipeline AI scalabili ad alte prestazioni, puoi richiedere una consulenza con il team tecnico di Impesud.
📚 Fonti
- FlashAttention: Dao, T., Fu, D. Y., Ermon, S., Rudra, A., & Ré, C. (2022). FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness. arXiv:2205.14135.
- PagedAttention & vLLM: Kwon, W., Li, Z., Xie, S., Yan, Y., Zheng, L., Sheng, Y., … & Stoica, I. (2023). Efficient Memory Management for Large Language Model Serving with PagedAttention. SOSP ’23. arXiv:2309.06180.
- Continuous Batching (Orca): Yu, G. I., Jeong, J. S., Kim, G. W., Lee, S., Choi, E., & Chun, B. G. (2022). Orca: A Distributed Serving System for Transformer-Based Generative Models. OSDI ’22.
- Speculative Decoding: Leviathan, Y., Kalman, M., & Matias, Y. (2023). Fast Inference from Transformers via Speculative Decoding. ICML 2023. arXiv:2211.17192.
- Multi-Head Latent Attention (MLA): DeepSeek-AI. (2024). DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model. arXiv:2405.04434.
- Disaggregated Serving: Patel, P., Choukse, A., Zhang, H., Shah, A., & Ramjee, R. (2024). Splitwise: Efficient Generative LLM Serving Using Disaggregated Compute. ISCA 2024.
- Open Source Frameworks: Superlinked SIE GitHub Repository
e CrewAI GitHub Repository.

Founder di Impesud e Head of AI con oltre 20 anni di esperienza IT. Nel ruolo di Senior AI Production Lead, guida la transizione tecnologica delle aziende Enterprise unendo solide metodologie di Project Management ad architetture di Data Engineering scalabili e Sistemi Agentici complessi.
