Il team di PyTorch ha recentemente annunciato una grande novità: ora è possibile eseguire i modelli Llama 2 e 3 sugli smartphone senza dover scrivere una sola riga di codice. Questo è stato reso possibile grazie a un kernel TK-GEMM Triton FP8 GEMM ottimizzato che sfrutta la parallelizzazione SplitK.
Questo miglioramento è stato progettato per aumentare le prestazioni durante l’inferenza di batch di piccole dimensioni. I risultati sono impressionanti: velocità fino a 1,94 volte più veloci rispetto alla configurazione Triton originale, 1,87 volte più veloci di cuBLAS FP8 e 1,71 volte più veloci di cuBLAS FP16 per attività Llama3-70B su GPU NVIDIA H100.
La parallelizzazione di SplitK consiste nel creare più unità di lavoro lungo la dimensione k, suddividendo così le attività in parti più piccole e riducendo i ritardi, soprattutto per le matrici con valori M più piccoli.
Inoltre, l’utilizzo dei grafici CUDA riduce il sovraccarico di avvio della CPU, aumentando la velocità fino a 6,4 volte per un singolo livello di attenzione nei modelli Llama3-70B. Queste ottimizzazioni rappresentano un importante passo avanti nelle prestazioni e indicano possibili miglioramenti futuri nell’inferenza dell’8° PQ.
Con la capacità di eseguire modelli Llama su dispositivi mobili, gli sviluppatori possono creare una vasta gamma di app intelligenti che sfruttano la potenza di questi avanzati modelli linguistici senza la necessità di conoscenze approfondite di codifica. Si pensi a assistenti virtuali intelligenti, app personalizzate per l’apprendimento delle lingue, strumenti di traduzione in tempo reale e molto altro.
Inoltre, sono state fornite istruzioni per eseguire Llama 2 e 3 su dispositivi iOS e Android.
Il team PyTorch ha sfruttato il nuovo tipo di dati FP8, introdotto da Nvidia, Arm e Intel, che offre significativi miglioramenti del throughput rispetto ai precedenti tipi in virgola mobile a 16 bit. Questo tipo di dati è costituito da due formati: E4M3 ed E5M2, che promettono di aumentare le prestazioni delle reti Transformer.
Infine, il team ha individuato possibili strade per ulteriori ottimizzazioni future, tra cui lo sfruttamento dell’unità hardware TMA (Tensor Memory Accelerator) e il miglioramento dell’utilizzo di Tensor Core. Questi sviluppi potrebbero portare a miglioramenti delle prestazioni ancora più significativi in futuro.