L’ANALISI
llama.cpp b12221: corrette le scritture Metal FA
llama.cpp b12221 corregge scritture fuori limite in Metal Flash Attention. L’autore riporta 109 segnalazioni ridotte a zero su M2, non una nostra replica.

In breve: llama.cpp b12221 integra un controllo nel kernel Metal Flash Attention per evitare scritture fuori limite durante l’azzeramento di un buffer. La prova riportata dall’autore riguarda una configurazione M2 specifica, non certifica ogni modello o ogni percorso Metal. llama.cpp PR 31662: controllo del buffer Metal FA.
Verifica della release ufficiale b12221, dello stato di integrazione della PR 31662 e del diff di un file Metal. Nessuna compilazione o esecuzione su hardware Apple effettuata in questa analisi.
In quale parte di Metal interviene la patch?
Il cambiamento riguarda kernel_flash_attn_ext_vec e il buffer scratch associato al gruppo SIMD. La PR descrive un puntatore già spostato in base alla lane, mentre tutte le lane eseguivano l’azzeramento. Il diff aggiunge una condizione attorno a quel ciclo, coerente con il controllo usato negli aggiornamenti successivi. La portata è quindi un percorso preciso del kernel, non una riscrittura di Metal né una nuova funzione del modello.
llama.cpp PR 31662: controllo del buffer Metal FA · Diff ufficiale del kernel Metal.
Che cosa significano le 109 segnalazioni?
L’autore documenta Metal shader validation su M2 con macOS 27.2, head size 64 e una build di riferimento identificata nel testo della PR. Con la patch le segnalazioni di accesso fuori limite passano da 109 a zero. Il numero descrive quel controllo di validazione, non un tasso generale di crash e non una misura di latenza. Il fatto che il difetto riguardi memoria non basta nemmeno ad attribuirgli una classificazione di vulnerabilità o un impatto di sfruttabilità non documentati.
llama.cpp PR 31662: controllo del buffer Metal FA.
Quale versione include il fix?
La PR risulta integrata il 9 novembre e la release b12221 dello stesso giorno la richiama nelle note. La risposta REST ufficiale indica prerelease=true. Chi deve riprodurre il confronto deve conservare commit, binario precedente e impostazioni: usare un nome di build senza controllarne il contenuto può confrontare più modifiche insieme. Questa nota identifica il primo punto verificato qui, non raccomanda di sostituire automaticamente il binario di produzione.
llama.cpp PR 31662: controllo del buffer Metal FA · Release b12221 e stato pre-release.
Come controllare il proprio caso senza confondere le metriche?
In un ambiente di prova autorizzato, mantenere uguali modello, precisione, contesto, head size e opzioni Flash Attention. Acquisire i messaggi di validazione prima e dopo e verificare anche l’output applicativo. Separare poi il test prestazionale: assenza di una segnalazione e maggiore throughput sono risultati diversi. Se il proprio problema resta, riportare il riproduttore minimo con i parametri e il commit, senza generalizzare il risultato della PR a tutte le GPU Apple.
llama.cpp PR 31662: controllo del buffer Metal FA · Diff ufficiale del kernel Metal.
Condizioni e limitazioni
b12221 è una pre-release e il punto di introduzione del fix, non una dichiarazione sull’ultima build disponibile. Il risultato 109→0 è dell’autore su M2/macOS 27.2; nessuna nostra replica, CVE o promessa di velocità.
Checklist pratica
- Conservare versione e hash del binario precedente.
- Annotare modello, head size, contesto e opzioni Flash Attention.
- Ripetere la validazione Metal in un ambiente di prova autorizzato.
- Controllare correttezza dell’output oltre alle segnalazioni di memoria.
- Misurare la velocità separatamente e mantenere disponibile il rollback.