MITIGATING COMMUNICATION BOTTLENECKS DURING PARAMETER EXCHANGE IN DATA-PARALLEL DNN TRAINING

Technologies are disclosed herein for dynamically generating communication primitives for use in model parameter synchronization during data-parallel DNN training by packing directed spanning trees. An interconnect topology for communication between GPUs in a computing system is determined. A quanti...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: RANGARAJAN, Nikhil Devanur, THELIN, Jorgen, VENKATARAMAN, Shivaram, PHANISHAYEE, Amar, WANG, Guanhua
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Technologies are disclosed herein for dynamically generating communication primitives for use in model parameter synchronization during data-parallel DNN training by packing directed spanning trees. An interconnect topology for communication between GPUs in a computing system is determined. A quantity of directed spanning trees are generated for transmitting data between the GPUs using the interconnect topology and packed. The directed spanning trees define the connections between GPUs that are to be utilized for the transmission and the amount of data to be transmitted on each connection. Program code is generated for implementing the data transfer defined by the directed spanning trees. When the program code is executed, the directed spanning trees are used to pipeline the transmission of chunks of data, such as model parameters used during data-parallel DNN training, between the GPUs. The program code can also determine an optimal chunk size for data to be transferred between the GPUs. L'invention concerne des technologies permettant de générer dynamiquement des primitives de communication destinées à être utilisées dans une synchronisation de paramètres de modèle durant un apprentissage DNN parallèle aux données par conditionnement d'arbres couvrants orientés. Une topologie d'interconnexion pour une communication entre des GPU dans un système informatique est déterminée. Une quantité d'arbres couvrants orientés est générée pour transmettre des données entre les GPU à l'aide de la topologie d'interconnexion et conditionnée. Les arbres couvrants orientés définissent les connexions entre les GPU qui doivent être utilisées pour la transmission et la quantité de données à transmettre sur chaque connexion. Un code de programme est généré pour mettre en œuvre le transfert de données défini par les arbres couvrants orientés. Lorsque le code de programme est exécuté, les arbres couvrants orientés sont utilisés pour prévoir la transmission en pipeline de blocs de données, tels que des paramètres de modèle utilisés durant un apprentissage DNN parallèle aux données, entre les GPU. Le code de programme peut également déterminer une taille de bloc optimale pour des données à transférer entre les GPU.