11.3.4.5 : Les générateurs de code



Les générateurs de code permettent, à partir d'un programme écrit dans un langage spécifique (Domain Specific Language, DSL) ou d'un langage donné (C++, C, Python), d'écrire du code C++, CUDA noteLangage développé par NVidia pour le calcul sur leurs GPUs. qui sera parfaitement optimisé pour une architecture donnée. Les générateurs de code les plus utilisés partent du langage Python :







D'autres, comme PLIBS 8 Kernel Shadok[88]PLIBS 8 : kernel generator, Pierre Aubert, utilisent un langage spécifique.



Avantages : l'utilisateur peut écrire son programme sans se préoccuper de l'architecture cible et obtenir de bonnes performances.



Inconvénients : le fonctionnement du programme dépend d'un autre, qui devra être suivi et maintenu. Cela rajoute une étape supplémentaire pour la maintenance.

Cette approche est de plus en plus utilisée dans des domaines qui utilisent massivement des GPUs (comme le Deep Learning), ou dans le domaine de la simulation.