Apparaten inventariseren en selecteren
cudaSetDevice en contexten per GPU
Apparaten inventariseren en selecteren is een gratis CUDA Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject CUDA Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus CUDA Academy bevat in totaal 4 lessen.
Meer dan één GPU
Op één machine kunnen meerdere GPU's aanwezig zijn. Om ze allemaal te gebruiken, moet uw programma eerst vaststellen hoeveel apparaten aanwezig zijn voordat het werk verstuurt.
De apparaten tellen
Met één aanroep ziet u hoeveel GPU's de runtime kan zien. cudaGetDeviceCount schrijft dat aantal naar een int die u meegeeft.
int count;
cudaGetDeviceCount(&count);Apparaten zijn genummerd
Elke GPU krijgt een geheel getal als id, van 0 tot en met het aantal min één. Met die device-id verwijst u de runtime naar één specifieke kaart.
Het actieve apparaat kiezen
Met cudaSetDevice kiest u op welke GPU uw volgende aanroepen gericht zijn. Daarna gaan geheugenreserveringen en kernelstarts naar die kaart.
cudaSetDevice(1);Er is een huidig apparaat
Op elk moment is precies één GPU het huidige apparaat voor de aanroepende thread. Elke cudaMalloc of kernelstart komt terecht op het apparaat dat op dat moment actief is.
Een apparaat bekijken
Voordat u een GPU vertrouwt, kunt u de specificaties ervan uitlezen. cudaGetDeviceProperties vult een struct met de naam, geheugengrootte en rekenmogelijkheden.
cudaDeviceProp prop;
cudaGetDeviceProperties(&prop, 0);De eigenschappen lezen
De eigenschappenstructuur bevat veel informatie. Velden zoals name en totalGlobalMem helpen u de beste kaart te kiezen of een kaart over te slaan die te klein is.
Elk apparaat beheert zijn eigen geheugen
Een pointer van cudaMalloc hoort bij de GPU die op dat moment actief was. Als u deze gebruikt terwijl een ander apparaat actief is, ontstaan er problemen.
Contexten per apparaat
Achter elke GPU bevindt zich een context met de geheugenreserveringen en streams ervan. Als u het huidige apparaat wisselt, schakelt u over naar de context van dat apparaat.
Alle GPU's doorlopen
Een veelgebruikt patroon is een lus die voor elke id cudaSetDevice aanroept en daarna de configuratie op die kaart uitvoert. Zo verdeelt u het werk over elk apparaat.
for (int d = 0; d < count; d++) {
cudaSetDevice(d);
}Herstel het apparaat voordat u verdergaat
Als een hulpfunctie het huidige apparaat wijzigt, schakelt u het na afloop terug. Als u het huidige apparaat gewijzigd achterlaat, kan de rest van uw code onverwacht gedrag vertonen.
Korte controle
Weet u nog welke aanroep de GPU kiest die uw volgende geheugenreserveringen en kernelstarts gebruiken?
Samenvatting
U telt GPU's, kiest er één met cudaSetDevice en bekijkt deze met de eigenschappen. Elk apparaat heeft zijn eigen geheugen en context. Volgende onderwerp: werk over meerdere apparaten verdelen. ✨
Leer C++ met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Apparaten inventariseren en selecteren” gratis?
Ja — de volledige tekst van “Apparaten inventariseren en selecteren” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus CUDA Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus CUDA Academy bevat in totaal 4 lessen.
Wat leer ik in “Apparaten inventariseren en selecteren”?
cudaSetDevice en contexten per GPU Je oefent met CUDA Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met CUDA Academy te beginnen?
Ervaring vooraf is niet nodig. CUDA Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Apparaten inventariseren en selecteren”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over CUDA Academy?
Ja. Elke les over CUDA Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Apparaten inventariseren en selecteren
- Werk verdelen over GPU's
- Peer-to-peer-geheugentoegang
- Multi-GPU met NCCL