Vai al contenuto principale
ConfrontiIntermedio6 min di lettura

Ollama vs llama.cpp: sotto il cofano

i
iaLocale Team
•
Ollama vs llama.cpp: sotto il cofano

Se ti sei mai chiesto come fa un modello linguistico a girare davvero sul tuo computer, la risposta passa quasi sempre da un unico motore: llama.cpp. E la maggior parte di chi usa Ollama non lo sa nemmeno, perché Ollama usa proprio llama.cpp sotto il cofano. Ma i due strumenti non sono la stessa cosa. Uno è il motore, l'altro è l'auto: motore potente da montare, ma l'auto ti mette pure le ruote, il cruscotto e il cambio automatico.

In questo articolo apriamo il cofano. Vediamo cosa c'è sotto, quando la differenza conta davvero e come scegliere con la testa, senza slogan.

Cos'è llama.cpp

llama.cpp è un motore di inferenza scritto in C/C++: esegue i modelli linguistici sul tuo hardware — CPU, GPU consumer, Apple Silicon — con un setup minimo e con le prestazioni al livello dello stato dell'arte. Si appoggia alla libreria ggml e il suo obiettivo dichiarato è l'inferenza di LLM (e VLM) con un setup minimo e prestazioni allo stato dell'arte, in locale e nel cloud. Il repository e il README di llama.cpp ne descrivono la visione e le capacità.

La forza di llama.cpp è il controllo. Ti offre:

  • Quantizzazione intera a 1,5/2/3/4/5/6/8 bit, per ridurre la memoria e accelerare l'inferenza.
  • Inferenza ibrida CPU+GPU: metti sulla GPU solo le layer che ci stanno in VRAM e lasci il resto in RAM, così modelli più grandi della VRAM girano comunque.
  • Un set completo di strumenti: llama-cli per chattare, llama-server (oggi anche llama serve) per un server con API compatibile OpenAI e una web UI integrata, llama-quantize per convertire i pesi, llama-bench per misurare i token al secondo, llama-imatrix per le quantizzazioni intelligenti.
  • Migliaia di flag: thread, layer da offload, contesto, flash attention, decodifica speculativa, grammare JSON, e molto altro.

In pratica, con llama.cpp tocchi le viti: ogni comportamento è un flag che decidi tu. È lo strumento giusto per chi vuole spremere l'ultima goccia di velocità o montare pipeline di inferenza su misura.

Cos'è Ollama

Ollama è un runtime un livello più sopra, scritto in Go. È un daemon che gira in background e mette sopra tre cose: un modello di packaging, una libreria di modelli e un'API. Il repository di Ollama e la documentazione ufficiale dettagliano l'installazione e i comandi.

  • ollama pull qwen3 scarica il modello dalla libreria di Ollama: un nome e via, senza cercare file GGUF, scegliere la quantizzazione, gestire i template di conversazione.
  • ollama run qwen3 lancia la chat in un attimo, con un'interfaccia a riga di comando semplice.
  • Il server esposto in locale parla API nativa e anche API compatibile OpenAI, così i tuoi tool e le tue app possono collegarsi senza sapere che dietro c'è un modello locale.

Il punto tecnico chiave: per gran parte dell'inferenza locale, Ollama usa una versione di llama.cpp che fissa e patcheggia. Quindi i due progetti non sono build intercambiabili dello stesso strumento: Ollama aggiunge packaging, download, template, gestione dei processi e API intorno al motore. Quando esce un modello nuovo, Ollama lo supporta nel momento in cui gli sviluppatori aggiornano la versione di llama.cpp che usano internamente.

La differenza, in una frase

llama.cpp è il motore; Ollama è l'auto che lo monta e ti fa partire. Stesso cuore, due filosofie diverse.

llama.cppOllama
Cosa èMotore di inferenza C/C++Runtime gestito (Go)
SetupBinario o build da sorgente, poi flag a manoUn install, poi ollama run
ModelliFile GGUF che scarichi tu (Hugging Face)Libreria con ollama pull
APIllama-server, compatibile OpenAIAPI nativa + compatibile OpenAI
InterfacciaCLI + web UI del serverCLI semplice, nessun GUI ufficiale
ControlloTotale: ogni flag, build customDefault sensati, meno tuning
Per chiTinkerer, massima performance, setup customAvvio rapido, sviluppatori, uso quotidiano

Quanto conta la velocità?

Qui sta il mito da sfatare. Poiché Ollama gira su llama.cpp, il motore è lo stesso: a parità di modello, quantizzazione e flag, la differenza di velocità pura è piccola. Le differenze reali vengono da due cose:

  1. I default. Ollama sceglie per te contesto, layer GPU e altri parametri. Se i suoi default non sono i tuoi ideali, lasci velocità sul tavolo. Con llama.cpp li decidi tu.
  2. Il modello esatto. Ollama serve le sue versioni dei modelli; puoi avere una quantizzazione o un'architettura leggermente diversa rispetto al GGUF che caricheresti a mano su llama-server.

La regola pratica: per l'uso quotidiano (chat, tool, prototipi) la velocità di Ollama è del tutto adeguata. Se stai facendo benchmark, o hai un modello grande che vuoi spingere al limite, o stai ottimizzando per un hardware specifico, allora il controllo di llama.cpp diventa un vantaggio misurabile — e qui llama-bench ti dà i numeri per capire cosa stai sacrificando.

Come scegliere (senza slogan)

Parti da Ollama se vuoi essere operativo in minuti, colleghi un'app o un tool esistente via API, e non vuoi pensare a file GGUF, template e flag. È la strada giusta per la maggior parte dei casi, ed è lo standard de facto per girare IA locale in produzione leggera.

Scendi a llama.cpp se vuoi la massima performance su un hardware preciso, usi decodifica speculativa o quantizzazioni avanzate, monti un servizio con API OpenAI senza il layer aggiuntivo del daemon, o semplicemente ti diverte aprire il cofano. Il passaggio da Ollama a llama.cpp è a basso rischio: entrambi espongono un endpoint compatibile OpenAI, quindi l'API delle tue app non cambia.

Possono convivere? Sì. Molti usano Ollama per il lavoro quotidiano e llama-server quando serve il controllo. Niente vieta di averli entrambi sullo stesso computer.

In pratica: i comandi

Con Ollama:

ollama pull qwen3
ollama run qwen3

Con llama.cpp:

llama-server -m qwen3-q4_k_m.gguf -c 32768 -ngl 99
# oppure, con download diretto da Hugging Face
llama serve -hf ggml-org/qwen3:Q4_0

Nel secondo caso scegli tu contesto (-c), layer sulla GPU (-ngl) e quantizzazione (il file .gguf), mentre nel primo Ollama gestisce tutto al posto tuo.

Il quadro d'insieme

Ollama e llama.cpp non sono rivali: sono due livelli della stessa pila. Se ti interessa il mondo dell'IA locale, Ollama è il punto di ingresso più semplice; llama.cpp è la porta d'uscita quando vuoi davvero il controllo. Capire che uno contiene l'altro ti toglie il dubbio "quale è migliore" e ti mette una domanda più utile: quanto controllo mi serve oggi, e quanto mi costa averlo.

Le due cose non si escludono. Inizia con il runtime semplice, e quando un limite ti chiede più potenza, apri il cofano: lì trovi già tutto quello che ti serve.

Fonti

Articolo generato con IA

In questi percorsi

#Benchmark#Inferenza locale#llama.cpp#Ollama#Runtime
Condividi:

Ti è piaciuto questo articolo?

Iscriviti alla newsletter per ricevere nuovi tutorial e guide.

Dopo l'iscrizione ricevi una email di conferma (double opt-in). Senza conferma non inviamo nulla. Nessuno spam, ti promettiamo.

Articoli Correlati

NVIDIA, AMD e Intel per l'IA locale: quale piattaforma scegliere
Confronti6 min di lettura

NVIDIA, AMD e Intel per l'IA locale: quale piattaforma scegliere

CUDA, ROCm o Vulkan? Confrontiamo le tre piattaforme per l'IA locale sulla base di ciò che è davvero disponibile: stack software ufficiali, schede per fascia di VRAM (12, 16 e 24GB) e velocità reali. Dove resta la scelta ovvia, dove AMD batte per rapporto qualità-prezzo e quando ha senso uscire da NVIDIA.

iaLocale Team - 14 ottobre 2026Leggi di più