Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure Kubernetes Service (AKS) unterstützt NVIDIA GPU-fähige Knotenpools zum Ausführen rechenintensiver Workloads, einschließlich AI/ML-Schulung, Echtzeit-Inferencing und umfangreichen Datenanalysen. Herkömmlich werden GPUs in einem 1:1-Modell zugewiesen, bei dem ein einzelner Kubernetes-Pod eine gesamte GPU innerhalb einer Azure-VM nutzt. Obwohl dieses Modell Einfachheit und starke Isolation bietet, kann es zu einer Unternutzung in Szenarien führen, in denen Workloads keine vollständig verfügbaren GPU-Ressourcen im Cluster verbrauchen.
Um die Auslastung zu verbessern und gleichzeitige Workloads zu unterstützen, können Kunden unterschiedliche GPU-Partitionierungsstrategien in ihre Knotenpools integrieren. Diese Ansätze ermöglichen es mehreren Workloads, eine einzelne physische GPU gemeinsam zu nutzen, indem sie in kleinere logische Einheiten unterteilt wird oder indem der Zugriff auf Software- oder GPU-Treiberebene erweitert wird.
In diesem Artikel erfahren Sie mehr über die drei primären Knotenpartitionierungsstrategien für NVIDIA GPUs in AKS: Multi-Instance GPU (MIG), Zeit-Slicing und Multi-Process Service (MPS).
Übersicht über Strategien zur GPU-Knotenpartitionierung in AKS
Die drei wichtigsten in AKS-Umgebungen verfügbaren Strategien sind Multi-Instance GPU (MIG), Time-Slicing und Multi-Process-Service (MPS). Jeder Ansatz unterscheidet sich hinsichtlich AKS-Plattformverwaltung, Isolationstyp und Bereitstellungsanwendungsfällen.
| Strategy | Verwaltet oder erlaubt auf AKS | GPU-Freigabetyp | Empfohlen für |
|---|---|---|---|
| GPU mit mehreren Instanzen (MIG) | Verwaltet (oder benutzerverwaltet über GPU-Operator) | Hardwarepartitionierung | Produktionsworkloads |
| Time-Slicing (über NVIDIA GPU-Operator) | Benutzerverwaltetes AKS zulässig | Softwareplanung | Experimentieren mit variablen GPU-Ladevorgängen |
| Multiprozessdienst (MPS, NVIDIA GPU-Operator) | Benutzerverwaltete AKS zulässig | Prozess-Multiplexing auf CUDA-Ebene | Workloads mit geringer Latenz, hohem Durchsatz |
Managed Multi-Instance GPU (MIG) auf AKS
Multi-Instance GPU (MIG) ist eine hardwarebasierte Partitionierungsfunktion, die für ausgewählte NVIDIA GPU-Architekturen wie A100, H100 und H200 verfügbar ist. Mit MIG kann eine einzelne physische GPU in mehrere isolierte Instanzen unterteilt werden, die jeweils dedizierte Computekerne, Arbeitsspeicher und Cache enthalten. Dadurch wird eine starke Workloadisolation und vorhersehbare Leistungsmerkmale gewährleistet, wodurch MIG für Produktionsumgebungen geeignet ist.
In AKS ist MIG eine verwaltete Funktion. Wenn ein MIG-fähigen Knotenpool bereitgestellt wird, konfiguriert Azure die GPU-Hardware, installiert und verwaltet den erforderlichen Treiberstapel und integriert MIG-Instanzen in Kubernetes über das NVIDIA-Geräte-Plug-In. Jede MIG-Slice wird dem Kubernetes-Scheduler als separate zuweisbare Ressource bereitgestellt, sodass Pods GPU-Kapazität auf granulare und deterministische Weise anfordern können.
Dieser Ansatz bietet mehrere Vorteile für den Unternehmenseinsatz. Sie bietet eine Isolation auf Produktionsniveau durch Partitionierung auf Hardwareebene und reduziert den Betriebsaufwand, indem die Lebenszyklusverwaltung, einschließlich Treiberupdates und -konfiguration, an AKS delegiert wird. Darüber hinaus verhalten sich MIG-Instanzen aus Sicht des Schedulers wie unabhängige GPU-Geräte und ermöglichen so eine vorhersagbare Platzierung und Ressourcenzuweisung.
MIG führt jedoch auch bestimmte Einschränkungen ein: Partitionierungskonfigurationen sind auf Knotenpoolebene statisch, was bedeutet, dass Änderungen eine Knotenumteilung erfordern. Die Flexibilität ist auf vordefinierte MIG-Profile beschränkt, die von der zugrunde liegenden GPU-Hardware unterstützt werden.
Time-Slicing mit NVIDIA GPU-Operator (benutzerverwaltet)
Zeitaufteilung ist ein softwarebasierter Mechanismus zur gemeinsamen Nutzung einer GPU, mit dem mehrere Kubernetes-Pods eine einzelne GPU gemeinsam nutzen können, indem die Ausführung zeitlich verschachtelt wird. Dieser Ansatz wird über den NVIDIA GPU-Operator implementiert, der GPU-Treiber, das Kubernetes-Geräte-Plug-In und die Konfiguration der Containerlaufzeit verwaltet.
Time-Slicing kann in AKS-Knotenpools konfiguriert werden, wird aber von der Plattform nicht verwaltet. Cluster-Operatoren sind für die Bereitstellung und Konfiguration des NVIDIA GPU-Operator verantwortlich, typischerweise über Helm, sowie für die Aktivierung von Time-Slicing über die Einstellungen des Geräte-Plugins. Nach der Konfiguration können mehrere Pods den Zugriff auf dieselbe GPU-Ressource anfordern, und ihre Workloads werden zeitlich gemeinsam geplant.
Das Zeitscheibenverfahren bietet Flexibilität und breite Kompatibilität, da es nicht von bestimmten GPU-Hardwarefunktionen abhängt und mit den meisten NVIDIA-GPUs verwendet werden kann, die CUDA unterstützen. Es ist nützlich für Entwicklung, Tests oder Workloads mit schwankender oder variabler GPU-Auslastung.
Trotz seiner Flexibilität bietet das Zeitscheibenverfahren keine hardwarebasierte Isolation. Alle Workloads nutzen denselben GPU-Speicher und dieselben Rechenressourcen, was zu Ressourcenkonflikten und unvorhersehbarer Leistung führen kann. Da die Konfiguration und die Lebenszyklusverwaltung vom Benutzer gesteuert werden, müssen sich die Betreiber auch um Treiberaktualisierungen, Kompatibilität und Feinabstimmung kümmern. Daher wird Time-Slicing im Allgemeinen nicht für produktive Workloads empfohlen, die strenge Service-Level-Agreements (SLAs) erfordern.
Multi-Process Service (MPS) mit NVIDIA GPU-Operator (vom Benutzer verwaltet)
NVIDIA Multi-Process Service (MPS) ist eine Funktion auf Treiberebene, mit der mehrere CUDA-Anwendungen gleichzeitig auf einer einzelnen GPU ausgeführt werden können. Im Gegensatz zum Time-Slicing, bei dem zwischen Workloads abwechselnd ausgeführt wird, ermöglicht MPS es, Kernel aus verschiedenen Prozessen gleichzeitig auszuführen, die GPU-Auslastung insgesamt zu verbessern und die Latenz für kompatible Workloads zu verringern.
In AKS kann MPS über die vom Benutzer verwaltete Bereitstellung des NVIDIA GPU-Operators konfiguriert werden. Operatoren müssen die GPU-Treiberumgebung konfigurieren, um MPS zu aktivieren und den Lebenszyklus des MPS-Steuerelementdaemons zu verwalten. Workloads, die eine Verbindung mit demselben MPS-Server herstellen, können die GPU gemeinsam nutzen und von der gleichzeitigen Kernelausführung profitieren.
MPS eignet sich für Szenarien mit hohem Durchsatz und geringer Latenz, z. B. Batchaufträge oder eng gekoppelte parallele Workloads. Sie bietet eine differenzierte Kontrolle über die GPU-Freigabe und kann die Auslastung erheblich verbessern, wenn Workloads für die Nutzung der gleichzeitigen Ausführung konzipiert sind.
MPS führt jedoch zu einer zusätzlichen betrieblichen Komplexität. Die Konfiguration erfolgt manuell, und die Problembehandlung kann im Vergleich zu anderen Ansätzen aufwendiger sein. Ähnlich wie beim Zeitslicing bietet MPS keine starke Isolation, da alle Prozesse GPU-Speicher und Compute-Ressourcen gemeinsam nutzen. Daher wird MPS in der Regel nicht für Produktionsworkloads empfohlen, die strenge Vereinbarungen auf Serviceebene (SLAs) erfordern.
Auswählen einer GPU-Partitionierungsstrategie
Die Auswahl der geeigneten GPU-Partitionierungsstrategie in AKS hängt von Workloadanforderungen, betrieblichen Einstellungen und Leistungserwartungen ab. MIG ist der empfohlene Ansatz für Produktionsumgebungen, die eine starke Isolierung und vorhersehbare Leistung erfordern. Als AKS-Knotenpoolfeature vereinfacht MIG Vorgänge und reduziert den Verwaltungsaufwand.
Time-Slicing ist für Nicht-Produktionsumgebungen oder Workloads mit schwankendem GPU-Bedarf nützlich, bei denen die maximale Auslastung wichtiger ist als Konsistenz. Es bietet eine hardwareagnostische Lösung, erfordert jedoch eine sorgfältige Verwaltung und garantiert keine Leistungsisolation.
MPS eignet sich ideal für spezialisierte Workloads, die von gleichzeitiger GPU-Ausführung und geringer Latenz profitieren. Es bietet die höchste potenzielle Auslastungseffizienz, bietet jedoch eine höhere Komplexität und minimale Isolation, wodurch sie für fortgeschrittene Benutzer mit CUDA-fähigen Anwendungen am besten geeignet ist.
In der Praxis können Organisationen je nach Umgebung unterschiedliche Strategien verfolgen, indem sie MIG für Produktionscluster einsetzen und in Entwicklungs- oder experimentellen Szenarien Time-Slicing oder MPS nutzen. Eine sorgfältige Bewertung der GPU-Workloadeigenschaften und betrieblichen Einschränkungen ist für die Auswahl des effektivsten langfristigen Partitionierungsansatzes unerlässlich.
Verwandte Inhalte
- Erste Schritte mit GPU-Knotenpools mit mehreren Instanzen auf AKS.
- Erfahren Sie mehr über bewährte Methoden für die GPU-fähige Knotenlebenszyklusverwaltung.
- Optimieren Sie die GPU-Knotenauslastung und -leistung, indem Sie das Packen von Knotencontainern in Ihrem Cluster konfigurieren.