Seeweb Cloud GPU con Kubernetes: flessibilità al top e scalabilità automatica
Indice dell'articolo
Il mercato delle GPU (Graphics Processing Unit) è in costante e vorticosa crescita. Basti pensare che l’attuale valore di 65,27 miliardi di dollari si calcola che potrebbe raggiungere entro il 2029 una cifra pari a 274,21 miliardi. Un trend ascendente di questo tenore si spiega con l’impiego delle GPU come componente fondamentale nelle soluzioni di Intelligenza Artificiale sia nella fase di addestramento dei modelli, sia in quella di inferenza, ovvero di applicazione dei modelli addestrati nei contesti reali.
L’arrivo dell’IA generativa, in più, ha spinto una domanda sempre più forte verso l’elaborazione di enormi insiemi di dati. Se a ciò si aggiungono forme di IA più “tradizionali”, le analytics avanzate, la modellazione grafica e le simulazioni fisiche e finanziarie, si capisce bene che le funzionalità di calcolo vettoriale, intensivo e parallelo sono sempre più richieste dai carichi di lavoro aziendali. Ed è proprio questo tipo di calcoli quello in cui le GPU sono specializzate.
La domanda di Graphics Processing Unit
A una domanda così robusta si contrappone un’offerta di GPU che non riesce a soddisfare la domanda, complici le difficoltà produttive che interessano TSMC, il più grande produttore di semiconduttori al mondo, nonché diverse altre circostanze concomitanti che riguardano il packaging, la logistica dei chip e gli enormi ordini fatti dai giganti della tecnologia per la costruzione di nuovi data center.
Il paradosso quindi è che – seppure non esista uno shortage vero e proprio di GPU – la loro attingibilità non è comunque immediata e i costi di acquisto sono molto elevati. Quest’ultimo è un fattore che da una parte potrebbe dissuadere le aziende di piccole dimensioni dall’intraprendere un percorso di innovazione basato sull’IA, e dall’altra non è facile parametrare all’effettivo fabbisogno.
Se per esempio nella fase di addestramento del modello occorre una quantità di risorse molto elevata, in quella di inferenza la capacità di calcolo richiesta solitamente è inferiore. Il che espone qualsiasi acquisto di GPU al rischio del sovradimensionamento o a quello contrario del sottodimensionamento.
Non bisogna dimenticare che in un settore ancora sperimentale come quello dell’Intelligenza Artificiale, se si vuole fare vera innovazione è necessario mettere in conto di dover procedere per tentativi ed errori. In questo caso, un’ampia disponibilità di risorse di calcolo permette di “sbagliare più velocemente” e arrivare sul mercato con una soluzione efficace prima della concorrenza. A quel punto, però, tutte le risorse impiegate nell’addestramento saranno diventate sovrabbondanti.
La questione del costo poi non deve far dimenticare il tema, sempre più urgente, dei consumi energetici e della sostenibilità riferita alle GPU. Uno degli aspetti centrali aperti dall’intensificarsi dell’uso di Intelligenza Artificiale e supercalcolo riguarda i consumi energetici dei data center.
Fare un uso ponderato delle GPU, correttamente dimensionato alle effettive necessità del momento, è quindi un imperativo sia dal punto di vista del controllo dei costi, sia da quello della sostenibilità ambientale.
I vantaggi del servizio Cloud GPU
I principi e le motivazioni che hanno orientato lo spostamento al cloud delle infrastrutture IT aziendali generiche si ritrovano quindi amplificati se applicati al caso del calcolo GPU. La possibilità di evitare cospicui investimenti in conto capitale, dover attendere settimane per la consegna e l’installazione dell’hardware, poter invece “noleggiare” una risorsa con un canone basato sull’effettivo utilizzo orario, è un fattore che cambia completamente le regole del gioco, permettendo anche alle aziende che hanno limiti di budget l’accesso a risorse computazionali molto importanti.
I servizi di Cloud GPU non solo evitano gli investimenti infrastrutturali una tantum, ma non richiedono tutte le attività e le competenze coinvolte in una installazione on-premises. Sul mercato esistono varie modalità per usufruirne e che vanno dal noleggio on-demand a prezzi costanti alla prenotazione di risorse per periodi definiti a priori con diversi livelli di scontistica. E si parla sempre più spesso di arrivare anche a costi basati su meccanismi ad asta.
Configurare correttamente risorse GPU per usarle nei propri carichi di lavoro non è però banale dal punto di vista tecnico, specialmente in un ambiente – quello della IA e dell’analisi dei dati – in cui gli utenti hanno competenze più incentrate sullo sviluppo software che sull’amministrazione dei sistemi.
Come nel mondo cloud più generale, anche nel campo delle Cloud GPU la soluzione arriva dal raggiungimento di un livello di astrazione che rende sempre più trasparente e automatica la relazione tra le applicazioni e l’hardware sottostante: i container, e in particolare Kubernetes.
L’integrazione delle Cloud GPU in Kubernetes
L’integrazione di Kubernetes nel Cloud GPU rappresenta quindi una delle strade più interessanti per raggiungere il triplice scopo di costo equo, semplicità di gestione e sostenibilità. Come noto, Kubernetes è un sistema open-source di orchestrazione e gestione di container molto usato in ambito IA e di sviluppo, ma di cui si comincia solo ora a parlare in termini di virtualizzazione delle risorse hardware in generale e della GPU in particolare.
Seeweb propone insieme a Clastix – realtà specializzata nello sviluppo di soluzioni Kubernetes multi-tenant – K8s GPU, un servizio serverless GPU per IA basato su Kubernetes. In linea con le varie soluzioni Cloud GPU di Seeweb, che integrano tra loro ambienti cloud complessi, l’intento è quello di abilitare i team di sviluppo a sfruttare con maggiore efficienza infrastrutture GPU on-premises e architetture multi-cloud in modo armonioso e trasparente.
Nel caso del Cloud GPU integrato con Kubernetes, i punti di forza della proposta di Seeweb si concentrano anzitutto nel sollevare i clienti dall’onere di dover acquistare hardware on-premises per le proprie attività di addestramento e di inferenza dei rispettivi modelli, o quanto meno di estendere la capacità computazionale on-premises totalmente elastica in modalità on-demand.
Permette quindi di superare il problema della scarsità di GPU grazie all’accesso a migliaia di Graphics Processing Unit tramite lo stesso cluster Kubernetes usato in fase di sviluppo e sperimentazione, senza dover riscrivere applicazioni o pipeline.
In terzo luogo, offre un costo flessibile grazie a un utilizzo on-demand delle risorse, ovunque esse si trovino, con meccanismi di auto scaling con cui l’attingibilità delle risorse è immediata e non è soggetta a tempi di attesa imprevedibili, e i cui costi si interrompono non appena il lavoro è terminato.
Seeweb e k8sGPU: ecco come funziona
Per comprendere come funziona la Cloud GPU associata a Kubernetes, è utile ripercorrere gli step operativi che la caratterizzano. Il primo prevede di scaricare e installare l’agente k8sGPU nei cluster Kubernetes sulla propria infrastruttura. Questo agente “leggero” consente di creare un nodo virtuale all’interno del cluster interno, fungendo da ponte senza soluzione di continuità verso le GPU remote. Sviluppato sulla base del progetto Virtual Kubelet di Microsoft, l’agente garantisce la compatibilità con gli strumenti Kubernetes esistenti.
Una volta creato un nodo virtuale, è possibile pianificare i Pod (cioè la più piccola unità di un’applicazione Kubernetes) di machine learning come sui normali worker node. L’agente k8sGPU da parte sua gestirà l’allocazione dinamica delle GPU remote ed eseguirà i Pod su di esse come se fossero in un cluster locale.
Come anticipato, tramite l’auto scaling, l’agente K8sGPU sarà in grado allocare e di spostare dinamicamente le GPU remote in tempo reale, in maniera tale da conseguire un binomio ottimale di performance ed efficienza economica, in base ai parametri e ai limiti impostati dall’utente.
L’agente farà in modo che il costo coincida con il tempo effettivo di utilizzo della GPU, a differenza di quanto accade normalmente con il noleggio. Seeweb ha stimato che in media le GPU noleggiate rimangono inattive per oltre 12 ore al giorno. Ore di mancato utilizzo che però l’azienda continua a pagare.
Ecco perché l’abbinamento di Kubernetes alle Cloud GPU può rappresentare la chiave per tutti coloro che intendono sfruttare al massimo le Graphics Processing Unit per l’IA e il calcolo parallelo, senza spreco di costi.