3 modi per sfruttare la GPU di Apple Silicon per il deep learning |  di Jiřà MoravÄ Ãk |  Marzo 2024

 | Intelligenza-Artificiale

Apple Silicon ha apportato notevoli miglioramenti delle prestazioni con una grande efficienza energetica. Possiamo usare questi chip anche per il Deep Learning?

Immagine dell'autore

Apple Silicon ha offerto notevoli miglioramenti delle prestazioni abbinati a un’eccellente efficienza energetica. Ma questi chip possono essere utilizzati anche per il Deep Learning? Assolutamente!

In questo articolo esploreremo 3 modi in cui la GPU di Apple Silicon può essere sfruttata per una varietà di attività di deep learning.

Il modo più semplice per utilizzare la GPU per il Deep Learning è tramite Shader prestazioni metallo (MPS). MPS estende il PyTorch framework per sfruttare le GPU su Mac.

Per utilizzare il backend MPS, avrai bisogno di:

  • macOS 12.3 o successivo
  • Python 3.7 o successivo

Creiamo uno script per verificare se MPS è impostato correttamente. Per prima cosa dovremo creare una directory con un ambiente virtuale e installare PyTorch:

mkdir mps_test
cd mps_test
python3 -m venv .venv
source .venv/bin/activate
pip install torch

Successivamente, creeremo un file Python, check.py con il seguente codice:

import torch

if __name__ == '__main__':
# Check if MPS backend is available in PyTorch
if torch.backends.mps.is_available():
# Create a vector on the MPS device
x = torch.ones(1, device='mps')
print(x)
else:
print('MPS device not found.')

Eseguiamolo:

python check.py

L'output dovrebbe mostrare:

tensor((1.), device='mps:0')

Ora puoi sfruttare MPS in qualsiasi codice PyTorch. Di solito, vedrai quanto segue in molti script PyTorch:

model.to('cuda')

Puoi sostituirlo con:

model.to('mps')

e goditi l'accelerazione GPU sul tuo Apple Silicon!

MLX è un framework di array per l'apprendimento automatico su Apple Silicon. È sviluppato dal team di ricerca Apple ML. MLX è…

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *