U vraagt, wij geven antwoord!

Wat is NVIDIA® MIG

In het moderne computergebruik spelen GPU's een cruciale rol op verschillende gebieden, van geneeskunde tot filmproductie. GPU's kunnen de rekentijd aanzienlijk verkorten, vaak met tientallen of honderden factoren. Ze hebben ook unieke kenmerken waarmee rekening moet worden gehouden. Voor single-workload scenario's zonder de noodzaak om een GPU te delen onder gebruikers, volstaat bijna elke GPU.

Veel toepassingen ondersteunen parallel computing, waarbij de werkbelasting over meerdere fysieke kaarten wordt verdeeld. Er ontstaan echter uitdagingen wanneer er slechts één krachtige GPU in een server aanwezig is of wanneer meerdere gebruikers exclusief GPU-intensieve berekeningen moeten uitvoeren, waardoor anderen mogelijk worden geblokkeerd totdat hun taken zijn voltooid. De MIG-technologie (Multi-Instance GPU) van NVIDIA® pakt dit probleem aan. MIG is beschikbaar op specifieke GPU-modellen zoals A30, A100 (PCIE/SXM4), H100 (PCIE/SXM5/GH200) en H200 (SXM5) en maakt het mogelijk om een enkele kaart logisch op te delen in verschillende onafhankelijk toegankelijke instanties.

Deze GPU-instanties zijn geïsoleerd op hardwareniveau, waardoor wordt voorkomen dat werklasten elkaars prestaties of VRAM-verbruik beïnvloeden. Elke instantie krijgt een vaste hoeveelheid videogeheugen toegewezen. Als een proces deze toewijzing probeert te overschrijden, wordt de OOM-killer geactiveerd en wordt het overtredende proces beëindigd.

Het maximaal mogelijke aantal instanties is 7. Dit lijkt misschien vreemd, omdat het logischer zou zijn om het op te delen in een even aantal delen. Er is een eenvoudige verklaring: het 8e deel wordt ook toegewezen, maar de computerbronnen ervan worden gebruikt om de verdeling te controleren. Daarom is het niet beschikbaar voor normaal gebruik. VRAM wordt ook verdeeld in maximaal 8 delen en wordt gelijk verdeeld over de 7 GPU instanties. Elke instantie ontvangt ook een deel van andere bronnen, zoals hardware decoderingseenheden.

Deze functie maakt parallellisatie van werklasten mogelijk, zelfs met een enkele kaart. Op OS-niveau verschijnen GPU-instanties als verschillende fysieke kaarten, zodat de toepassing ze afzonderlijk kan benaderen en parallelle berekeningen kan garanderen. Dit zorgt voor optimaal gebruik van GPU-resources. Cloudproviders hechten veel waarde aan deze functie, omdat de mogelijkheid om bronnen flexibel te beheren cruciaal is, vooral in gecontaineriseerde omgevingen.

MIG-functies

Voordat u met MIG gaat werken, moet u ervoor zorgen dat op de server de nodige GPU-stuurprogramma's zijn geïnstalleerd en dat er geen actieve computertaken op de kaart zijn. Het inschakelen van MIG is een "zwaar" verzoek aan de API van het stuurprogramma, waardoor het videogeheugen volledig wordt gewist en de GPU opnieuw wordt opgestart. Momenteel werkt dit alleen in Linux en de gebruiker die zo'n verzoek uitvoert moet superuser-rechten hebben.

Bij het werken met MIG zijn er een aantal belangrijke overwegingen om in gedachten te houden. Ten eerste is MIG alleen ontworpen voor rekentaken en ondersteunt het geen grafische toepassingen. Als je grafische toepassingen wilt draaien, moet je MIG uitschakelen.

MIG-functionaliteit en GPU instance passthrough binnen virtuele machines worden alleen ondersteund op Linux-gebaseerde besturingssystemen. Je kunt MIG niet gebruiken met Microsoft Hyper-V of VMware ESXi. In deze gevallen wordt aanbevolen om MIG uit te schakelen en in plaats daarvan volledige GPU passthrough uit te voeren.

Het is de moeite waard om op te merken dat GPU-instanties geen P2P-connectiviteit hebben, zelfs als ze in dezelfde container worden geplaatst. Deze beperking, veroorzaakt door interne isolatiemechanismen, kan aanzienlijke uitdagingen opleveren voor infrastructuren die gebouwd zijn met de Kubernetes orchestrator. Softwareoplossingen van derden kunnen dit probleem echter verhelpen.

MIG is het meest geschikt voor servers met GPU's van hetzelfde model. Gebruikers van LeaderGPU hoeven zich hier geen zorgen over te maken, omdat alle beschikbare configuraties zijn ontworpen met MIG-compatibiliteit in het achterhoofd. Om MIG in te schakelen, moet u specifieke commando's uitvoeren. Als je NVIDIA® System Management en Data Center GPU Manager services gebruikt, zorg er dan voor dat je deze eerst stopt:

sudo systemctl stop nvsm dcgm

Nadat je er zeker van bent dat er geen actieve taken op de GPU zijn, ga je verder met het omschakelen van modi. Het volgende commando schakelt bijvoorbeeld MIG in op GPU ID 0:

sudo nvidia-smi -i 0 -mig 1

Herhaal dit commando voor elke GPU die je in instanties wilt verdelen. Laten we vervolgens de beschikbare profielen voor deze verdeling bekijken:

sudo nvidia-smi mig -lgip

Selecteer de gewenste profielen en noteer hun ID's. Laten we aannemen dat we een NVIDIA® A100 GPU hebben. We verdelen de kaart in vier GPU-instanties: de eerste heeft drie Compute-instanties en 20 GB videogeheugen, terwijl de andere drie GPU-instanties één Compute-instantie en 5 GB videogeheugen hebben.

Merk op dat het systeem de profielen achtereenvolgens toepast. Om mogelijke fouten te voorkomen, moet je altijd eerst het profiel met het grootste aantal Compute-instanties en geheugen opgeven:

sudo nvidia-smi mig -cgi 9,19,19,19 -C
Successfully created GPU instance ID  2 on GPU  0 using profile MIG 3g.20gb (ID  9)
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  2 using profile MIG 3g.20gb (ID  2)
Successfully created GPU instance ID  7 on GPU  0 using profile MIG 1g.5gb (ID 19)
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  7 using profile MIG 1g.5gb (ID  0)
Successfully created GPU instance ID  8 on GPU  0 using profile MIG 1g.5gb (ID 19)
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  8 using profile MIG 1g.5gb (ID  0)
Successfully created GPU instance ID  9 on GPU  0 using profile MIG 1g.5gb (ID 19)
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  9 using profile MIG 1g.5gb (ID  0)

Anders kan er een fout optreden:

Failed to create GPU instances: Insufficient Resources

Controleer na het toepassen van het profiel de beschikbare GPU-instanties:

sudo nvidia-smi mig -lgi
+-------------------------------------------------------+
| GPU instances:                                        |
| GPU   Name             Profile  Instance   Placement  |
|                          ID       ID       Start:Size |
|=======================================================|
|   0  MIG 1g.5gb          19        7          0:1     |
+-------------------------------------------------------+
|   0  MIG 1g.5gb          19        8          1:1     |
+-------------------------------------------------------+
|   0  MIG 1g.5gb          19        9          2:1     |
+-------------------------------------------------------+
|   0  MIG 3g.20gb          9        2          4:4     |
+-------------------------------------------------------+

Je kunt nu de werking van NVSM en DCGM herstellen:

sudo systemctl start nvsm dcgm

Alternatief beheer

De standaard beheermethode met het hulpprogramma nvidia-smi heeft een aantal nadelen. Ten eerste verdeelt het alleen bronnen in een vast aantal instanties. Ten tweede vereist herconfiguratie het ontladen van alle rekentaken uit het geheugen en het stoppen van toepassingen. Deze aanpak is niet geschikt voor cloud computing, omdat het automatisch schalen beperkt. Om MIG volledig te benutten is aanvullende software zoals Run:ai nodig.

Dit platform biedt een flexibeler beheer van het GPU-gebruik en vult MIG aan met zijn eigen fractioneringstechnologie. Het zorgt ervoor dat elke toepassing zijn deel van de rekenkracht krijgt. Via een gespecialiseerde monitoringapplicatie wijst het platform gelijke rekenkracht toe aan elke applicatie en verdeelt het ongebruikte bronnen over andere actieve applicaties.

Run:ai garandeert ook parallelle uitvoering van werklasten, waardoor het gebruik van bronnen wordt gemaximaliseerd. Omdat de verdeling softwarematig is, wordt speciale aandacht besteed aan VRAM-beheer om botsingen te voorkomen.

Naast dynamisch beheer maakt het platform het mogelijk om specifieke rekenbronnen te reserveren voor bepaalde toepassingen. Dit elimineert de noodzaak om alle andere applicaties te ontladen, omdat partitionering on the fly gebeurt. Het platform zorgt ervoor dat dit proces lopende GPU-toepassingen niet verstoort.

Zie ook:



Bijgewerkt: 28.03.2025

Gepubliceerd: 04.10.2024


Hebt u nog vragen? Schrijf ons!

By clicking «I Accept» you confirm that you have read and accepted the website Terms and Conditions, Privacy Policy, and Moneyback Policy.