Scopri PyTorch 2.5 ed il Nuovo supporto per le GPU Intel
Con l'arrivo di PyTorch 2.5, Intel introduce il supporto per le sue GPU Data Center e Client. Questa innovazione permette di utilizzare le GPU Intel, incluse quelle della serie Intel® Data Center GPU Max e le GPU Client Intel®, in contesti di intelligenza artificiale sia su sistemi Linux che Windows, integrando PyTorch con la tecnologia SYCL per offrire un'esperienza utente coerente.
Requisiti Hardware e Software
Per iniziare, è necessario disporre di un hardware compatibile:
- Intel Data Center GPU Max Series – Supportato su sistemi Linux.
- Intel Client GPU – Supportato su Windows e Linux.
A livello di software, è essenziale installare:
- Driver per GPU Intel: consultare le istruzioni di installazione specifiche per la propria piattaforma.
- Pacchetti di supporto Intel: disponibili per l'integrazione con PyTorch.
- Ambiente: è necessario configurare correttamente le variabili di ambiente per garantire l'accesso ai componenti necessari.
Installazione di PyTorch 2.5 per GPU Intel
Le versioni preliminari di PyTorch 2.5 possono essere installate tramite pip
. Di seguito sono riportati i comandi per sistemi Linux e Windows.
Linux:
Per le versioni preliminari:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/test/xpu
Per le versioni nightly:
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpu
Windows:
Per le versioni preliminari:
pip3 install torch --index-url https://download.pytorch.org/whl/test/xpu
Per le versioni nightly:
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpu
In alternativa, è possibile costruire PyTorch e i pacchetti correlati a partire dal codice sorgente seguendo le istruzioni di installazione sul sito ufficiale di PyTorch.
Verifica della disponibilità della GPU Intel
Per verificare se la GPU Intel è disponibile, è possibile utilizzare il seguente comando in Python:
import torch
print(torch.xpu.is_available()) # torch.xpu è l'API per il supporto delle GPU Intel
Se il risultato è False
, è necessario controllare l'installazione del driver, dei pacchetti di supporto e la configurazione dell'ambiente.
Modifiche Minime al Codice
Se già utilizzate PyTorch con GPU NVIDIA (CUDA), la migrazione verso le GPU Intel è semplice. È sufficiente sostituire il riferimento a cuda
con xpu
:
Codice CUDA:
tensor = torch.tensor([1.0, 2.0]).to("cuda")
Codice per GPU Intel:
tensor = torch.tensor([1.0, 2.0]).to("xpu")
Esempi di Utilizzo Pratico di PyTorch 2.5 con GPU Intel
PyTorch 2.5 supporta sia il training che l'inferenza su GPU Intel, con diverse modalità di precisione come FP32, BF16, FP16 e Automatic Mixed Precision (AMP).
Inferenza con FP32:
import torch
import torchvision.models as models
model = models.resnet50(weights="ResNet50_Weights.DEFAULT")
model.eval()
data = torch.rand(1, 3, 224, 224)
model = model.to("xpu")
data = data.to("xpu")
with torch.no_grad():
model(data)
print("Execution finished")
Training con AMP:
import torch
import torchvision
LR = 0.001
train_dataset = torchvision.datasets.CIFAR10(root="datasets/cifar10/", train=True, download=True, transform=torchvision.transforms.ToTensor())
train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=128)
model = torchvision.models.resnet50()
criterion = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=LR, momentum=0.9)
scaler = torch.amp.GradScaler()
model.train()
model = model.to("xpu")
criterion = criterion.to("xpu")
for batch_idx, (data, target) in enumerate(train_loader):
data, target = data.to("xpu"), target.to("xpu")
with torch.autocast(device_type="xpu", dtype=torch.float16, enabled=True):
output = model(data)
loss = criterion(output, target)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
optimizer.zero_grad()
if (batch_idx + 1) % 10 == 0:
print(f"Iteration [{batch_idx+1}/{len(train_loader)}], Loss: {loss.item():.4f}")
Considerazioni Finali
Con il rilascio di PyTorch 2.5, Intel ha reso possibile utilizzare le proprie GPU per applicazioni AI sia nei data center che in dispositivi client, migliorando la flessibilità e la disponibilità di hardware per il deep learning. La transizione dalle GPU NVIDIA alle GPU Intel è resa agevole grazie alla compatibilità dell'API xpu
e al supporto per le diverse modalità di precisione.