Brevet FR3072801A1 (20190426)

REVENDICATIONS1.0rdinateur comprenant : une pluralité d'unités de traitement, chacune comportant un stockage d'instructions contenant un programme local, une unité d'exécution exécutant le programme local, un stockage de données pour maintenir des données ; une interface d'entrée munie d'un ensemble de fils d'entrée, et une interface de sortie munie d'un ensemble de fils de sortie ; un tissu de commutation connecté à chacune des unités de traitement par l'ensemble respectif de fils de sortie et connectable à chacune des unités de traitement par les fils d'entrée respectifs par l'intermédiaire de circuits de commutation contrôlables par chaque unité de traitement ; un module de synchronisation actionnable pour générer un signal de synchronisation pour contrôler l'ordinateur pour commuter entre une phase de calcul et une phase d'échange, les unités de traitement étant agencées pour exécuter leurs programmes locaux selon une horloge commune, les programmes locaux étant tels que dans la phase d'échange au moins une unité de traitement exécute une instruction d'envoi à partir de son programme local pour émettre à un instant d'émission un paquet de données sur son ensemble de fils de connexion de sortie, le paquet de données étant destiné à au moins une unité de traitement destinataire mais ne comportant pas d'identifiant de destination, et à un instant de commutation prédéterminé l'unité de traitement destinataire exécutant une instruction de contrôle de commutateurs a partir de son programme local pour contrôler ses circuits de commutation pour connecter son ensemble de fils d'entrée au tissu de commutation pour recevoir le paquet de données à un instant de réception, l'instant d'émission, l'instant de commutation et l'instant de 58 B17816 FR - 408525FR réception étant gouvernés par l'horloge commune par rapport au signal de synchronisation.\n<CLM>\1\tOrdinateur selon la revendication 1, dans lequel l'instruction d'envoi définit explicitement une adresse d'envoi identifiant un emplacement dans le stockage de données à partir duquel le paquet de données doit être envoyé.\n<CLM>\1\tOrdinateur selon la revendication 1, dans lequel aucune adresse d'envoi n'est définie explicitement dans l'instruction d'envoi, et le paquet de données est émis à partir de l'adresse d'envoi définie dans un registre défini implicitement par l'instruction d'envoi.\n<CLM>\1\tOrdinateur selon la revendication 3, dans lequel le programme local comprend une instruction de mise à jour d'adresse d'envoi pour mettre à jour l'adresse d'envoi dans le registre implicite.\n<CLM>\1\tOrdinateur selon l'une quelconque des revendications précédentes, dans lequel l'instant d'émission est un nombre connu de cycles d'horloge après l'instant d'envoi auquel l'instruction est exécutée.\n<CLM>\1\tOrdinateur selon l'une quelconque des revendications précédentes, dans lequel les circuits de commutation comprennent un multiplexeur comportant un ensemble de fils de sortie connecté a son unité de traitement, et de multiples ensembles de fils d'entrée connectés au tissu de commutation, d'où il résulte que l'un des multiples ensembles de fils d'entrée est sélectionné tel que contrôlé par l'unité de traitement.\n<CLM>\1\tOrdinateur selon l'une quelconque des revendications précédentes, dans lequel l'unité de traitement destinataire est agencée pour recevoir le paquet de données et le charger 59 B17816 FR - 408525FR dans le stockage de données à un emplacement mémoire identifié par un pointeur mémoire.\n<CLM>\1\tOrdinateur selon la revendication 7, dans lequel le pointeur mémoire est automatiquement incrémenté après que chaque paquet de données a été chargé dans le stockage de données.\n<CLM>\1\tOrdinateur selon la revendication 7, dans lequel le programme local au niveau de l'unité de traitement destinataire comprend une instruction de mise à jour de pointeur mémoire qui met à jour le pointeur mémoire.\n<CLM>\1\tOrdinateur selon l'une quelconque des revendications précédentes, dans lequel l'instruction d'envoi identifie un nombre de paquets de données à envoyer, chaque paquet de données étant associé à un instant d'émission différent.\n<CLM>\1\tOrdinateur selon la revendication 6, dans lequel l'un des ensembles de fils d'entrée est connecté à une entrée nulle.\n<CLM>\1\tOrdinateur selon l'une quelconque des revendications précédentes, dans lequel l'unité de traitement destinataire est la même unité de traitement que l'unité de traitement qui a exécuté une instruction d'envoi à un instant antérieur, d'où il résulte que la même unité de traitement est agencée pour envoyer un paquet de données et recevoir ce paquet de données à un instant ultérieur.\n<CLM>\1\tOrdinateur selon l'une quelconque des revendications précédentes, dans lequel de multiples d'unités de traitement sont agencées pour exécuter des instructions d'envoi respectives pour émettre des paquets de données respectifs, et dans lequel au moins certains des paquets de données ne sont destinés à aucune unité de traitement destinataire. 60 B17816 FR - 408525FR\n<CLM>\1\tOrdinateur selon l'une quelconque des revendications précédentes, dans lequel au moins deux des unités de traitement coopèrent dans une paire émettrice, dans lequel un premier paquet de données est émis à partir d'une première unité de traitement de la paire par l'intermédiaire de son ensemble de fils de connexion de sortie, et un deuxième paquet de données est émis à partir de la première unité de traitement de la paire par l'intermédiaire de l'ensemble de fils de connexion de sortie de la deuxième unité de traitement de la paire pour effectuer une transmission à double largeur.\n<CLM>\1\tOrdinateur selon l'une quelconque des revendications précédentes, dans lequel au moins deux des unités de traitement fonctionnent comme paire réceptrice dans laquelle chaque unité de traitement de la paire contrôle ses circuits de commutation pour connecter son ensemble de fils d'entrée respectif au tissu de commutation pour recevoir des paquets de données respectifs à partir de pavés respectifs d'une paire d'envoi.\n<CLM>\1\tProcédé de calcul d'une fonction dans un ordinateur comprenant une pluralité d'unités de traitement comportant chacune un stockage d'instructions contenant un programme local, une unité d'exécution pour exécuter le programme local, un stockage de données pour contenir des données, et une interface d'entrée munie d'un ensemble de fils d'entrée et une interface de sortie munie d'un ensemble de fils de sortie ; un tissu de commutation connecté à chacune des unités de traitement par les ensembles respectifs de fils de sortie et connectable à chacune des unités de traitement par leur fils d'entrée respectifs par l'intermédiaire de circuits de commutation contrôlables par chaque unité de traitement ; et un module de synchronisation actionnable pour générer un signal 61 B17816 FR - 408525FR synchronisation pour contrôler l'ordinateur pour commuter entre une phase de calcul et une phase d'échange, le procédé comprenant : les unités de traitement exécutent leurs programmes locaux dans la phase de calcul selon une horloge commune, et dans la phase d'échange au moins une unité de traitement exécute une instruction d'envoi à partir de son programme local pour émettre à un instant d'émission un paquet de données sur son ensemble de fils de connexion de sortie, le paquet de données étant destiné à au moins une unité de traitement destinataire mais ne comportant pas d'identifiant de destination, et à un instant de commutation prédéterminé l'unité de traitement destinataire exécute une instruction de contrôle de commutateurs à partir de son programme local pour contrôler les circuits de commutation pour connecter son ensemble de fils d'entrée au tissu de commutation pour recevoir le paquet de données à un instant de réception, l'instant d'émission, l'instant de commutation et l'instant de réception étant gouvernés par l'horloge commune par rapport au signal de synchronisation.\n<CLM>\1\tProcédé selon la revendication 16, dans lequel la fonction est prévue sous la forme du graphe statique comprenant une pluralité de noeuds interconnectés, chaque noeud étant mis en oeuvre par un codelet des programmes locaux.\n<CLM>\1\tProcédé selon la revendication 17, dans lequel dans la phase de calcul chaque codelet traite des données pour produire un résultat, dans lequel certains des résultats ne sont pas nécessaires pour une phase de calcul suivante et ne sont reçus par aucune unité de traitement destinataire. 62 B17816 FR - 408525FR\n<CLM>\1\tProcédé selon l'une quelconque des revendications 16 à 18, dans lequel dans la phase d'échange les paquets de données sont transmis entre des unités de traitement par l'intermédiaire du tissu de commutation et de circuits de commutation.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 16 à 19, dans lequel chaque unité de traitement indique au module de synchronisation que sa propre phase de calcul est achevée, et dans lequel le signal de synchronisation est généré par le module de synchronisation lorsque toutes les unités de traitement ont indiqué Que leur propre phase de calcul est achevée, pour commencer la phase d'échange.\n<CLM>\1\tProcédé selon la revendication 17, dans lequel le graphe représente une fonction d'apprentissage par machine.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 16 à 21, dans lequel dans la phase d'échange des paquets de données sont transmis par l'intermédiaire du tissu de commutation dans un mode en pipeline par l'intermédiaire d'une succession de stockages temporaires, chaque stockage maintenant un paquet de données pendant un cycle de l'horloge commune.