Key points are not available for this paper at this time.
Les progrès dans le matériel ont livré une puissance de calcul formidable. Cependant, la complexité accrue du matériel a rendu difficile le développement de logiciels qui exploitent le matériel à son plein potentiel. De nombreuses approches ont été explorées pour aider les programmeurs à transformer du code naïf en code haute performance, finement réglé pour le matériel cible. Cependant, ces approches présentent des limitations inhérentes et il reste courant pour les programmeurs cherchant une performance maximale de suivre le chemin fastidieux et sujet à erreurs d'écrire du code optimisé à la main. Cet article présente OptiTrust, un cadre d'optimisation interactif source-à-source qui fonctionne sur le code C à usage général. Le programmeur développe un script décrivant une série de transformations de code. Le cadre fournit des retours continus sous forme de différences lisibles par l'homme sur le code C conventionnel. OptiTrust prend en charge des transformations de code avancées, y compris celles exploitées par les outils DSL à la pointe de la technologie Halide et TVM, et des transformations au-delà des capacités des outils existants. OptiTrust prend également en charge des transformations définies par l'utilisateur, ainsi que la définition de transformations complexes par composition de transformations plus simples. De manière cruciale, pour vérifier la validité des transformations de code, OptiTrust s'appuie sur une analyse statique des ressources sous une forme simplifiée de logique de séparation. À partir des annotations fournies par l'utilisateur sur les fonctions et les boucles, notre analyse déduit une utilisation précise des ressources tout au long du code.
Bertholon et al. (jeu,) ont étudié cette question.