Apple Silicon ha apportato notevoli miglioramenti delle prestazioni con una grande efficienza energetica. Possiamo usare questi chip anche per il Deep Learning?
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 torchif __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