Microsoft hat das CUDA-Plugin für ONNX Runtime aktualisiert und eine Funktion eingeführt, die das Ausführen bestimmter Mixture-of-Experts-Modelle auch dann ermöglicht, wenn diese nicht vollständig in den GPU-Speicher passen. Das CUDA-Plugin 0.4.0, veröffentlicht am 14. November, erlaubt es, weniger genutzte Modell-Experten auf die CPU auszulagern und die für die Verarbeitung benötigten Experten auf der GPU zu halten. Die Funktion setzt ONNX Runtime 1.32.0 voraus.
Wie der CPU-GPU-Offload funktioniert
Mixture-of-Experts-Modelle bestehen aus mehreren spezialisierten Teilnetzwerken, den sogenannten Experten. Je nach Eingabe aktiviert das System nur einen Teil davon. Die neue Expert-Offload-Funktion nutzt genau diese Architektur: Experten können im Systemspeicher verbleiben und bei Bedarf die GPU erreichen. So sinkt die Menge an VRAM, die benötigt wird, um das Modell vollständig auf dem Gerät zu halten.
ONNX Runtime bietet einen automatischen Modus, der Experten auf der GPU hält, solange Platz vorhanden ist, und bei Speichermangel auf hybride Ausführung umschaltet. Daneben gibt es einen obligatorischen Modus, der die Sitzungserstellung abbricht, wenn das Modell die gesetzten Anforderungen nicht erfüllt. Die Konfiguration erfolgt über Sitzungsoptionen, ohne das Modell selbst zu verändern.
Weniger VRAM, aber die Latenz muss gemessen werden
Das Update kann die Zahl der Hardware-Konfigurationen erweitern, die kompatible MoE-Modelle ausführen können. Das bedeutet allerdings nicht, dass jedes Modell auf beliebiger GPU-Hardware läuft: Die Unterstützung gilt für spezifische Knoten und Formate, darunter QMoE und kompatible quantisierte Modelle.
Der Leistungskompromiss muss in jedem Einzelfall gemessen werden. Das Auslagern eines Teils der Verarbeitung auf die CPU kann den Druck auf den Grafikspeicher senken, doch die Release-Notes nennen keinen pauschalen Wert für den möglichen Latenzzuwachs. Das Ergebnis hängt vom Modell, der Quantisierung, der CPU, dem Systemspeicher und der verwendeten GPU ab.
Voraussetzung: kompatible Versionen
Das CUDA-Plugin 0.4.0 ist auf ONNX Runtime 1.32.0 abgestimmt. Bestimmte Funktionen, insbesondere der MoE-Offload, erfordern neue Fähigkeiten, die im Haupt-Runtime eingeführt wurden. Microsoft empfiehlt, die Versionen aufeinander abzustimmen, und weist darauf hin, dass Unterschiede in den Operator-Schemata zu fehlerhaften Ausführungen oder Abstürzen führen können.
Das Release enthält außerdem Unterstützung für GGUF- und Block-Packed-Gewichte, quantisierte Kernel sowie Optimierungen für lange Kontexte und spekulative Dekodierung. Für Entwickler und Modell-Deployer bleibt der zentrale Punkt die Möglichkeit, CPU und GPU gemeinsam zu nutzen, wenn der Videospeicher der limitierende Faktor ist. Der tatsächliche Vorteil in Bezug auf Kapazität und Geschwindigkeit muss durch Benchmarks auf realer Hardware mit realen Modellen ermittelt werden.
Quellen: ONNX Runtime CUDA Plugin EP 0.4.0 · ONNX Runtime 1.32.0



