Wochenplan: erst den Datentyp prüfen, dann den Rechenpfad wählen
Die PyTorch-Dokumentation führt float64 und complex128 als Datentypen auf, die das MPS-Backend nicht unterstützt (MPS-Backend-Dokumentation für PyTorch 2.15). Deshalb gilt für Ihren nächsten Lauf: Muss ein Rechenschritt in Doppelpräzision ausgeführt werden, lassen Sie ihn auf der CPU. Wandeln Sie ihn nicht ungeprüft in float32 um. Ist Einfachpräzision für Ihre Fragestellung vertretbar, testen Sie den MPS-Pfad separat und vergleichen Sie ihn mit einer CPU-Referenz.
Diese Woche: Reproduzieren Sie den Fehler mit einem kleinen Ausschnitt Ihres tatsächlichen Workflows, prüfen Sie Datentyp und Gerät des betroffenen Tensors und protokollieren Sie danach den Vergleich zwischen CPU und MPS. Erst wenn Ihre fachlichen Abnahmekriterien erfüllt sind, übernehmen Sie float32 und MPS für diesen Rechenschritt.
Für wen dieser Beitrag gedacht ist:
Für Studierende und Promovierende, deren PyTorch-Skript auf einem Mac bei double oder float64 abbricht.
Für Forschende und Entwickler, die MPS verwenden möchten, aber Genauigkeits- und Operatorgrenzen prüfen müssen.
Für technische Verantwortliche, die eine reproduzierbare Abnahme auf Apple Silicon und macOS vorbereiten.
Zuletzt geprüft am 11.11.2026 anhand der PyTorch-2.15-Veröffentlichungsnotizen, der MPS-Dokumentation für PyTorch 2.15 und der Dokumentation zur numerischen Genauigkeit. Prüfen Sie die Angaben erneut, wenn sich die PyTorch-Version, die Systemanforderungen oder die MPS-Datentypunterstützung ändern.
Drei Fehlerklassen statt einer pauschalen Neuinstallation
Ein Fehler beim Wechsel zu MPS bedeutet nicht automatisch, dass PyTorch falsch installiert wurde. Für die Diagnose müssen Sie mindestens drei Ursachen auseinanderhalten: Das MPS-Backend ist nicht verfügbar, der Tensor hat einen nicht unterstützten Datentyp, oder ein verwendeter Operator ist auf dem gewählten Pfad nicht ausführbar.
PyTorch veröffentlichte Version 2.15 am 28.10.2026 und nennt darin Aktualisierungen für Apple Silicon und MPS (offizielle Versionshinweise). Diese Versionsmeldung bestätigt neue MPS-Änderungen, aber nicht, dass float64 nun unterstützt wird. Für diese Frage ist die Datentypaussage in der MPS-Dokumentation zu PyTorch 2.15 maßgeblich.
| Befund | Wahrscheinlicher Problembereich | Nächste Prüfung |
|---|---|---|
torch.backends.mps.is_available() ist False |
MPS ist in der aktuellen Umgebung nicht verfügbar | Zusätzlich prüfen, ob PyTorch mit MPS-Unterstützung gebaut wurde und ob System und Gerät die Voraussetzungen erfüllen |
MPS ist verfügbar, der Fehler nennt float64 oder double |
Der Datentyp wird vom MPS-Backend nicht unterstützt | Tensor-Erzeugung und Gerätewechsel nachvollziehen; erforderliche Doppelpräzisionsschritte auf der CPU ausführen |
| Fehler tritt erst bei einer bestimmten Operation auf | Operator- oder Geräteunterstützung kann begrenzt sein | Operation einzeln mit dem konkreten Datentyp testen und die Dokumentation beziehungsweise den Fehler für genau diesen Pfad prüfen |
| CPU und MPS liefern unterschiedliche Ergebnisse | Numerische Abweichung oder abweichender Rechenpfad | Dieselben Eingaben, Bedingungen, Statistiken und fachlichen Kriterien für beide Ergebnisse verwenden |
Achtung: Eine erfolgreiche MPS-Verfügbarkeitsprüfung belegt nur, dass das Backend in dieser Umgebung verfügbar ist. Sie besagt weder, dass jeder Tensor-Datentyp unterstützt wird, noch, dass alle Operationen Ihres Modells auf MPS ausgeführt werden.
Backend-Verfügbarkeit und Typgrenze sauber trennen
Prüfen Sie zunächst die Backend-Seite, bevor Sie den Fehler auf die Installation zurückführen. PyTorch stellt dafür unter anderem torch.backends.mps.is_built() und torch.backends.mps.is_available() bereit. Die offizielle MPS-Anleitung beschreibt diese Prüfungen und die Voraussetzungen für den MPS-Pfad.
import torch
print("PyTorch:", torch.__version__)
print("MPS gebaut:", torch.backends.mps.is_built())
print("MPS verfügbar:", torch.backends.mps.is_available())
Ein nicht gebautes oder nicht verfügbares Backend ist eine andere Situation als ein unterstütztes Backend, das einen konkreten Datentyp ablehnt. Sind beide Prüfungen erfolgreich, suchen Sie daher im Fehlerpfad nach float64, double oder einem Gerätewechsel, der den Tensor auf mps verschiebt. PyTorch 2.15 enthält laut Veröffentlichung MPS-Änderungen; die Versionsnummer allein hebt jedoch keine in der Backend-Dokumentation genannte Typgrenze auf.
Ein zweiter häufiger Irrtum: Wenn ein Modell auf MPS läuft, muss nicht jede Teiloperation dort laufen. Ein Tensor kann auf der CPU verbleiben, während ein anderer auf MPS liegt; manche Operationen erfordern passende Geräte und Datentypen. Prüfen Sie deshalb den Ort des Fehlers und nicht nur die erste Zeile, in der das Modell auf das Gerät gesetzt wird.
Gerätewechsel und Datentyp im Fehlerpfad verfolgen
Die Meldung entsteht häufig nicht bei der Tensor-Erzeugung, sondern erst beim Verschieben. Mit .to() ändern Sie Gerät und, falls ausdrücklich angegeben, Datentyp. Die PyTorch-Referenz zu Tensor.to() beschreibt die Parameter des Aufrufs. Prüfen Sie in Ihrem Code, ob etwa ein vorher als float64 erzeugter Tensor später mit .to("mps") auf das MPS-Gerät übertragen wird.
Reproduzieren Sie den Fehler zunächst mit einem kleinen Ausschnitt aus Ihrem realen Workflow:
import torch
device = torch.device("mps")
x = torch.tensor([0.25, 0.75], dtype=torch.float64)
print(x.dtype, x.device)
y = x.to(device)
Die Werte sind hier nur ein minimales Beispiel für die Geräteübertragung, kein Ersatz für Ihre Forschungsdaten. Verwenden Sie zur Diagnose auch die konkrete Tensor-Erzeugung aus Ihrem Skript, denn Datentypen können durch Eingabedateien, NumPy-Konvertierungen, Modellinitialisierung oder explizite Argumente festgelegt werden.
Prüfen Sie an den relevanten Stellen:
- welchen Typ die Eingaben vor dem Modellaufruf haben;
- auf welchem Gerät Eingaben, Modellparameter und Puffer liegen;
- welche Typen Zwischenwerte und Akkumulatoren annehmen;
- ob ein Hilfsmodul intern
doubleerzeugt; - an welcher Operation die erste Fehlermeldung auftritt.
Bei Bedarf protokollieren Sie tensor.dtype und tensor.device unmittelbar vor der problematischen Zeile. Das ist aussagekräftiger als eine globale Umstellung aller Daten, weil Sie so erkennen, ob die Ursache in der Datenpipeline, im Modell oder in einer einzelnen Berechnung liegt.
CPU-Doppelpräzision oder MPS-Einfachpräzision
Wählen Sie den Rechenpfad anhand der wissenschaftlichen Anforderung, nicht danach, welcher Gerätewechsel den Fehler verschwinden lässt. PyTorch dokumentiert, dass die MPS-Unterstützung float64 und complex128 nicht umfasst und dass Berechnungen, die Doppelpräzision benötigen, auf der CPU ausgeführt werden sollten.
| Option | Geeignet, wenn … | Vorteile | Nachteile und Prüfbedarf |
|---|---|---|---|
CPU mit float64 |
Ihre Methode Doppelpräzision verlangt oder Rundungsabweichungen fachlich entscheidend sein können | Der Datentyp bleibt erhalten; die Referenzrechnung lässt sich direkt mit dem bestehenden CPU-Pfad vergleichen | Der betroffene Schritt läuft nicht über MPS; prüfen Sie, ob Tensoren und Zwischenergebnisse tatsächlich auf der CPU bleiben |
MPS mit float32 |
Ihre Forschungsfrage Einfachpräzision zulässt und die konkreten Operationen MPS unterstützen | Sie können den MPS-Rechenpfad auf Ihrem Apple Silicon Mac gezielt erproben | Ein erfolgreicher Lauf beweist nicht die fachliche Gleichwertigkeit; Datentypen, Operatoren und Ergebnisse müssen einzeln geprüft werden |
| Getrennter CPU-/MPS-Ablauf | Nur klar abgegrenzte Schritte Doppelpräzision erfordern | Sie können präzisionskritische Teile auf der CPU belassen und andere Teile separat prüfen | Gerätewechsel und Typkonvertierungen erhöhen die Komplexität; die Übergaben müssen reproduzierbar dokumentiert werden |
Für einen getrennten Ablauf müssen Sie klären, welche Zwischenergebnisse zwischen CPU und MPS übertragen werden, welche Datentypen sie dabei besitzen und ob die spätere Auswertung dieselbe Präzision voraussetzt. Stellen Sie nicht einfach das gesamte Modell auf float32, wenn beispielsweise eine Vorverarbeitung oder eine nachgelagerte Statistik weiterhin float64 benötigt.
MPS-Pfad und wissenschaftliches Ergebnis separat abnehmen
Eine Umwandlung in float32 ist eine fachliche Entscheidung, keine bloße Fehlerbehebung. Legen Sie zunächst eine CPU-Referenz mit den für Ihr Projekt erforderlichen Datentypen an. Führen Sie dieselben Eingaben und denselben fachlichen Ablauf auf dem MPS-Pfad aus. Halten Sie fest, welche Operationen tatsächlich auf MPS laufen und welche bewusst auf der CPU bleiben.
Für einen aussagekräftigen Vergleich:
- Fixieren Sie die Versuchsbedingungen. Verwenden Sie dieselben Eingabedaten, Vorverarbeitungsschritte, Modellgewichte und relevanten Einstellungen.
- Erzeugen Sie eine CPU-Referenz. Lassen Sie alle für Ihre Fragestellung präzisionskritischen Schritte in dem dafür vorgesehenen Typ rechnen.
- Isolieren Sie den MPS-Test. Ändern Sie nur den Rechenpfad oder Datentyp, den Sie untersuchen möchten, statt zugleich Modell, Daten und Einstellungen zu verändern.
- Prüfen Sie die Ausgaben. Vergleichen Sie nicht nur einzelne Werte, sondern auch die Kennzahlen, Statistiken und nachgelagerten Ergebnisse, die für Ihre Auswertung entscheidend sind.
- Wenden Sie vorab festgelegte Kriterien an. Definieren Sie die zulässigen Abweichungen anhand Ihres Forschungsdesigns oder der mit Ihrem Team vereinbarten Abnahme. Ein allgemeiner Prozentwert wäre ohne Kenntnis Ihrer Fragestellung keine belastbare Grenze.
- Dokumentieren Sie den Geräte- und Typverlauf. Notieren Sie PyTorch-Version, Backend-Prüfung, relevante Datentypen und den Ort jedes präzisionskritischen Schritts, damit ein anderes Teammitglied den Test nachvollziehen kann.
Für numerische Diagnosen können Sie zusätzlich prüfen, ob Ausgaben endliche Werte enthalten. PyTorch stellt dafür torch.isfinite() bereit. Diese Prüfung findet NaN- oder unendliche Werte, ersetzt aber nicht den Vergleich mit Ihrer CPU-Referenz und belegt nicht, dass die Ergebnisse wissenschaftlich hinreichend genau sind. Hinweise zu Rundungs- und Präzisionsverhalten finden Sie in den PyTorch-Erläuterungen zur numerischen Genauigkeit.
Erfahrung für die Abnahme: Prüfen Sie zuerst den kleinsten Rechenschritt, der den Fehler auslöst, und anschließend den vollständigen Workflow. So unterscheiden Sie eine reine Datentypgrenze von späteren Abweichungen in Statistiken oder Schlussfolgerungen.
Auch ein Testlauf ohne Fehlermeldung ist kein ausreichendes Abnahmekriterium. Er zeigt, dass der getestete Pfad unter den gewählten Bedingungen ausgeführt wurde. Ob er für Ihre Auswertung zulässig ist, entscheidet erst der Vergleich anhand der fachlichen Kriterien, die Sie vor dem Test festgelegt haben.
Häufige Fragen zur MPS-Diagnose
Warum unterstützt PyTorch MPS kein float64?
Die offizielle MPS-Dokumentation nennt float64 und complex128 als nicht unterstützte Datentypen. Das ist eine Backend-Grenze und nicht automatisch ein Installationsfehler. Wenn Ihre Berechnung Doppelpräzision verlangt, führen Sie sie auf der CPU aus. float32 kommt nur infrage, wenn Sie die Genauigkeit für Ihre konkrete Forschungsfrage separat geprüft haben.
Was tun bei einem double-Tensor-Fehler in PyTorch 2.15?
Ermitteln Sie zunächst, wo der Tensor als torch.double beziehungsweise torch.float64 erzeugt wird und an welcher Stelle er nach MPS verschoben wird. Prüfen Sie außerdem, ob Modellparameter und Eingaben dasselbe Gerät verwenden. Ist Doppelpräzision fachlich erforderlich, behalten Sie den betroffenen Schritt auf der CPU, statt den Typ nur zur Fehlerumgehung zu ändern.
Welche Schritte sollten in wissenschaftlichen Rechnungen auf der CPU bleiben?
Nicht eine pauschale Aufgabenart, sondern Ihre Methode bestimmt die Entscheidung. Lassen Sie jeden Schritt auf der CPU, für den Ihre Forschungsplanung Doppelpräzision verlangt oder bei dem eine Abweichung die Interpretation verändern könnte. Beziehen Sie Vorverarbeitung, Zwischenwerte, Akkumulation und nachgelagerte Statistiken in die Prüfung ein.
Wie beurteilen Sie ein Modell nach der Umstellung auf float32?
Vergleichen Sie CPU- und MPS-Ausgaben mit identischen Eingaben und Bedingungen. Prüfen Sie die für Ihr Projekt relevanten Kennzahlen und die daraus abgeleitete Schlussfolgerung. Ihre Abnahmeschwellen sollten aus dem Forschungsdesign oder einer vorherigen Teamvereinbarung stammen. Eine universelle Fehlertoleranz lässt sich aus der Backend-Unterstützung nicht ableiten.
Wiederholbare Tests ohne eigenen Apple Silicon Mac
Wenn Ihr Team keinen Apple Silicon Mac verfügbar hat, können Sie zunächst CPU-Tests und die Dokumentation der verwendeten Operationen prüfen. Das ersetzt jedoch keine Validierung des MPS-Pfads auf der tatsächlichen Kombination aus macOS, Chip und installierter PyTorch-Version. Verwechseln Sie auch die MPS-Verfügbarkeitsprüfung nicht mit dem Nachweis, dass Ihr gesamtes Modell durchgehend auf der GPU ausgeführt wird.
Für einen externen macOS-Testplatz sollten Sie vor der Nutzung mindestens die konkret verfügbare System- und Chipkonfiguration, den Zugang über die vorgesehene Oberfläche sowie die Möglichkeit zur Installation der benötigten PyTorch-Version verifizieren. Klären Sie für Forschungsdaten außerdem mit Ihrer Hochschule, ob deren Datenschutz- und Sicherheitsvorgaben eine Verarbeitung in der betreffenden Umgebung erlauben. Übertragen Sie keine vertraulichen Daten, bevor diese Freigabe vorliegt.
VpsHold bietet den Zugang zu einer gehosteten Mac-Umgebung über VNC, SSH oder eine Webkonsole; prüfen Sie vor der Buchung die tatsächlichen Angaben zur jeweiligen Umgebung und setzen Sie sie mit Ihren Projektanforderungen gleich. Die Übersicht zu Cloud-Mac-Umgebungen kann für den Vergleich möglicher Einsatzfälle dienen. Für eine konkrete Prüfung der verfügbaren Systeme können Sie die Informationen zur Mac-Umgebung heranziehen und die benötigte Konfiguration vorab verifizieren.
Ein solcher Zugang ist ein Testmittel, kein Ersatz für numerische Validierung, institutionelle Freigaben oder eine dauerhafte Forschungsinfrastruktur. Wenn Sie regelmäßig umfangreiche Doppelpräzisionsrechnungen ausführen oder physische Anschlüsse benötigen, vergleichen Sie die wiederkehrenden Mietkosten und organisatorischen Bedingungen mit einem geeigneten lokalen Rechner oder der vorhandenen Hochschulinfrastruktur. Für eine zeitlich begrenzte MPS-Kompatibilitätsprüfung kann eine gemietete Mac-Umgebung dagegen sinnvoll sein, sofern System, Chip und Zugriff zur geplanten Prüfung passen.
Häufig gestellte Fragen
Warum kann PyTorch auf MPS keine float64-Tensoren verarbeiten?
Das MPS-Backend unterstützt laut PyTorch-Dokumentation float64 und complex128 nicht. Das ist eine Grenze der Datentypunterstützung und kein Beleg für eine beschädigte Installation. Wenn ein Rechenschritt Doppelpräzision verlangt, führen Sie ihn auf der CPU aus; ändern Sie den Datentyp nur, wenn die fachliche Fragestellung float32 zulässt.
Wie behebe ich einen double-Tensor-Fehler mit PyTorch 2.15?
Prüfen Sie zunächst, ob der problematische Tensor als torch.double beziehungsweise torch.float64 angelegt wurde oder beim Verschieben auf MPS diesen Typ behält. Lassen Sie den betroffenen Schritt auf der CPU, wenn Doppelpräzision erforderlich ist. Eine Umwandlung in float32 ist nur eine mögliche Alternative, wenn Sie anschließend die Ergebnisse anhand Ihrer Forschungsanforderungen validieren.
Welche wissenschaftlichen Berechnungen sollten in float64 auf der CPU bleiben?
Das hängt von Ihrer Methode ab. Behalten Sie auf der CPU insbesondere jene Schritte, für die Ihr Protokoll Doppelpräzision verlangt oder bei denen kleine Rundungsabweichungen die Schlussfolgerung beeinflussen könnten. Prüfen Sie dafür nicht nur den Modellaufruf, sondern auch Vorverarbeitung, Akkumulation, Zwischenergebnisse und nachgelagerte Kennzahlen.
Wie prüfe ich, ob ein PyTorch-Modell in float32 zuverlässige Ergebnisse liefert?
Vergleichen Sie CPU- und MPS-Ausgaben für identische Eingaben und dokumentierte Versuchsbedingungen. Prüfen Sie die Abweichungen, relevante Statistiken und die daraus gezogene wissenschaftliche Schlussfolgerung. Legen Sie die zulässigen Grenzen vor dem Test anhand Ihres Forschungsdesigns oder der vereinbarten Abnahmekriterien fest; einen allgemein gültigen Prozentwert gibt es dafür nicht.
Weiterlesen
PyTorch-MPS auf einem eigenen Mac testen
Mieten Sie bei VpsHold einen dedizierten Mac mini und prüfen Sie Ihre PyTorch-Experimente direkt auf Apple Silicon.
