Machine learning for timing estimation
L'apprentissage machine pour l'estimation du temps
Résumé
Estimating program execution time is a key but challenging task, further complicated by the growing complexity and insufficient documentation of modern processor architectures. While traditional methods like cycle-accurate simulators are precise, they are time-consuming and demand an in-depth understanding of the processor's architecture. A new data-driven approach utilizing machine learning techniques has been developed to address these limitations. However, while existing machine learning models offer rapid estimations, they are primarily tailored for simpler architectures with constant instruction timings. This document aims to develop new machine-learning methods for complex, undocumented processors by introducing context awareness into timing models based on machine learning. A novel approach treats instruction sequences like natural language and employs advanced machine learning algorithms such as Long Short-Term Memory networks and Transformers. This allows the model to consider complex features such as cache and pipeline effects, improving the accuracy for both worst-case and average-case execution times.
L'estimation du temps d'exécution des programmes est une tâche clé mais difficile, rendue encore plus complexe par la croissance de la complexité et l'insuffisance de la documentation des architectures de processeurs modernes. Bien que les méthodes traditionnelles comme les simulateurs précis au cycle soient exactes, elles sont également longues et nécessitent une compréhension approfondie de l'architecture du processeur. Pour aborder ces limitations, une nouvelle approche basée sur les données et utilisant des techniques d'apprentissage automatique a été développée. Cependant, bien que les modèles d'apprentissage automatique existants offrent des estimations rapides, ils sont principalement adaptés à des architectures simples avec des temps d'instruction constants. Ce document vise à développer de nouvelles méthodes d'apprentissage automatique pour des processeurs complexes et non documentés en introduisant la prise en compte du contexte dans les modèles de timing basés sur l'apprentissage automatique. Une approche novatrice traitant les séquences d'instructions comme un langage naturel et emploie des algorithmes d'apprentissage automatique avancés tels que les réseaux Long Short-Term Memory et les Transformers. Ceci permet au modèle de prendre en compte des caractéristiques complexes telles que les effets de cache et de pipeline, améliorant la précision pour les temps d'exécution moyens et pires cas.
Origine | Version validée par le jury (STAR) |
---|