Computing Confidenziale su nVIDIA H100 GPU: Uno Studio di Benchmark delle Prestazioni

Cappex
Phala Italia
Published in
8 min readSep 6, 2024

Autori:

  • Jianwei Zhu — jianweiz@phala.network
  • Hang Yin — hangyin@phala.network
  • Shunfan Zhou — shelvenzhou@phala.network

Data: 6 settembre 2024

Traduzione dello studio originale in lingua inglese: https://github.com/Phala-Network/h100-llm-benchmark/blob/master/pdf/main.pdf

Abstract

Questo report valuta l’impatto sulle prestazioni dell’abilitazione dei Trusted Execution Environments (TEE) su GPU nVIDIA H100 per attività di inferenza di modelli linguistici di grandi dimensioni (LLM). Abbiamo misurato il sovraccarico introdotto dalla modalità TEE attraverso vari modelli e lunghezze di token, concentrandoci sul collo di bottiglia causato dai trasferimenti di dati tra CPU e GPU tramite PCIe. I nostri risultati mostrano che, sebbene ci sia un sovraccarico computazionale minimo all’interno della GPU, la penalizzazione complessiva delle prestazioni è dovuta principalmente ai trasferimenti di dati. Per la maggior parte delle query tipiche dei LLM, il sovraccarico resta sotto il 5%, con modelli più grandi e sequenze più lunghe che sperimentano un sovraccarico quasi nullo.

1. Introduzione

I Trusted Execution Environments (TEE) stanno diventando sempre più importanti nel machine learning e nell’intelligenza artificiale a causa delle crescenti esigenze di sicurezza, sia nelle applicazioni aziendali che in quelle decentralizzate. L’introduzione delle GPU abilitate con TEE, come la nVIDIA H100, aggiunge un ulteriore livello di protezione per i dati sensibili, ma potrebbe influenzare le prestazioni. Comprendere questi compromessi, specialmente per compiti di machine learning su larga scala, è fondamentale per l’adozione del TEE in applicazioni di intelligenza artificiale ad alte prestazioni.

Questo rapporto quantifica il sovraccarico delle prestazioni derivante dall’abilitazione del TEE su GPU nVIDIA H100 durante le attività di inferenza di LLM, esaminando dove si verifica il sovraccarico e in quali condizioni può essere minimizzato.

2. Background

2.1 Trusted Execution Environment

Un TEE è una funzionalità di sicurezza basata su hardware che isola i calcoli, impedendo l’accesso e la manomissione non autorizzati — anche dal sistema operativo o dal proprietario fisico dell’hardware. Come tecnologia centrale per abilitare il Confidential Computing, i TEE creano enclavi sicure dove i dati e il codice sensibili vengono elaborati con crittografia, garantendo la riservatezza e l’integrità anche se il sistema più ampio viene compromesso. Tradizionalmente implementati nelle CPU, i TEE sono stati estesi alle GPU da nVIDIA nel 2023, consentendo calcoli a prova di manomissione e confidenziali all’interno della GPU con un impatto minimo sulle prestazioni.

2.2 nVIDIA H100 GPU

La GPU nVIDIA H100 rappresenta un traguardo significativo come la prima GPU a supportare il TEE. In modalità TEE, la H100 opera in un ambiente isolato e sicuro dove i trasferimenti di dati tra CPU e GPU sono criptati. Questo è facilitato dai “bounce buffers”, che proteggono tutti gli input e output durante il transito tra la memoria criptata della CPU e la memoria interna della GPU.

Per mantenere la sicurezza end-to-end, la H100 lavora in congiunzione con i TEE delle CPU, come il TDX di Intel o l’SEV-SNP di AMD, garantendo che i canali di comunicazione tra il driver della GPU e il software che interagisce siano sicuri. Questo impedisce l’accesso non autorizzato e garantisce l’integrità dei dati durante tutto il processo.

La H100 implementa anche l’attestazione remota per verificare l’identità della GPU e l’autenticità del suo firmware. Secure Boot rafforza ulteriormente la sicurezza, assicurando che venga eseguito solo firmware autenticato durante il processo di avvio della GPU.

2.3 Impatto sulle Prestazioni

L’abilitazione del TEE sulla GPU nVIDIA H100 introduce sovraccarichi di prestazioni principalmente a causa della crittografia e decrittografia aggiuntive durante i trasferimenti sicuri dei dati. Mentre il calcolo interno della GPU rimane invariato, il principale collo di bottiglia si trova nell’I/O CPU-GPU, in particolare quando i dati vengono scambiati tramite PCIe. Questo impatto varia in base alla dimensione del trasferimento dei dati. Le sezioni seguenti presentano i risultati sperimentali che quantificano questi effetti in vari casi d’uso.

Con la GPU NVIDIA H100 abilitata al TEE, diventa fondamentale quantificare i compromessi delle prestazioni durante i casi d’uso pratici. Nella prossima sezione illustreremo la metodologia utilizzata per valutare l’impatto delle prestazioni di TEE durante le operazioni di inferenza LLM.

3. Metodologia

Per valutare il sovraccarico delle prestazioni, abbiamo condotto esperimenti confrontando il throughput e la latenza di inferenza con la modalità TEE abilitata e disabilitata, utilizzando diversi modelli, lunghezze di input e output, e configurazioni di dimensione del batch. Il nostro obiettivo principale è rivelare la penalizzazione delle prestazioni in scenari di inferenza di modelli di linguaggio di grandi dimensioni (LLM).

3.1 Metriche

Le principali metriche valutate seguono tipici framework di valutazione:

  • TTFT (Time To First Token): Il tempo che intercorre tra l’arrivo della richiesta e la generazione del primo token di output. Include il ritardo di schedulazione e l’elaborazione del prompt. Un TTFT inferiore è essenziale per le applicazioni in tempo reale, mentre un TTFT più elevato è accettabile in processi batch.
  • ITL (Inter Token Latency): Il tempo tra la generazione di ciascun token durante la decodifica. Questo influenza direttamente la percezione della velocità del modello. Una velocità di circa 6 token al secondo è necessaria per garantire un’esperienza fluida, assumendo una velocità di lettura media.
  • TPS (Token per Second): Il tasso medio di generazione di token durante la decodifica. Viene calcolato come il tempo totale di decodifica diviso per il numero di token generati.
  • Latenza: Il tempo totale di esecuzione per richiesta, inclusi la schedulazione, l’elaborazione del prompt e la generazione dei token. Una latenza ridotta migliora il throughput del sistema, specialmente sotto elevati carichi di query.
  • QPS (Query per Second): Il carico massimo che un sistema può gestire rispettando i target di latenza. Un QPS più alto riduce i costi di servizio ed è una misura chiave della capacità del sistema.

3.2 Scenari di Test

Gli esperimenti sono stati strutturati per esplorare l’impatto della modalità TEE sotto diverse condizioni:

  • Modalità TEE ON vs. Modalità TEE OFF: I test sono stati eseguiti con la modalità TEE alternativamente abilitata e disabilitata sulla GPU H100, consentendo un confronto diretto delle prestazioni.
  • Lunghezze delle Sequenze: Abbiamo testato diverse lunghezze di token campionando il Dataset ShareGPT per simulare diversi task di inferenza LLM.
  • Dimensione del Batch: Abbiamo testato sia dimensioni del batch fisse (1, 4 e 16) sia dimensioni del batch dinamiche determinate da vLLM per simulare le prestazioni per richieste in tempo reale e in batch.

3.3 Configurazione Sperimentale

3.3.1 Infrastruttura

Abbiamo configurato gli esperimenti con il seguente hardware:

  • GPU: NVIDIA H100 NVL (94 GB, 3,9 TB/s di banda)
  • CPU: AMD EPYC 9V84 96-Core Processor con SEV-SNP
  • Memoria: 314 GB
  • Versioni dei driver:
  • CUDA 12.5 (versione del driver 555.42.02)
  • Versione del driver del kernel 550.90.07

3.3.2 Applicazione

Gli esperimenti hanno utilizzato le suite di benchmark di vLLM v0.5.4.

3.3.3 Modelli

Sono stati utilizzati tre LLM per l’inferenza:

  • Meta-Llama-3.1–8B-Instruct
  • Phi-3–14B-128k-Instruct
  • Meta-Llama-3.1–70B-Instruct con quantizzazione a 4-bit per adattarsi a una singola GPU H100.

4. Risultati

Conclusione 1: Il sovraccarico medio è inferiore al 7%.

Abbiamo quantificato il sovraccarico misurando il throughput con la modalità TEE abilitata rispetto a quella disabilitata, attraverso diverse dimensioni di input e configurazioni di modelli, come mostrato nella Tabella 1.

Tabella 1: Confronto delle prestazioni delle modalità TEE-on e TEE-off per vari modelli in termini di TPS (token al secondo) e QPS (query al secondo).

Il throughput viene misurato in due modi: il throughput medio dei token emessi al secondo (TPS) e quello delle richieste parallele che l’hardware può gestire (PQS). Il TPS è misurato eseguendo il modello con una dimensione di batch pari a 1. Mostra il puro overhead di latenza introdotto dalla modalità TEE. Riflette le prestazioni delle richieste in tempo reale. Il QPS è misurato massimizzando il throughput della query con una dimensione del batch ottimizzata dinamicamente. Riflette il minimo overhead medio introdotto dalla modalità TEE.

Conclusione 2: Il sovraccarico si riduce fino a diventare quasi nullo con l’aumento delle dimensioni del modello.

Il modello più piccolo (Llama-3.1–8B) presenta il sovraccarico più elevato. Il modello di dimensioni medie (Phi3–14B-128k) ha circa 2/3 del sovraccarico rispetto al modello più piccolo. Il modello più grande (Llama-3.1–70B) ha un sovraccarico quasi nullo.

Figura 1: Overhead del throughput in base alle diverse dimensioni dei token (lunghezza della sequenza di ingresso e di uscita). Le sequenze brevi non superano i 100 token. Le sequenze medie non superano i 500 token. Le sequenze lunghe sono comprese tra 501 e 1500 token.

Conclusione 3: La latenza è il principale fattore che contribuisce al sovraccarico della modalità TEE.

Come mostrato nella Tabella 2, il TTFT ha un sovraccarico maggiore rispetto all’ITL, indicando che il collo di bottiglia è probabilmente introdotto dall’I/O invece che dal calcolo all’interno del TEE. Tuttavia, l’overhead diventa banale quando si ospitano modelli di calcolo pesanti come Llama-3.1–70B.

Tabella 2: Confronto tra TTFT (Time to First Token) e ITL (Inter Output Token Latency) per le modalità TEE-on e TEE-off nei vari modelli.

Conclusione 4: Il sovraccarico si riduce con l’aumento delle dimensioni dei token.

Come mostrato nella Tabella 3, il sovraccarico del throughput diminuisce con l’aumento della lunghezza della sequenza, misurata in base al numero totale di token di input e output.

Tabella 3: Confronto delle prestazioni delle modalità TEE-on e TEE-off su diverse lunghezze di sequenza in termini di TPS (token per secondo). Le sequenze brevi non superano i 100 token. Le sequenze medie non superano i 500 token. Le sequenze lunghe sono comprese tra 501 e 1500 token.

Conclusione 5: La modalità TEE può raggiungere un throughput tipico.

I nostri esperimenti hanno rivelato che, con input di dimensioni medie, la GPU nVIDIA H100 raggiunge 130 TPS per il modello Llama3–8B, mentre il modello Phi-3–14B raggiunge circa 6 TPS. Questi risultati dimostrano la robusta prestazione della GPU H100 su modelli di complessità variabile.

Dati sperimentali più dettagliati sono riportati nelle Figure 2, 3 e 4.

5. Conclusioni

I nostri risultati mostrano che, con l’aumento delle dimensioni degli input, l’efficienza della modalità TEE aumenta significativamente. Quando il tempo di calcolo all’interno della GPU domina il tempo di elaborazione complessivo, il sovraccarico I/O introdotto dalla modalità TEE diminuisce, consentendo all’efficienza di avvicinarsi al 99%.

La crescita dell’efficienza è più pronunciata nei modelli più grandi, come il Phi3–14B-128k e il Llama-3.1–70B, a causa delle loro maggiori esigenze computazionali, che portano a tempi di elaborazione più lunghi all’interno della GPU. Di conseguenza, il sovraccarico I/O diventa sempre più irrilevante man mano che aumentano le dimensioni dei modelli.

La dimensione totale dei token (somma della dimensione dei token di input e output) influenza significativamente il sovraccarico del throughput. Un conteggio totale di token più elevato porta a una maggiore efficienza, poiché migliora il rapporto tra tempo di calcolo e tempo I/O.

Questi risultati sottolineano la scalabilità della modalità TEE nella gestione di attività di inferenza di LLM su larga scala, specialmente con l’aumento delle dimensioni degli input e della complessità dei modelli. Il sovraccarico minimo in scenari ad alto carico computazionale convalida la sua applicabilità in carichi di lavoro AI sicuri e ad alte prestazioni.

Informazioni su Phala

Phala Network è un cloud decentralizzato che offre calcolo sicuro e scalabile per il Web3.

Con i Phat Contracts, un innovativo modello di programmazione che consente elaborazioni off-chain senza fiducia, gli sviluppatori possono creare nuovi casi d’uso per il Web3.

Subscribe | Twitter | Youtube | Github | Discord | Forum | Telegram

--

--