FR3112635A1 - Procédé de modélisation de la consommation de puissance d’un système sur puce avec réduction de trace de simulation/émulation - Google Patents
Procédé de modélisation de la consommation de puissance d’un système sur puce avec réduction de trace de simulation/émulation Download PDFInfo
- Publication number
- FR3112635A1 FR3112635A1 FR2007519A FR2007519A FR3112635A1 FR 3112635 A1 FR3112635 A1 FR 3112635A1 FR 2007519 A FR2007519 A FR 2007519A FR 2007519 A FR2007519 A FR 2007519A FR 3112635 A1 FR3112635 A1 FR 3112635A1
- Authority
- FR
- France
- Prior art keywords
- design
- trace
- power consumption
- simulation
- emulation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000013461 design Methods 0.000 claims abstract description 60
- 238000012549 training Methods 0.000 claims abstract description 19
- 238000011156 evaluation Methods 0.000 claims abstract description 15
- 238000000638 solvent extraction Methods 0.000 claims description 13
- 238000012417 linear regression Methods 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 7
- 238000000513 principal component analysis Methods 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 4
- 238000003786 synthesis reaction Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 230000001131 transforming effect Effects 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 description 10
- 238000010801 machine learning Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 241000283699 Bos indicus Species 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
L’invention porte sur un procédé mis en œuvre par ordinateur de conception d’un système sur puce. Ce procédé comprend la détermination d’un modèle de consommation de puissance dudit système (Mod) à partir de données d’apprentissage (Dapp) chacune constituée :
- d’une trace, dite d’apprentissage (Tapp), constituée par l’enregistrement, lors d’une simulation ou d’une émulation d’une conception possible dudit système dite d’apprentissage (Capp), d’un ensemble de valeurs de signaux dits essentielles dudit système (LSess), et
- d’une évaluation de la consommation de puissance de ladite conception d’apprentissage (Capp) basée sur la trace d’apprentissage (Tapp).
- Selon l’invention, pour constituer une trace d’apprentissage l’ensemble des valeurs des signaux essentiels n’est enregistré que sur certaines fenêtres temporelles (LW) de ladite simulation ou émulation.
Figure pour l’abrégé : Figure 1.
Description
Le domaine de l’invention est celui de la conception par ordinateur de systèmes sur puce. L’invention concerne plus particulièrement les méthodes d’analyse de consommation de puissance de systèmes sur puce en cours de développement qui exploitent un modèle construit par apprentissage machine.
L’analyse de la consommation de puissance est une étape importante durant le développement de logiciels et de matériels. Au niveau logiciel, il est par exemple nécessaire d’instrumenter un système sur puce à des fins de gestion de la consommation de puissance dans le but d’augmenter la durée de vie des batteries. L’analyse de consommation de puissance est aussi utilisée lors de l’étape de développement matériel d’une architecture numérique afin d’apporter au plus tôt des modifications permettant à cette architecture de moins consommer.
Avec la complexité grandissante des architectures numériques et des applications exécutées sur ces architectures, l’analyse de consommation prend beaucoup de temps (plusieurs semaines ou mois) car elle dépend d’une longue trace de simulation correspondant à l’enregistrement d’une grande quantité de données. Ainsi, pour accélérer cette étape et comme par exemple décrit dans l’article de Y. Zhou, H. Ren, Y. Zhang, B. Keller, B. Khailany et Z. Zhang, intitulé «PRIMAL: Power Inference using Machine Learning,»Design Automation Conference,pp. 1-6, 2019, il est avantageux d’avoir recours à un modèle de consommation de puissance de l’architecture numérique construit par apprentissage machine.
La création d’un modèle de consommation de puissance par apprentissage machine se décompose en deux étapes.
La première étape consiste en la génération de données d’apprentissage chacune constituée d’une trace de simulation ou d’émulation d’une conception possible (on parle également d’architecture ou dedesign) du système sur puce et d’une estimation de consommation de puissance d’une telle conception. La trace de simulation/émulation est obtenue à l’issue d’une simulation ou d’une émulation de ladite conception, avec des outils de simulation ou d’émulation du commerce. Cette trace de simulation/émulation est constituée par l’enregistrement, lors de ladite simulation ou émulation, d’un ensemble de valeurs de signaux du système dont une liste est pour cela définie. En fonction du nombre de signaux dont les valeurs sont à enregistrer, de la complexité du système et/ou de l’application exécutée sur ce système, l’étape de simulation/émulation peut être très longue. La consommation de puissance est quant à elle estimée à l’aide d’outils, très précis, d’analyse de consommation du commerce qui effectuent par exemple cette analyse à partir d’une description au niveau portes logiques de ladite conception et de la trace de simulation/émulation. Le temps d’estimation de la consommation de puissance peut être très élevé lorsque la conception est complexe et/ou lorsque la trace de simulation/émulation est grande.
La deuxième étape consiste en la modélisation elle-même qui peut être faite à l’aide d’une régression linéaire, d’un réseau de neurones convolutionnels ou d’autres algorithmes d’apprentissage. En fonction de la quantité de données utilisées lors de l’apprentissage, cette étape peut aussi être très consommatrice en temps.
Une fois le modèle construit, seule est enregistrée une trace de simulation/émulation contenant les valeurs des signaux du modèle d’une conception du système à évaluer. Cette trace de simulation/émulation et le modèle précédemment construit permettent alors de fournir une estimation de la consommation de puissance de la conception à évaluer, sans qu’il soit alors nécessaire de mener une analyse de consommation de puissance en tant que telle.
Pour que le modèle généré soit fiable il est nécessaire d’enregistrer une quantité importante de valeurs de signaux ce qui engendre une taille de trace de simulation/émulation pouvant aller jusqu’à quelques téraoctets. Par conséquent, la construction d’un tel modèle devient le nouveau goulot d’étranglement.
L’invention a pour objectif d’accélérer la modélisation de la consommation de puissance d’un système sur puce tout en générant un modèle précis.
A cet effet, l’invention propose un procédé mis en œuvre par ordinateur de conception d’un système sur puce, comprenant la détermination d’un modèle de consommation de puissance dudit système à partir de données d’apprentissage. Chaque donnée d’apprentissage comprend :
une trace, dite d’apprentissage, constituée par l’enregistrement, lors d’une simulation ou d’une émulation d’une conception possible dudit système, d’un ensemble de valeurs de signaux dits essentiels dudit système ; et
une évaluation de la consommation de puissance de ladite conception basée sur la trace d’apprentissage.
une trace, dite d’apprentissage, constituée par l’enregistrement, lors d’une simulation ou d’une émulation d’une conception possible dudit système, d’un ensemble de valeurs de signaux dits essentiels dudit système ; et
une évaluation de la consommation de puissance de ladite conception basée sur la trace d’apprentissage.
Dans ce procédé, pour constituer une trace d’apprentissage l’ensemble de valeurs des signaux essentiels n’est enregistré que sur certaines fenêtres temporelles de ladite simulation ou émulation.
Certains aspects préférés mais non limitatifs de ce procédé sont les suivants :
- il comprend une étape de sélection des fenêtres temporelles sur lesquelles l’ensemble de valeurs des signaux essentiels d’une trace d’apprentissage est enregistré, ladite étape de sélection comprenant :
- l’enregistrement, lors d’une simulation ou d’une émulation de ladite conception, d’un ensemble de valeurs de signaux dits de sélection dudit système pour constituer une trace dite de sélection ;
- le découpage de la trace de sélection en une pluralité de fenêtres temporelles successives ;
- l’identification d’ensembles de fenêtres temporelles similaires dans la pluralité de fenêtres temporelles successives ;
- pour chaque ensemble de fenêtres temporelles similaires, la sélection d’une fenêtre représentative de l’ensemble, ladite fenêtre représentative constituant une fenêtre sur laquelle l’ensemble des valeurs des signaux essentiels de la trace d’apprentissage est enregistré ;
- chacune des fenêtres temporelles successives comprend pour chacun desdits signaux de sélection une série temporelle d’instances du signal de sélection et l’identification d’ensembles de fenêtres temporelles similaires comprend :
- la transformation de chaque série temporelle en une donnée non temporelle, chacune des fenêtres temporelles successives étant représentées par un ensemble de données non temporelles,
- un partitionnement des fenêtres temporelles successives en lesdits ensembles de fenêtres temporelles similaires en fonction d’une similarité de leur représentation par l’ensemble de données non temporelles ;
- la donnée non temporelle dans laquelle une série temporelle d’instances d’un signal de sélection est transformée correspond à la somme de chaque instance de la série temporelle ;
- le partitionnement des fenêtres temporelles successives en lesdits ensembles de fenêtres temporelles similaires est un partitionnement du type à k-moyennes ;
- la sélection d’une fenêtre représentative d’un ensemble de fenêtres similaires comprend la sélection de la fenêtre la plus proche du centroïde des fenêtres similaires dudit ensemble ;
- le nombre de signaux de sélection est inférieur au nombre de signaux essentiels.
- l’enregistrement de l’ensemble de valeurs des signaux de sélection comprend, de préférence consiste en, l’enregistrement de valeurs de compteurs de performance matérielle ;
- l’évaluation de la consommation de puissance de ladite conception exploite une description de ladite conception et la trace d’apprentissage constituée lors de la simulation ou de l’émulation de ladite conception ;
- la description de ladite conception est une description au niveau transfert de registres ;
- il comprend une étape de synthèse logique qui convertit une description au niveau transferts de registres de ladite conception en ladite description au niveau portes logiques ;
- la détermination du modèle de consommation de puissance à partir des données d’apprentissage comprend une réduction de dimensionnalité suivie d’une régression linéaire ;
- la réduction de dimensionnalité comprend une analyse en composantes principales.
- il comprend comprenant une estimation de la consommation de puissance de ladite conception, ladite estimation étant basée sur une trace constituée par l’enregistrement, lors d’une simulation ou d’une émulation de ladite conception, d’un ensemble de valeurs de signaux dits d’évaluation dudit système et sur le modèle de consommation de puissance.
- l’enregistrement, lors d’une simulation ou d’une émulation de ladite conception, d’un ensemble de valeurs de signaux dits de sélection dudit système pour constituer une trace dite de sélection ;
- le découpage de la trace de sélection en une pluralité de fenêtres temporelles successives ;
- l’identification d’ensembles de fenêtres temporelles similaires dans la pluralité de fenêtres temporelles successives ;
- pour chaque ensemble de fenêtres temporelles similaires, la sélection d’une fenêtre représentative de l’ensemble, ladite fenêtre représentative constituant une fenêtre sur laquelle l’ensemble des valeurs des signaux essentiels de la trace d’apprentissage est enregistré ;
- chacune des fenêtres temporelles successives comprend pour chacun desdits signaux de sélection une série temporelle d’instances du signal de sélection et l’identification d’ensembles de fenêtres temporelles similaires comprend :
- la transformation de chaque série temporelle en une donnée non temporelle, chacune des fenêtres temporelles successives étant représentées par un ensemble de données non temporelles,
- un partitionnement des fenêtres temporelles successives en lesdits ensembles de fenêtres temporelles similaires en fonction d’une similarité de leur représentation par l’ensemble de données non temporelles ;
- la donnée non temporelle dans laquelle une série temporelle d’instances d’un signal de sélection est transformée correspond à la somme de chaque instance de la série temporelle ;
- le partitionnement des fenêtres temporelles successives en lesdits ensembles de fenêtres temporelles similaires est un partitionnement du type à k-moyennes ;
- la sélection d’une fenêtre représentative d’un ensemble de fenêtres similaires comprend la sélection de la fenêtre la plus proche du centroïde des fenêtres similaires dudit ensemble ;
- le nombre de signaux de sélection est inférieur au nombre de signaux essentiels.
- l’enregistrement de l’ensemble de valeurs des signaux de sélection comprend, de préférence consiste en, l’enregistrement de valeurs de compteurs de performance matérielle ;
- l’évaluation de la consommation de puissance de ladite conception exploite une description de ladite conception et la trace d’apprentissage constituée lors de la simulation ou de l’émulation de ladite conception ;
- la description de ladite conception est une description au niveau transfert de registres ;
- il comprend une étape de synthèse logique qui convertit une description au niveau transferts de registres de ladite conception en ladite description au niveau portes logiques ;
- la détermination du modèle de consommation de puissance à partir des données d’apprentissage comprend une réduction de dimensionnalité suivie d’une régression linéaire ;
- la réduction de dimensionnalité comprend une analyse en composantes principales.
- il comprend comprenant une estimation de la consommation de puissance de ladite conception, ladite estimation étant basée sur une trace constituée par l’enregistrement, lors d’une simulation ou d’une émulation de ladite conception, d’un ensemble de valeurs de signaux dits d’évaluation dudit système et sur le modèle de consommation de puissance.
D'autres aspects, buts, avantages et caractéristiques de l’invention apparaîtront mieux à la lecture de la description détaillée suivante de formes de réalisation préférées de celle-ci, donnée à titre d'exemple non limitatif et faite en référence aux dessins annexés sur lesquels :
EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS
L’invention a pour cadre la conception par ordinateur d’un système sur puce. Cette conception intègre l’estimation de la consommation de puissance du système sur puce pour différents applicatifs. L’invention s’inscrit plus particulièrement dans les techniques qui, pour accélérer cette estimation, élaborent et exploitent un modèle de consommation de puissance dudit système.
Dans ce cadre, l’invention porte plus particulièrement sur un procédé permettant d’accélérer la modélisation par apprentissage de la consommation de puissance des architectures numériques.
Comme représenté sur la figure 1, ce procédé comprend la détermination d’un modèle de consommation de puissance Mod d’un système sur puce à partir de données d’apprentissage Dapp chacune constituée :
- d’une trace, dite d’apprentissage Tapp, constituée par l’enregistrement, lors d’une simulation ou d’une émulation d’une conception possible dudit système CON, d’un ensemble de valeurs de signaux dits essentiels dudit système LSess, et
- d’une évaluation Papp de la consommation de puissance de ladite conception CON basée sur la trace d’apprentissage Tapp.
- d’une trace, dite d’apprentissage Tapp, constituée par l’enregistrement, lors d’une simulation ou d’une émulation d’une conception possible dudit système CON, d’un ensemble de valeurs de signaux dits essentiels dudit système LSess, et
- d’une évaluation Papp de la consommation de puissance de ladite conception CON basée sur la trace d’apprentissage Tapp.
Les données d’apprentissage Dapp sont plus particulièrement générées dans un bloc référencé 10 sur la figure 1. On retrouve dans ce bloc 10 de génération des données d’apprentissage une liste de signaux essentiels LSess de la conception CON. Ces signaux essentiels de la conception CON correspondent par exemple aux registres, aux entrées/sorties et aux signaux combinatoires non supprimés lors d’une étape de synthèse logique de la conception CON. A titre purement illustratif, dans un exemple de réalisation particulier de l’invention ces signaux essentiels sont au nombre de 60487.
Cette liste de signaux essentiels LSess est fournie à un simulateur ou à un émulateur SIM/EMU de la conception CON. Le simulateur peut être un outil de simulation qui exploite une description au niveau transferts de registres (RTL pour « Register Transfer Level ») de ladite conception CON. Dans un exemple de réalisation de l’invention, l’émulateur ZeBu® de la société Synopsys est utilisé. Le simulateur/émulateur SIM/EMU va former la trace d’apprentissage Tapp constituée par l’enregistrement, lors de la simulation ou de l’émulation de la conception CON, de l’ensemble de valeurs des signaux essentiels dudit système LSess. La trace ainsi constituée peut être enregistrée sous un format VCD (« Value Change Dump ») ou FSDB (« Fast Signal Data Base »).
L’évaluation de la consommation de puissance Papp de la conception CON est quant à elle générée par un outil d’analyse de consommation PWest, par exemple l’outil PrimeTime PX, l’outil PrimePower ou encore l’outil ZeBu® Power Analyzer, tous proposés par la société Synopsys.
Cet outil PWest exploite la trace d’apprentissage Tapp et une description de la conception CON. La description de ladite conception CON peut être une description au niveau portes logiques. Si nécessaire, une étape de synthèse logique SynLog peut être mise œuvre afin de convertir une description au niveau transferts de registres de ladite conception CON en ladite description au niveau portes logiques.
Les données d’apprentissage Dapp sont exploitées pour déterminer par apprentissage machine le modèle de consommation de puissance Mod. Une mise en forme de la trace d’apprentissage peut être réalisée qui consiste à générer une matrice d’activité, à savoir une matrice binaire dont les coefficients (0 ou 1) traduisent le changement de valeur d’un signal essentiel du cycle précédent au cycle courant. Ainsi, un changement de valeur peut correspondre à un coefficient égal à 1 et une absence de changement de valeur à un coefficient égal à 0.
L’apprentissage machine est basée sur les méthodes d’apprentissage connues, telles que la régression linéaire, la régression linéaire combinée avec de la réduction de dimensionnalité par exemple au moyen d’une analyse en composantes principales (PCA pour « Principal Component Analysis »), les réseaux de neurones convolutionnels, les arbres de décision, etc.
Dans un mode de réalisation possible, un modèle linéaire est recherché, par exemple au moyen d’une régression linéaire, qui relie la consommation de puissance P aux activités X des signaux essentiels selon P=βX avec β des coefficients à déterminer lors de la caractérisation du modèle de consommation de puissance.
Dans un mode de réalisation préférentiel, la détermination du modèle de consommation de puissance Mod intègre une réduction de dimensionnalité de manière à créer un modèle qui n’exploite parmi les signaux essentiels que des signaux pertinents en matière de consommation. Dans ce cadre, un modèle linéaire peut également être recherché, par exemple au moyen d’une réduction de dimensionnalité suivie d’une régression linéaire pour résoudre l’équation P=βX. La réduction de dimensionnalité peut par exemple être obtenue au moyen d’une analyse en composantes principales. A titre illustratif, dans un exemple de réalisation de l’invention, les seuls signaux essentiels pertinents en matière de consommation ne représentent qu’environ 2% des signaux essentiels. Une fois le modèle déterminé, la consommation de puissance peut alors être estimée selon l’équation P’=β’X’ avec X’ les activités de signaux dits d’évaluation qui correspondent aux signaux utilisés dans le modèle de consommation de puissance, en l’occurrence les seuls signaux essentiels pertinents en matière de consommation.
Selon l’invention, la taille des traces d’apprentissage Tapp est réduite. Pour cela, lors de la constitution d’une trace d’apprentissage Tapp, l’ensemble de valeurs de signaux essentiels n’est enregistré que sur certaines fenêtres temporelles de ladite simulation ou émulation SIM/EMU de la conception CON. Une liste de fenêtres LW est pour cela fournie au bloc 10 de génération des données d’apprentissage, plus particulièrement au simulateur/émulateur SIM/EMU. L’enregistrement de l’ensemble de valeurs de signaux essentiels sur une liste de fenêtres réduite permet d’accélérer l’étape de simulation ou émulation SIM/EMU de la conception CON et, de là, la constitution de la trace d’apprentissage. L’utilisation d’une trace d’apprentissage réduite permet d’accélérer fortement l’évaluation de la consommation de puissance Papp de la conception d’apprentissage Capp réalisée par l’outil d’analyse de consommation PWest. L’accélération conjointe de l’étape de simulation/émulation et de l’étape d’évaluation de la consommation de puissance permetin fined’accélérer l’étape de détermination du modèle de consommation de puissance Mod.
Cette liste LW est plus particulièrement fournie au bloc 10 par un bloc 20 de sélection des fenêtres temporelles sur lesquelles l’ensemble de valeurs des signaux essentiels d’une trace d’apprentissage est enregistré. D’une manière générale, ce bloc 20 vient générer une trace de simulation/émulation de la conception CON constituée par l’enregistrement de valeurs d’un faible nombre de signaux du système sur puce en cours de développement, ces signaux étant fortement corrélées aux différents états de fonctionnement dudit système. Puis les redondances dans cette trace de simulation/émulation sont identifiées et éliminées. Seules des fenêtres temporelles uniques caractéristiques de l’activité du système sur puce sont alors conservées pour former la liste LW.
Dans un mode de réalisation possible, le procédé selon l’invention comprend la mise en œuvre dans le bloc 20 d’une étape de sélection, manuelle ou automatique, des fenêtres temporelles LW sur lesquelles l’ensemble de valeurs des signaux essentiels LSess d’une trace d’apprentissage Tapp de la conception CON est enregistré. Ladite étape de sélection comprend l’enregistrement, lors d’une simulation ou d’une émulation de la conception CON, d’un ensemble de valeurs de signaux dits de sélection dudit système LSsel pour constituer une trace dite de sélection Tsel.
On retrouve ainsi dans ce bloc 20 une liste des signaux de sélection LSsel de la conception CON. Ces signaux de sélection sont de préférence fortement corrélés au fonctionnement de la conception CON et en nombre inférieur au nombre de signaux essentiels.
Dans un mode de réalisation préférentiel, l’ensemble de valeurs des signaux de sélection comprend, de préférence consiste en, un ensemble de valeurs de compteurs de performance matérielle (HPC pour « Hardware Performance Counter », ces compteurs étant également désignés comme des moniteurs de performance matérielle HPM pour « Hardware Performance Monitors ») qui permettent d’observer la performance d’une application exécutée sur un processeur.
Dans une réalisation de l’invention basée sur le processeur RISC-V Rocket core, les signaux de sélection sont constitués de moniteurs HPM qui, en faible nombre, permettent d’avoir des informations telles que le nombre d’instructions exécutées par cycles et leur type, le nombre d’accès aux caches, etc. A titre d’exemple illustratif, les 12 HPM suivants ont pu être retenus dans la liste des signaux de sélection LSsel :
Type d’évènements | HPM |
Mémoire et système | Défaut de cache de données/Accès MMIO (Data cache miss/MMIO access) |
Présence en cache de données (Data cache hits) | |
Présence en cache d’instructions (Instruction cache hits) | |
Instructions | Chargement de donnée entière (Integer load) |
Stockage de donnée entière (Integer store) | |
Division de donnée entière (Integer division) | |
Opération arithmétique de donnée entière (Integer arithmetic) | |
Microarchitecture | Branche conditionnelle (Conditional branch) |
Mauvaise prédiction de direction de branchement (Branch direction misprediction) | |
Mauvaise prediction de saut de branchement (Branch jump to target misprediction) | |
Vidage du pipeline (Pipeline flush) | |
Verrouillage de multiplication entière (Integer multiply interlock) |
Cette liste de signaux de sélection LSsel est fournie au simulateur ou à l’émulateur SIM/EMU lors de la simulation ou émulation de la conceptionCON. Le simulateur/émulateur SIM/EMU va former la trace de sélection Tsel constituée par l’enregistrement, lors de la simulation ou de l’émulation de la conception CON, de l’ensemble de valeurs des signaux de sélection LSsel. La trace ainsi constituée peut être enregistrée sous un format VCD (« Value Change Dump ») ou FSDB (« Fast Signal Data Base »).
L’étape de sélection des fenêtres temporelles LW peut se poursuivre de manière à identifier et éliminer les redondances dans la trace de sélection Tsel par une opération d’analyse ELIM de la trace de sélection. En référence à la figure 2, cette opération d’analyse peut comprendre :
- le découpage WD de la trace de sélection en une pluralité de fenêtres temporelles successives, typiquement en fenêtres de même taille, par exemple en fenêtres de 100 cycles;
- l’identification TRANS, CLUST d’ensembles de fenêtres temporelles similaires dans la pluralité de fenêtres temporelles successives ;
- pour chaque ensemble de fenêtres temporelles similaires, la sélection SLC d’une fenêtre représentative de l’ensemble, ladite fenêtre représentative étant intégrée à la liste LW comme une fenêtre sur laquelle l’ensemble de valeurs des signaux essentiels de la trace d’apprentissage est enregistré.
- le découpage WD de la trace de sélection en une pluralité de fenêtres temporelles successives, typiquement en fenêtres de même taille, par exemple en fenêtres de 100 cycles;
- l’identification TRANS, CLUST d’ensembles de fenêtres temporelles similaires dans la pluralité de fenêtres temporelles successives ;
- pour chaque ensemble de fenêtres temporelles similaires, la sélection SLC d’une fenêtre représentative de l’ensemble, ladite fenêtre représentative étant intégrée à la liste LW comme une fenêtre sur laquelle l’ensemble de valeurs des signaux essentiels de la trace d’apprentissage est enregistré.
Chacune des fenêtres temporelles successives comprend pour, chacun desdits signaux de sélection, une série temporelle d’instances d’un signal de sélection, où chaque instance représentant la valeur du signal de sélectionjau cyclekest notéee k ,j .
Les algorithmes pour identifier des similitudes entre des séries temporelles ont une complexité très élevée et sont donc très gourmands en calcul contrairement aux algorithmes utilisés pour identifier des similitudes entre données non temporelles. Ainsi dans un mode de réalisation privilégié de l’invention, l’identification d’ensembles de fenêtres temporelles similaires comprend :
- la transformation TRANS de chaque série temporelle en une donnée non temporelle, chacune des fenêtres temporelles successives étant représentées par un ensemble des données non temporelles,
- un partitionnement CLUST des fenêtres temporelles successives en lesdits ensembles de fenêtres temporelles similaires en fonction d’une similarité de leur représentation par l’ensemble de données non temporelles.
- la transformation TRANS de chaque série temporelle en une donnée non temporelle, chacune des fenêtres temporelles successives étant représentées par un ensemble des données non temporelles,
- un partitionnement CLUST des fenêtres temporelles successives en lesdits ensembles de fenêtres temporelles similaires en fonction d’une similarité de leur représentation par l’ensemble de données non temporelles.
La donnée non temporelle dans laquelle une série temporelle d’instances d’un signal de sélection est transformée peut correspondre à la somme de chaque instance de la série temporelle. Avecwsreprésentant la taille d’une fenêtre en nombre de cycles, la donnée non temporelle relative à la série temporelle des valeurs d’un signal de sélectionjpour la fenêtreis’exprime selon . Ainsi, après transformation des séries temporelles, chaque fenêtreise retrouve représentée par un vecteur de données non temporelles avec m le nombre de signaux de sélection. Le partitionnement CLUST est alors mis en œuvre pour identifier des fenêtres présentant des vecteurs de données non temporelles similaires.
Dans un mode de réalisation possible, le partitionnement des fenêtres temporelles successives en ensembles de fenêtres temporelles similaires est un partitionnement du type à k-moyennes. L’invention n’est toutefois aucunement limitée à ce type d’algorithme, d’autres algorithmes de partitionnement pouvant parfaitement être mis en œuvre comme par exemple l’algorithme de classification ascendante hiérarchique (CAH) ou le k-médoïdes.
Lorsqu’un partitionnement du type à k-moyennes est utilisé, la sélection d’une fenêtre représentative d’un ensemble de fenêtres similaires peut comprendre la sélection de la fenêtre la plus proche (par exemple au sens de la distance euclidienne ou de la distance de Manhattan) du centroïde des fenêtres similaires dudit ensemble. Lorsqu’un partitionnement du type à k-médoïdes est utilisé, la fenêtre représentative peut correspondre au médoïde qui est la fenêtre la plus centrale d’une partition.
Dans un exemple de réalisation de l’invention, l’exploitation de la liste LW pour réduire la taille de la trace d’apprentissage conduit, dans le cas d’un démarrage d’un système d’exploitation Linux sur le processeur RISC-V Rocket core, à ce que cette trace d’apprentissage présente une taille de 55 Mo là où elle présenterait une taille de 161 Go en l’absence de mise en œuvre de l’invention. Un taux de compression d’environ 3000 est ainsi constaté.
Des résultats du temps d’exécution nécessaire pour mener différentes étapes de la détermination d’un modèle de consommation de puissance sont donnés ci-dessous à titre d’exemples, en venant comparer mise en œuvre de l’invention (« Avec fenêtrage ») et absence de mise en œuvre de l’invention (« Sans fenêtrage ») toujours dans le cadre d’un démarrage d’un système d’exploitation Linux.
Etapes | Temps d’exécution (secondes) | |
Sans fenêtrage | Avec fenêtrage | |
Génération de la trace de sélection | - | 994 |
Sélection des fenêtres | - | 900 |
Génération de la trace d’apprentissage | 8354 | 197 |
Génération de la donnée d’apprentissage | Impossible à générer | 85 |
Création du modèle de consommation de puissance | Infaisable | 115 |
Total | Infaisable | 2291 |
On constate ainsi que 38 minutes seulement sont nécessaires pour élaborer le modèle de consommation de puissance.
On rappelle en outre que ce modèle peut ne reposer que sur des signaux essentiels pertinents en matière de consommation qui ne représentent qu’environ 2% des signaux essentiels. Pour autant le modèle présente une précision d’environ 95%.
On a représenté sur la figure 3 un schéma représentant l’utilisation du modèle de consommation de puissance Mod pour estimer la consommation de puissance de la conception CON. Cette estimation est basée sur une trace Teva constituée par l’enregistrement, lors d’une simulation ou d’une émulation SIM/EMU de ladite conception CON, d’un ensemble de valeurs de signaux dits d’évaluation dudit système (définis dans une liste LSeva) et sur le modèle de consommation de puissance Mod. Les signaux d’évaluation correspondent aux signaux utilisés dans le modèle de consommation de puissance Mod.
L’invention n’est pas limitée au procédé tel que précédemment décrit, mais s’étend également à un produit programme d’ordinateur comprenant des instructions de code de programme pour la mise en œuvre de ce procédé lorsque ledit programme est exécuté sur un ordinateur.
Claims (15)
- Procédé mis en œuvre par ordinateur de conception d’un système sur puce, comprenant la détermination d’un modèle de consommation de puissance dudit système (Mod) à partir de données d’apprentissage (Dapp) chacune constituée :
- d’une trace, dite d’apprentissage (Tapp), constituée par l’enregistrement, lors d’une simulation ou d’une émulation d’une conception possible dudit système (CON), d’un ensemble de valeurs de signaux dits essentiels dudit système (LSess) ; et
- d’une évaluation de la consommation de puissance de ladite conception (CON) basée sur la trace d’apprentissage (Tapp) ;
- Procédé selon la revendication 1, comprenant une étape de sélection des fenêtres temporelles sur lesquelles l’ensemble de valeurs des signaux essentiels d’une trace d’apprentissage est enregistré, ladite étape de sélection comprenant :
- l’enregistrement, lors d’une simulation ou d’une émulation de ladite conception (CON), d’un ensemble de valeurs de signaux dits de sélection dudit système (LSsel) pour constituer une trace dite de sélection (Tsel) ;
- le découpage de la trace de sélection en une pluralité de fenêtres temporelles successives ;
- l’identification d’ensembles de fenêtres temporelles similaires dans la pluralité de fenêtres temporelles successives ;
- pour chaque ensemble de fenêtres temporelles similaires, la sélection d’une fenêtre représentative de l’ensemble, ladite fenêtre représentative constituant une fenêtre sur laquelle l’ensemble des valeurs des signaux essentiels de la trace d’apprentissage est enregistré.
- Procédé selon la revendication 2, dans lequel chacune des fenêtres temporelles successives comprend pour chacun desdits signaux de sélection une série temporelle d’instances du signal de sélection et dans lequel l’identification d’ensembles de fenêtres temporelles similaires comprend :
- la transformation de chaque série temporelle en une donnée non temporelle, chacune des fenêtres temporelles successives étant représentées par un ensemble de données non temporelles,
- un partitionnement des fenêtres temporelles successives en lesdits ensembles de fenêtres temporelles similaires en fonction d’une similarité de leur représentation par l’ensemble de données non temporelles.
- Procédé selon la revendication 3, dans lequel la donnée non temporelle dans laquelle une série temporelle d’instances d’un signal de sélection est transformée correspond à la somme de chaque instance de la série temporelle.
- Procédé selon l’une des revendications 3 et 4, dans lequel le partitionnement des fenêtres temporelles successives en lesdits ensembles de fenêtres temporelles similaires est un partitionnement du type à k-moyennes.
- Procédé selon la revendication 5, dans lequel la sélection d’une fenêtre représentative d’un ensemble de fenêtres similaires comprend la sélection de la fenêtre la plus proche du centroïde des fenêtres similaires dudit ensemble.
- Procédé selon l’une des revendications 2 à 6, dans lequel le nombre de signaux de sélection est inférieur au nombre de signaux essentiels.
- Procédé selon la revendication 7, dans lequel l’enregistrement de l’ensemble de valeurs des signaux de sélection comprend, de préférence consiste en, l’enregistrement de valeurs de compteurs de performance matérielle.
- Procédé selon l’une des revendications 1 à 7, dans lequel l’évaluation de la consommation de puissance de ladite conception (CON) exploite une description de ladite conception et la trace d’apprentissage (Tapp) constituée lors de la simulation ou de l’émulation de ladite conception.
- Procédé selon la revendication 9, dans lequel la description de ladite conception est une description au niveau transfert de registres.
- Procédé selon la revendication 10, comprenant une étape de synthèse logique (SynLog) qui convertit une description au niveau transferts de registres de ladite conception en ladite description au niveau portes logiques.
- Procédé selon l’une des revendications 1 à 11, dans lequel la détermination du modèle de consommation de puissance à partir des données d’apprentissage comprend une réduction de dimensionnalité suivie d’une régression linéaire.
- Procédé selon la revendication 12, dans lequel la réduction de dimensionnalité comprend une analyse en composantes principales.
- Procédé selon l’une des revendications 1 à 13, comprenant en outre une estimation de la consommation de puissance de ladite conception (CON), ladite estimation étant basée sur une trace (Teva) constituée par l’enregistrement, lors d’une simulation ou d’une émulation de ladite conception, d’un ensemble de valeurs de signaux dits d’évaluation dudit système (LSeva) et sur le modèle de consommation de puissance (Mod).
- Produit programme d’ordinateur comprenant des instructions de code de programme pour la mise en œuvre du procédé selon l’une des revendications 1 à 14 lorsque ledit programme est exécuté sur un ordinateur.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2007519A FR3112635B1 (fr) | 2020-07-17 | 2020-07-17 | Procédé de modélisation de la consommation de puissance d’un système sur puce avec réduction de trace de simulation/émulation |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2007519 | 2020-07-17 | ||
FR2007519A FR3112635B1 (fr) | 2020-07-17 | 2020-07-17 | Procédé de modélisation de la consommation de puissance d’un système sur puce avec réduction de trace de simulation/émulation |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3112635A1 true FR3112635A1 (fr) | 2022-01-21 |
FR3112635B1 FR3112635B1 (fr) | 2024-01-19 |
Family
ID=73793285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2007519A Active FR3112635B1 (fr) | 2020-07-17 | 2020-07-17 | Procédé de modélisation de la consommation de puissance d’un système sur puce avec réduction de trace de simulation/émulation |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR3112635B1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118379916A (zh) * | 2024-06-25 | 2024-07-23 | 浙江大成工程项目管理有限公司 | 一种基于用户侧的能效诊断仿真培训系统 |
-
2020
- 2020-07-17 FR FR2007519A patent/FR3112635B1/fr active Active
Non-Patent Citations (4)
Title |
---|
ISCI C ET AL: "Identifying program power phase behavior using power vectors", WORKLOAD CHARACTERIZATION, 2003. WWC-6. 2003 IEEE INTERNATIONAL WORKSH OP ON OCT. 27, 2003, PISCATAWAY, NJ, USA,IEEE, 1 January 2003 (2003-01-01), pages 108 - 118, XP010670880, ISBN: 978-0-7803-8229-9, DOI: 10.1109/WWC.2003.1249062 * |
SAGI MARK ET AL: "Multicore Power Estimation using Independent Component Analysis Based Modeling", 2019 IEEE 13TH INTERNATIONAL SYMPOSIUM ON EMBEDDED MULTICORE/MANY-CORE SYSTEMS-ON-CHIP (MCSOC), IEEE, 1 October 2019 (2019-10-01), pages 38 - 45, XP033662663, DOI: 10.1109/MCSOC.2019.00013 * |
TODI R: "SPEClite: using representative samples to reduce SPEC CPU2000 workload", WORKLOAD CHARACTERIZATION, 2001. WWC-4. 2001 IEEE INTERNATIONAL WORKSH OP ON 2 DEC. 2001, PISCATAWAY, NJ, USA,IEEE, 1 January 2001 (2001-01-01), pages 15 - 23, XP010583987, ISBN: 978-0-7803-7315-0 * |
Y. ZHOUH. RENY. ZHANGB. KELLERB. KHAILANYZ. ZHANG: "PRIMAL: Power Inference using Machine Learning", DESIGN AUTOMATION CONFERENCE, 2019, pages 1 - 6, XP033601465 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118379916A (zh) * | 2024-06-25 | 2024-07-23 | 浙江大成工程项目管理有限公司 | 一种基于用户侧的能效诊断仿真培训系统 |
Also Published As
Publication number | Publication date |
---|---|
FR3112635B1 (fr) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10846643B2 (en) | Method and system for predicting task completion of a time period based on task completion rates and data trend of prior time periods in view of attributes of tasks using machine learning models | |
EP3155608B1 (fr) | Procedé de suivi d'une partition musicale et modélisation associée | |
Liu et al. | A semi-supervised and inductive embedding model for churn prediction of large-scale mobile games | |
US20200285960A1 (en) | Effective user modeling with time-aware based binary hashing | |
JP2018526710A (ja) | 情報推薦方法および情報推薦装置 | |
CN111369299B (zh) | 识别的方法、装置、设备及计算机可读存储介质 | |
CN111258593B (zh) | 应用程序预测模型的建立方法、装置、存储介质及终端 | |
US20210279606A1 (en) | Automatic detection and association of new attributes with entities in knowledge bases | |
US20210374582A1 (en) | Enhanced Techniques For Bias Analysis | |
FR2966618A1 (fr) | Traduction automatique utilisant un echantillonnage et des alignements de biphrases qui se recoupent | |
Evans | Uncertainty and error | |
CN111553729A (zh) | 一种电商用户画像数据生成方法、装置和计算设备 | |
CN111973996A (zh) | 一种游戏资源投放方法和装置 | |
CN112148552A (zh) | 用于选择代码数据结构类型的方法、系统、制品和装置 | |
CN117235586B (zh) | 酒店客户画像构建方法、系统、电子设备及存储介质 | |
CN114514537A (zh) | 用于高效数据协同聚类的协同信息生成对抗网络 | |
US11907962B2 (en) | Estimating conversions | |
FR3112635A1 (fr) | Procédé de modélisation de la consommation de puissance d’un système sur puce avec réduction de trace de simulation/émulation | |
Ouyang et al. | Modeling and forecasting the popularity evolution of mobile apps: A multivariate hawkes process approach | |
AU2021251463B2 (en) | Generating performance predictions with uncertainty intervals | |
FR3082962A1 (fr) | Determination automatique et auto-optimisee des parametres d'execution d'une application logicielle sur une plateforme de traitement de l'information | |
RU2715024C1 (ru) | Способ отладки обученной рекуррентной нейронной сети | |
WO2019160691A1 (fr) | Système et procédé d'acquisition d'utilisateur pour une application client | |
US20230063608A1 (en) | Measure gui response time | |
EP4252162A1 (fr) | Procédé d'évaluation de la performance d'un algorithme de prédiction et dispositifs associés |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20220121 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |
|
PLFP | Fee payment |
Year of fee payment: 5 |