Apple Performance Métal

Home PDF

Voici un script pour tester les performances de Metal (GPU) en utilisant PyTorch.

import torch
import argparse
import time

parser = argparse.ArgumentParser(description="Tester torch avec MPS ou CPU.")
parser.add_argument("--device", type=str, default="mps", choices=["mps", "cpu"], help="Périphérique à utiliser (mps ou cpu)")
args = parser.parse_args()

if args.device == "mps":
    if torch.backends.mps.is_available():
        print("Metal est disponible")
        device = torch.device("mps")
    else:
        print("Metal n'est pas disponible, utilisation du CPU à la place")
        device = torch.device("cpu")
elif args.device == "cpu":
    device = torch.device("cpu")
    print("Utilisation du CPU")
else:
    print("Périphérique non valide spécifié, utilisation du CPU à la place")
    device = torch.device("cpu")

# Créer un tenseur et le déplacer vers le périphérique spécifié
x = torch.randn(5000, 5000, device=device)
y = torch.randn(5000, 5000, device=device)

# Effectuer un calcul plus complexe
start_time = time.time()
result = torch.matmul(x, y)
for _ in range(10):
    result = torch.matmul(result, y)
end_time = time.time()

# Afficher le résultat
print(result)
print(f"Temps écoulé: {end_time - start_time:.4f} secondes")

Les résultats montrent que MPS est significativement plus rapide que le CPU. Le temps d’exécution sur MPS n’est que d’environ 0,2 % du temps CPU.

% python scripts/test_metal.py --device cpu
Temps écoulé: 2,8784 secondes

% python scripts/test_metal.py --device mps
Temps écoulé: 0,0061 secondes

Back 2025.02.22 Donate