Adesso anche le GPU NVIDIA possono accelerare il machine learning su macOS
MLX, il framework di machine learning sviluppato da Apple e ottimizzato per i chip Apple Silicon, sta per compiere un notevole passo avanti. Grazie all’introduzione di un backend CUDA, il supporto alle GPU NVIDIA è ora una realtà. Per il mondo dell’intelligenza artificiale, questa notizia è molto più importante di quanto sembri.
Il lavoro è guidato dal developer @zcbenz su GitHub, che ha iniziato a sviluppare il supporto a CUDA qualche mese fa. Dopo aver suddiviso il progetto in più moduli, ha iniziato a integrarli progressivamente nel ramo principale di MLX. Il backend è ancora in fase di sviluppo, ma le operazioni fondamentali come la moltiplicazione delle matrici, la softmax, le riduzioni, l’ordinamento e l’indicizzazione sono già funzionanti e testate.
Per chi non lo conoscesse, CUDA (Compute Unified Device Architecture) è l’equivalente di Metal di NVIDIA, ovvero una piattaforma progettata per sfruttare al massimo l’hardware della società, soprattutto per quanto riguarda il calcolo parallelo ad alte prestazioni. È lo standard di fatto per l’addestramento dei modelli AI su GPU NVIDIA ed è integrato nei framework PyTorch e TensorFlow.
MLX, invece, è stato progettato da Apple per sfruttare Apple Silicon e Metal. Tuttavia, l’aggiunta del supporto a CUDA cambia le carte in tavola. Ora è possibile sviluppare e testare i modelli CUDA direttamente su Mac con MLX e poi scalarli senza problemi su cluster di GPU NVIDIA che rimangono il cuore pulsante del machine learning su larga scala.
Ci sono ancora dei limiti. Non tutti gli operatori MLX sono stati implementati nel backend CUDA e il supporto per le GPU AMD è ancora più lontano. L’apertura verso CUDA rappresenta comunque un passo cruciale. Per i ricercatori, gli sviluppatori e gli ingegneri dell’intelligenza artificiale, questo significa poter prototipare più rapidamente, sperimentare di più e, in definitiva, ottenere risultati migliori in meno tempo.
Chi volesse provare, può già trovare tutto su GitHub.