Brevet FR3072797A1 (20190426)

REVENDICATIONS1. Procédé d'actionnement d'un système comprenant de multiples pavés processeurs divisés en une pluralité de domaines, dans lequel dans chaque domaine les pavés sont connectés entre eux par l'intermédiaire d'une instance respective d'une interconnexion déterministe dans le temps, et entre les domaines les pavés sont connectés entre eux par l'intermédiaire d'une interconnexion non déterministe dans le temps ; le procédé comprenant : sur chaque pavé respectif d'un groupe participant de certains ou de la totalité des pavés dans l'ensemble des domaines, réaliser un étage de calcul dans lequel le pavé respectif réalise un ou plusieurs calculs respectifs sur le pavé, mais ne communique des résultats de calcul ni vers ni à partir d'aucun autre des pavés du groupe ; dans chaque domaine respectif desdits un ou plusieurs domaines, réaliser une synchronisation à barrière interne respective pour imposer que tous les pavés participants dans le domaine respectif aient achevé la phase de calcul avant que l'un quelconque des pavés participants dans le domaine respectif ne soit autorisé à procéder à une phase d'échange interne, établissant ainsi une référence de temps commune entre tous les pavés participants de manière interne dans chaque domaine individuel desdits un ou plusieurs domaines ; à la suite de la synchronisation à barrière interne respective, réaliser la phase d'échange interne dans chacun desdits un ou plusieurs domaines, dans laquelle chaque pavé participant dans le domaine respectif communique un ou plusieurs résultats de ses calculs respectifs vers et/ou à partir d'un ou plusieurs autres pavés parmi les pavés participants dans le même domaine par l'intermédiaire de l'interconnexion déterministe dans le temps, mais ne 103 B17782 FR - 409133FR communique des résultats de calcul ni vers ni à partir d'aucun autre desdits domaines ; réaliser une synchronisation à barrière externe pour imposer que tous les pavés participants desdits domaines aient achevé leur phase d'échange interne avant que l'un quelconque des pavés participants ne soit autorisé a procéder à une phase d'échange externe, établissant ainsi une référence de temps commune entre tous les pavés participants dans l'ensemble des domaines ; et à la suite de la synchronisation à barrière externe, réaliser la phase d'échange externe dans laquelle un ou plusieurs des pavés participants communiquent un ou plusieurs des résultats de calcul avec un autre des domaines par l'intermédiaire de l'interconnexion non déterministe dans le temps.\n<CLM>\1\tProcédé selon la revendication 1, dans lequel les communications via l'interconnexion non déterministe dans le temps sont mises en file d'attente, mais les communications entre pavés via l'interconnexion déterministe dans le temps ne sont pas mises en file d'attente.\n<CLM>\1\tProcédé selon la revendication 1 ou 2, dans lequel sur l'interconnexion déterministe dans le temps, la communication entre chaque paire de pavés émetteur Pt récepteur est réalisée par : émission d'un message à partir du pavé récepteur, et contrôle du pavé récepteur pour écouter une adresse du pavé émetteur à un intervalle de temps prédéterminé après l'émission par le pavé émetteur, dans lequel l'intervalle de temps prédéterminé est égal à un délai prédéterminé total entre le pavé émetteur et le pavé récepteur, l'intervalle de temps étant défini par un compilateur ayant une information prédéterminée sur le délai. 104 B17782 FR - 409133FR\n<CLM>\1\tProcédé selon l'une quelconque des revendications précédentes, dans lequel l'interconnexion déterministe dans le temps est sans pertes, alors que l'interconnexion non déterministe dans le temps est avec pertes au niveau d'une couche physique, d'une couche transport ou d'une couche réseau. Procédé selon l'une quelconque des revendications précédentes, dans lequel chacun des domaines est une puce respective différente, l'interconnexion déterministe dans le temps étant une interconnexion interne sur la puce et l'interconnexion non déterministe dans le temps étant une interconnexion externe entre les puces.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 4, dans lequel chacun des domaines comprend de multiples puces, l'interconnexion déterministe dans le temps étant une interconnexion externe inter-puce sans pertes et l'interconnexion non déterministe dans le temps étant une interconnexion externe avec pertes.\n<CLM>\1\tProcédé selon l'une quelconque des revendications précédentes, comprenant la réalisation d'une série d'itérations répétitives, chacune comprenant une instance respective de l'étage de calcul, suivie d'une instance respective de la synchronisation à barrière interne, suivie d'une instance respective de la phase d'échange interne, suivie d'une instance respective de la synchronisation à barrière externe, suivie d'une instance respective de la phase d'échange externe ; dans lequel chaque itération successive n'est pas autorisée à procéder avant que la synchronisation à barrière externe de l'itération immédiatement précédente ait été réalisée.\n<CLM>\1\tProcédé selon l'une quelconque des revendications précédentes, comprenant la réalisation d'une séquence 105 B17782 FR - 409133FR d'instances de la phase de calcul, chacune étant suivie d'une instance correspondante de la phase d'échange interne puis d'une instance correspondante de la synchronisation à barrière interne, dans lequel la synchronisation à barrière externe suit la dernière phase de calcul dans ladite séquence.\n<CLM>\1\tProcédé selon les revendications 7 et 8, dans lequel chacune d'une ou plusieurs des itérations comprend une séquence respective de multiples instances de la phase de calcul, chacune étant suivie d'une instance correspondante de la phase d'échange interne puis d'une instance correspondante de la synchronisation à barrière interne, dans lequel la synchronisation à barrière externe respective suit la dernière instance de la phase de calcul dans la séquence respective.\n<CLM>\1\tProcédé selon l'une quelconque des revendications précédentes, dans lequel chacune des synchronisations à barrière interne et externe est réalisée en exécutant une instruction de synchronisation comprenant un code opération et un opérande, dans lequel l'opérande spécifie un mode de l'instruction de synchronisation comme étant soit interne soit externe, et dans lequel le code opération, lorsqu'il est exécuté, amène de la logique matérielle se trouvant dans l'interconnexion déterministe dans _Le temps à coordonner le fonctionnement de la synchronisation a barrière interne lorsque l'opérande spécifie le mode interne, et amène la logique matérielle se trouvant dans l'interconnexion non déterministe dans le temps coordonner le fonctionnement de la synchronisation barrière externe lorsque l'opérande spécifie le mode externe. 106 B17782 FR - 409133FR\n<CLM>\1\tProcédé selon l'une quelconque des revendications précédentes, comprenant la sélection de l'une d'une pluralité de zones prédéfinies comme pavés participants, chaque zone comprenant un ensemble ou un sous-ensemble différent des multiples domaines.\n<CLM>\1\tProcédé selon la revendication 11, dans lequel les zones sont hiérarchiques, avec au moins deux zones de niveau inférieur qui sont imbriquées dans au moins une zone de niveau supérieur.\n<CLM>\1\tProcédé selon la revendication 10, et les revendications 11 ou 12, dans lequel l'opérande de l'instruction de synchronisation spécifie laquelle d'une pluralité de variantes différentes possibles du mode externe de la synchronisation à barrière externe s'applique, chacune correspondant à une zone différente dans lesdites zones.\n<CLM>\1\tProcédé selon les revendications 12 et 13, dans lequel les variantes du mode externe spécifient au moins à quel niveau hiérarchique de zone s'applique la synchronisation à barrière externe.\n<CLM>\1\tProcédé selon la revendication 12 ou selon l'une quelconque des revendications dépendantes, dans lequel la synchronisation et l'échange externes comprennent : premièrement réaliser une synchronisation externe d'un premier niveau puis un échange contraint dans une première zone d'un niveau inférieur des zones hiérarchiques ; et à la suite de la synchronisation et de l'échange du premier niveau, réaliser une synchronisation et un échange externe d'un deuxième niveau dans une deuxième zone d'un niveau supérieur desdites zones.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 11 à 15, dans lequel l'une des zones hiérarchiques est 107 B17782 FR - 409133FR constituée de tous les pavés se trouvant sur un même boîtier de circuit intégré, IC, mais pas au-delà ; et/ou l'une des zones hiérarchiques est constituée de tous les pavés se trouvant dans une même carte, mais pas au-delà ; et/ou l'une des zones hiérarchiques est constituée de tous les pavés se trouvant dans un même châssis, mais pas au-delà.\n<CLM>\1\tProcédé selon l'une quelconque des revendications précédentes, comprenant l'exécution d'une instruction d'abstention sur l'un ou certains des pavés, le code opération de l'instruction d'abstention amenant le ou les pavés sur lesquels elle est exécutée à être exclu du groupe.\n<CLM>\1\tProcédé selon l'une quelconque des revendications précédentes, dans lequel dans la phase d'échange externe, un ou plusieurs des pavés participants communiquent aussi un ou plusieurs des résultats de calcul à un processeur hôte via l'interconnexion externe, le processeur hôte étant mis en oeuvre sur une puce de processeur hôte séparée.\n<CLM>\1\tProcédé selon l'une quelconque des revendications précédentes, dans lequel, dans la phase de calcul, certains ou la totalité des pavés participants exécutent un lot de fils de travail de manière entrelacée, et la synchronisation à barrière interne impose que tous les fils de travail dans tous les lots soient sortis.\n<CLM>\1\tProcédé selon l'une quelconque des revendications précédentes, comprenant l'utilisation du système pour réaliser un algorithme d'intelligence artificielle dans lequel chaque noeud se trouvant dans un graphe comporte un ou plusieurs sommets d'entrée respectifs et un ou plusieurs sommets de sortie respectifs, les sommets d'entrée d'au moins certains des noeuds étant les sommets de sortie d'au moins certains autres des noeuds, chaque noeud comprenant une fonction respective reliant ses sommets de sortie à ses 108 B17782 FR - 409133FR sommets d'entrée, chaque fonction respective étant paramétrée par un ou plusieurs paramètres respectifs, et chacun des paramètres respectifs ayant une erreur associée, de sorte que le graphe converge vers une solution lorsque les erreurs dans certains ou la totalité des paramètres se réduisent ; dans lequel chacun des pavés modélise un ou plusieurs noeuds respectifs des noeuds du graphe.\n<CLM>\1\tProcédé selon la revendication 5 ou 6, et selon les revendications 18 et 19, dans lequel les puces sont des puces accélératrices AI assistant le processeur hôte.\n<CLM>\1\tProduit programme informatique incorporé sur un élément de stockage lisible par un ordinateur et comprenant du code agencé pour, lorsqu'il est exécuté sur les pavés, réaliser des opérations selon l'une quelconque des revendications 1 à\n<CLM>\1\t23. Système comprenant de multiples pavés processeurs divisés en une pluralité de domaines, dans lequel dans chaque domaine les pavés sont connectés entre eux via une instance respective d'une interconnexion déterministe dans le temps et entre les domaines les pavés sont connectés entre eux via une interconnexion non déterministe dans le temps ; le système étant programmé pour réaliser les opérations suivantes : sur chaque pavé respectif d'un groupe participant de certains ou de la totalité des pavés dans l'ensemble des domaines, réaliser un étage de calcul dans lequel le pavé respectif réalise un ou plusieurs calculs respectifs sur le pavé, mais ne communique des résultats de calcul ni vers ni à partir d'aucun autre des pavés du groupe ; dans chaque domaine respectif desdits un ou plusieurs domaines, réaliser une synchronisation à barrière interne 109 B17782 FR - 409133FR respective pour imposer que tous les pavés participants dans le domaine respectif aient achevé la phase de calcul avant que l'un quelconque des pavés participants dans le domaine respectif ne soit autorisé à procéder à une phase d'échange interne, établissant ainsi une référence de temps commune entre tous les pavés participants de manière interne dans chaque domaine individuel desdits un ou plusieurs domaines ; à la suite de la synchronisation à barrière interne respective, réaliser la phase d'échange interne dans chacun desdits un ou plusieurs domaines, dans laquelle chaque pavé participant dans le domaine respectif communique un ou plusieurs résultats de ses calculs respectifs vers et/ou à partir d'un ou plusieurs autres pavés parmi les pavés participants dans le même domaine par l'intermédiaire de l'interconnexion déterministe dans le temps, mais ne communique des résultats de calcul ni vers ni à partir d'aucun autre desdits domaines ; réaliser une synchronisation à barrière externe pour imposer que tous les pavés participants desdits domaines aient achevé leur phase d'échange interne avant que l'un quelconque des pavés participants ne soit autorisé à procéder à une phase d'échange externe, établissant ainsi une référence de temps commune entre tous les pavés participants dans l'ensemble des domaines ; et à la suite de la synchronisation à barrière externe, réaliser la phase d'échange externe dans laquelle un ou plusieurs des pavés participants communiquent un ou plusieurs des résultats de calcul avec un autre des domaines par l'intermédiaire de l'interconnexion non déterministe dans le temps.