1 repository
Coordination of load/store accessible memory and barriers to synchronize data across multiple physical GPU devices.
Distinct from Shared Memory Management: Focuses on GPU device-to-device memory synchronization and barriers rather than CPU-based inter-process communication.
Explore 1 awesome GitHub repository matching software engineering & architecture · Cross-Device Memory Coordination. Refine with filters or upvote what's useful.
NCCL este o bibliotecă de comunicare de înaltă performanță și un framework de calcul distribuit pe GPU, conceput pentru executarea schimburilor de date colective și punct-la-punct pe mai multe GPU-uri în sisteme cu un singur nod sau multi-nod. Servește ca strat de transport RDMA pentru GPU și orchestrator de memorie, facilitând sincronizarea cu lățime de bandă mare a datelor și a gradienților de model pentru antrenarea și inferența distribuită pe GPU. Biblioteca se distinge prin capacitatea sa de a executa primitive de comunicare direct din kernel-urile GPU, eliminând CPU-ul gazdă din calea critică. Utilizează selecția de căi conștientă de topologie pentru a optimiza mișcarea datelor și folosește transportul de rețea bazat pe RDMA, inclusiv InfiniBand și NVLink, pentru a permite accesul la memorie zero-copy între dispozitive pe diferite noduri fizice. Proiectul acoperă o gamă largă de tipare de comunicare colectivă, inclusiv reduceri, broadcast-uri, gather-uri și schimburi all-to-all, alături de accesul la memorie la distanță punct-la-punct. Oferă gestionare cuprinzătoare a comunicatorului pentru inițializarea, partiționarea și redimensionarea grupurilor GPU, precum și gestionarea specializată a memoriei pentru înregistrarea bufferelor și coordonarea memoriei partajate a dispozitivului. Sistemul include o suită de instrumente de monitorizare și observabilitate pentru urmărirea stării, logarea diagnostică și monitorizarea evenimentelor în timp real, precum și interfețe de integrare pentru framework-uri de machine learning, CUDA graphs, MPI și Python.
NCCL coordinates load/store accessible memory and barriers to synchronize data across multiple devices.