MIG (GPU-partitionering)
MIG (Multi-Instance GPU) snijdt één fysieke NVIDIA-kaart op in meerdere kleinere, in hardware geïsoleerde GPU's. Elk deel — een instance — heeft zijn eigen rekenkracht, zijn eigen geheugen en zijn eigen video-engines, en gedraagt zich als een aparte kaart: één container krijgt één instance, en niets wat daarop draait kan verstoren wat op de andere draait.
Cordatus beheert dit via Devices → uw apparaat → Metrics, en de instances die het aanmaakt verschijnen daarna overal waar een GPU gekozen kan worden.
Fleet-Management/mig-split-card.mp4 — het MIG-dialoogvenster openen vanuit de GPU-strook, de
kaartlijst lezen, een kaart in vier instances opsplitsen en de instances zien verschijnen.
Waarom een kaart opsplitsen
Een kaart van 96 GB die één model van 8B draait, verspilt het grootste deel van zichzelf. Maar die kaart op de gewone manier tussen twee containers delen betekent dat ze om geheugen vechten en dat de één de ander kan uithongeren. Opsplitsen maakt van die ene kaart bijvoorbeeld vier GPU's van 24 GB:
- Isolatie — een out-of-memory-crash in één instance raakt de andere niet.
- Dichtheid — vier kleine modellen, vier taken of vier gebruikers op één kaart.
- Voorspelbaarheid — elke instance krijgt een vast aandeel rekenkracht en geheugen, niet wat er toevallig overblijft.
De prijs: een instance is kleiner dan de kaart, en een workload kan niet over twee instances van dezelfde kaart worden verdeeld. Splits op als u meer, kleinere GPU's wilt; laat de kaart heel als u één grote GPU wilt.
Voordat u begint
| Vereiste | Detail |
|---|---|
| Apparaattype | x86-apparaten met NVIDIA-kaarten die via nvidia-smi rapporteren. Jetson-apparaten bieden geen MIG. |
| Kaartondersteuning | Bepaald door het stuurprogramma, niet door de naam van de kaart. Twee kaarten met dezelfde modelnaam in dezelfde machine kunnen verschillen. Cordatus vraagt het aan het apparaat en meldt het per kaart. |
| Verbinding | Het apparaat moet Online zijn. |
| Root | Een GPU in MIG-modus zetten vereist root-rechten op het apparaat, dus Cordatus vraagt om het sudo-wachtwoord en verifieert het voordat er iets gebeurt. |
Een kaart in MIG-modus rendert geen grafische beelden meer. Is dat de enige GPU in een machine met een desktopsessie, dan valt de desktop uit. Het bevestigingsscherm waarschuwt u wanneer de gekozen kaart een beeldscherm aanstuurt.
Het MIG-dialoogvenster openen
- Ga naar Devices en open het paneel Metrics van het apparaat.
- Aan het einde van de GPU-strook rechts staat een gestippelde MIG-tegel. De ondertitel leest Configureren, of het aantal instances dat al uit de kaarten van dit apparaat is gesneden.
- Klik erop. Cordatus leest de GPU-mogelijkheden van het apparaat — "GPU-mogelijkheden lezen..." — en toont elke kaart.
De tegel verschijnt alleen wanneer het apparaat NVIDIA-GPU's meldt.
De kaartlijst lezen
Elke kaart is één rij: index, naam en status.
| Status | Betekenis |
|---|---|
| Hele kaart | Niet opgesplitst, en het kan wel. De opties staan eronder. |
| Hele kaart · MIG niet beschikbaar | Het stuurprogramma zegt dat deze kaart geen MIG kan. Er worden geen opties getoond. |
| Opgesplitst in N instances (+ chip MIG aan) | Al opgesplitst. De enige actie is Weer samenvoegen tot één kaart. |
Een kaart opsplitsen
Onder een splitsbare kaart toont Cordatus in hoeveel stukken u de kaart kunt snijden — niet de ruwe profiellijst van het stuurprogramma. Een kaart adverteert doorgaans meerdere regels die allemaal "24gb" zeggen, en twee daarvan leveren stilletjes één instance op in plaats van vier. Cordatus houdt daarom alleen de echte splitsingen over en kiest de beste profielvariant voor u (die met de grafische API's en de video-engines).
Elke optie toont wat één instance krijgt:
- N instances · elk X GB — de kop.
- SM — rekeneenheden.
- decoder / encoder — video-engines.
0 decoderis belangrijk: zonder decoder kan een DeepStream-pipeline geen camerastream decoderen. - JPEG — het aantal JPEG-engines, als het stuurprogramma dat meldt.
- graphics — deze variant houdt de grafische API's beschikbaar.
Op apparaten met gedeeld geheugen splitst MIG alleen rekenkracht — het geheugen blijft gedeeld, dus elke instance meldt geen eigen grootte. Het dialoogvenster zegt dit boven de opties in plaats van een GB-waarde te tonen.
Kies een optie en Cordatus controleert de kaart voordat om bevestiging wordt gevraagd — "Controleren wat deze kaart gebruikt...".
Het bevestigingsscherm
Het vertelt de volledige prijs voordat er iets gebeurt:
| Regel | Betekenis |
|---|---|
| Deze containers gebruiken deze kaart en worden gestopt: (namen) | Containers die aan deze kaart zijn vastgezet, met naam. Het stuurprogramma weigert de MIG-modus te wijzigen zolang een proces de kaart vasthoudt, dus ze worden gestopt. Ze worden daarna niet herstart — ze waren vastgezet op een kaart die niet meer bestaat; maak ze opnieuw aan tegen een instance. |
| De desktopsessie op dit apparaat gebruikt deze kaart… | De instances kunnen nu niet worden aangemaakt. De indeling wordt opgeslagen en bij de volgende herstart toegepast, vóór de desktop start. |
| Deze kaart stuurt een beeldscherm aan… | Grafische weergave stopt op deze kaart zodra hij in MIG-modus staat. |
| Er is geen herstart nodig. Cordatus onthoudt deze indeling… | De kaart was vrij, dus de splitsing gebeurt meteen. |
Druk op Kaart opsplitsen. Is het sudo-wachtwoord nog niet opgeslagen, dan vraagt Cordatus erom en verifieert het eerst.
Waarom de indeling wordt onthouden
Het stuurprogramma vergeet bij elke herstart zowel de MIG-modus als de instances — een opgesplitste kaart komt heel terug. Een splitsing is dus geen eenmalig commando: Cordatus slaat de gevraagde indeling op het apparaat op en bouwt hem bij elke start opnieuw op, vóór de desktop start. Daarom kan een splitsing die door een desktopsessie wordt geblokkeerd tóch doorgaan — bij de volgende herstart.
Wat het resultaat zegt
| Resultaat | Betekenis |
|---|---|
| GPU N is opgesplitst in X instances (profiel). | Klaar, en nu actief. |
| GPU N is ingesteld op X instances, maar de desktopsessie gebruikt de kaart… | Opgeslagen, wordt bij de volgende start toegepast. Herstart het apparaat. |
| Het opsplitsen is mislukt bij stap "stap". | Het stuurprogramma weigerde een stap; de kaart blijft zoals hij was. |
| GPU N is weer één hele kaart. | Samengevoegd. |
| GPU N is ingesteld om weer heel te worden, maar de desktopsessie gebruikt een van de instances… | Opgeslagen, de kaart wordt bij de volgende start weer heel. |
| Gestopte containers: … | Wordt aan het bericht toegevoegd en noemt wat er is gestopt. |
Het herstartvoorstel
Blijft het werk liggen tot de volgende start, dan biedt Cordatus aan het apparaat te herstarten — maar nooit zonder eerst te zeggen of het apparaat terugkomt:
- Cordatus start automatisch na het opstarten, dus het apparaat komt vanzelf terug. — veilig.
- Dit apparaat komt niet vanzelf weer online. — met de reden: Cordatus is niet ingesteld om bij het opstarten te starten; of het start vanuit de desktopsessie en deze machine heeft geen automatische aanmelding, dus iemand moet zich ter plaatse aanmelden; of het start vanuit een gebruikersservice die pas na aanmelden draait; of het is als systeemservice geïnstalleerd maar niet ingeschakeld.
Het meldt ook hoeveel draaiende containers stoppen. Cordatus herstelt de containers die het beheert zodra het terug is.
Is het antwoord komt niet terug, herstel dan eerst het opstartpad (zie Device Actions) of herstart de machine op een plek waar u er fysiek bij kunt. Er is geen weg terug op afstand voor een apparaat dat Cordatus niet bij het opstarten start.
Weer samenvoegen tot één kaart
Open hetzelfde dialoogvenster, zoek de opgesplitste kaart en druk op Weer samenvoegen tot één kaart. De bevestiging noemt de containers die de instances vasthouden — die om dezelfde reden worden gestopt — en waarschuwt wanneer de desktopsessie in een van de instances zit; dan wordt de kaart bij de volgende start weer heel.
Samenvoegen wist ook de opgeslagen indeling, zodat de kaart voortaan heel blijft.
Waar instances daarna opduiken
De GPU-strook in Metrics
Instances worden als eigen tegels getekend, in indigo, met het label GPU 1 (MIG 0). De opgesplitste
moederkaart wordt niet getekend — daar kan niets op draaien.
Het grote getal op een instance-tegel is VRAM gebruikt, geen bezettingsgraad. Bij een kaart in
MIG-modus meldt het stuurprogramma helemaal geen bezettingscijfer, niet voor de kaart en niet voor de
instances. Cordatus toont daarom geheugenbezetting — precies de vraag die u stelt bij het kiezen van
een instance — en schrijft — in plaats van 0% waar een waarde niet gemeten kon worden. De regel
eronder geeft de profielnaam, de decoder-/encoderaantallen en het VRAM.
Een GPU kiezen voor een container
In de GPU-kiezer (LLM Launcher, Compose-services, AI Platform-taken) staan hele kaarten en instances door elkaar, en sluiten ze elkaar uit:
- Of N hele kaarten, of precies één MIG-instance — een instance kiezen wist een hele-kaartselectie en omgekeerd.
- Alle hele GPU's gebruiken omvat nooit een instance. Op een apparaat waar elke kaart is opgesplitst, is de schakelaar uitgeschakeld.
- Op schermen waar instances niet bruikbaar zijn, staat dat boven het raster in plaats van dat ze stilletjes verdwijnen.
- Op AI Platform-taakschermen worden instances zonder videodecoder of -encoder verborgen, omdat een DeepStream-pipeline zonder die engines niet te bouwen is.
Pipelines met meerdere workers (Dynamo)
Een worker kan één instance krijgen — een engine kan werk niet over slices van dezelfde kaart verdelen, en een worker kan een instance niet mengen met een hele GPU. De pipeline-editor dwingt beide af en legt uit waarom. Schaal over instances door meer workers toe te voegen, niet door één worker meer slices te geven.
Dynamo geeft elke worker zijn GPU's via CUDA_VISIBLE_DEVICES, en sommige engine-builds accepteren
daar geen MIG-UUID. Start een Dynamo-worker op een instance niet, draai die pipeline dan op hele
kaarten.
Grenzen om te kennen
- Eén instance per container. Er is geen NVLink- of peer-pad tussen slices van dezelfde kaart, dus tensor-parallel over twee instances kan niet — de engine ziet twee apparaten op dezelfde PCI-bus en weigert.
- Geen bezettingsmetriek. MIG-modus verwijdert de GPU-, geheugen-, encoder- en
decoderbezettingswaarden uit
nvidia-smivoor die kaart. Cordatus toont geheugen in plaats van een getal te verzinnen. - De naam van de kaart zegt niets over MIG-ondersteuning. Alleen het stuurprogramma doet dat, en Cordatus vraagt het per kaart, elke keer dat het dialoogvenster opent.
- Er wordt niets voor u herstart na een splitsing of samenvoeging. De gestopte containers waren vastgezet op hardware die in die vorm niet meer bestaat.
Probleemoplossing
| Symptoom | Oorzaak en oplossing |
|---|---|
| De MIG-tegel ontbreekt in de GPU-strook | Het apparaat meldt geen NVIDIA-GPU, of het is een Jetson. |
| "Dit apparaat heeft geen NVIDIA-GPU gemeld." | nvidia-smi ontbreekt of antwoordde niet. Controleer het stuurprogramma op het apparaat. |
| "Deze kaart kan geen MIG…" | Het stuurprogramma zegt nee. Een kaart met dezelfde modelnaam elders kan het wél ondersteunen. |
| "Een GPU in MIG-modus zetten vereist root-rechten op het apparaat." | Voer het sudo-wachtwoord van het apparaat in wanneer daarom wordt gevraagd. |
| De splitsing gebeurde niet en het bericht noemt de desktopsessie | Verwacht gedrag op een machine met desktop. Herstart het apparaat — de indeling wordt bij het opstarten toegepast. |
| Een container start niet meer na een splitsing | Hij was vastgezet op de hele kaart. Maak hem opnieuw aan en kies een instance in de GPU-stap. |
| De kaart kwam heel terug na een herstart | De indeling is niet opgeslagen, of het apparaat heeft geen opgeslagen sudo-wachtwoord om hem mee te herbouwen. Splits opnieuw vanuit het dialoogvenster. |