Metall

Home PDF

Unten ist ein Skript zur Überprüfung der Metal (GPU) Leistung mit PyTorch.

import torch
import argparse
import time

parser = argparse.ArgumentParser(description="Testen Sie torch mit MPS oder CPU.")
parser.add_argument("--device", type=str, default="mps", choices=["mps", "cpu"], help="Gerät, das verwendet werden soll (mps oder cpu)")
args = parser.parse_args()

if args.device == "mps":
    if torch.backends.mps.is_available():
        print("Metal ist verfügbar")
        device = torch.device("mps")
    else:
        print("Metal ist nicht verfügbar, stattdessen CPU verwenden")
        device = torch.device("cpu")
elif args.device == "cpu":
    device = torch.device("cpu")
    print("CPU wird verwendet")
else:
    print("Ungültiges Gerät angegeben, stattdessen CPU verwenden")
    device = torch.device("cpu")

# Erstellen Sie einen Tensor und verschieben Sie ihn zum angegebenen Gerät
x = torch.randn(5000, 5000, device=device)
y = torch.randn(5000, 5000, device=device)

# Führen Sie eine komplexere Berechnung durch
start_time = time.time()
result = torch.matmul(x, y)
for _ in range(10):
    result = torch.matmul(result, y)
end_time = time.time()

# Drucken Sie das Ergebnis
print(result)
print(f"Dauer: {end_time - start_time:.4f} Sekunden")

Die Ergebnisse zeigen, dass MPS erheblich schneller ist als die CPU. Die Ausführungszeit auf MPS beträgt nur etwa 0,2 % der CPU-Zeit.

% python scripts/test_metal.py --device cpu
Dauer: 2.8784 Sekunden

% python scripts/test_metal.py --device mps
Dauer: 0.0061 Sekunden

Back 2025.02.22 Donate