Peer-to-peer-geheugentoegang
Directe kopieën van GPU naar GPU via NVLink
Peer-to-peer-geheugentoegang is een gratis CUDA Academy-les op CoddyKit. Dit is les 3 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.
De trage omweg
Gegevens van de ene GPU naar de andere gaan meestal eerst via het geheugen van de CPU. Die heen-en-terugbewerking is traag en verspilt de bandbreedte van de host.
GPU's praten rechtstreeks
Moderne GPU's kunnen de CPU volledig overslaan. Met peer-to-peer-toegang kan de ene GPU het geheugen van een andere GPU lezen en beschrijven via een rechtstreekse verbinding.
De NVLink-snelweg
De snelle verbinding tussen kaarten is vaak NVLink, die veel sneller is dan de gedeelde PCIe-bus. P2P-overdrachten gebruiken deze snelweg wanneer die beschikbaar is.
Controleer voordat u erop vertrouwt
Niet elk paar GPU's ondersteunt P2P. Controleer dit eerst met cudaDeviceCanAccessPeer, dat meldt of het ene apparaat het andere kan bereiken.
int can;
cudaDeviceCanAccessPeer(&can, 0, 1);Toegang inschakelen
Toestemming is standaard uitgeschakeld. Roep, terwijl GPU 0 het huidige apparaat is, cudaDeviceEnablePeerAccess aan om toegang tot het geheugen van GPU 1 mogelijk te maken.
cudaSetDevice(0);
cudaDeviceEnablePeerAccess(1, 0);Toegang werkt in één richting
Peer-to-peer-toegang inschakelen geeft alleen de richting die u opgeeft. Als GPU 1 GPU 0 moet kunnen lezen, moet u die richting ook inschakelen vanaf apparaat 1.
Van peer naar peer kopiëren
Gebruik cudaMemcpyPeer om een buffer rechtstreeks tussen kaarten te verplaatsen. U geeft de bestemmingspointer en het bestemmingsapparaat op, plus de bronpointer en het bronapparaat.
cudaMemcpyPeer(dst, 1, src, 0, bytes);Kernels die aan de overkant lezen
Als toegang is ingeschakeld, kan een kernel op GPU 0 een pointer derefereren die op GPU 1 staat. De hardware haalt deze transparant op via de peer-verbinding.
Wanneer P2P niet beschikbaar is
Als twee kaarten geen peerverbinding kunnen maken, valt de runtime stilletjes terug op een tussenstap via het hostgeheugen. U krijgt nog steeds een kopie, maar met de lagere PCIe-snelheid.
Asynchrone peerkopieën
Peer-overdrachten kunnen ander werk overlappen. Combineer cudaMemcpyPeerAsync met een stream, zodat de kopie loopt terwijl kernels blijven rekenen.
cudaMemcpyPeerAsync(dst, 1, src, 0, bytes, stream);Schakel het na afloop uit
Peer-to-peer-toegang gebruikt bronnen, dus geef deze vrij wanneer u klaar bent. cudaDeviceDisablePeerAccess breekt de eerder geopende verbinding af.
cudaDeviceDisablePeerAccess(1);Korte controle
Weet u nog wat het voordeel is van peer-to-peer-toegang tussen twee GPU's?
Samenvatting
Met P2P kunnen GPU's geheugen rechtstreeks delen, idealiter via NVLink. Controleer de ondersteuning, schakel toegang per richting in en gebruik daarna cudaMemcpyPeer. Volgende onderwerp: schalen met NCCL. ✨
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 “Peer-to-peer-geheugentoegang” gratis?
Ja — de volledige tekst van “Peer-to-peer-geheugentoegang” 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 “Peer-to-peer-geheugentoegang”?
Directe kopieën van GPU naar GPU via NVLink 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 3 van 4.
Hoe lang duurt de les “Peer-to-peer-geheugentoegang”?
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