Modélisation du coût de la cohérence de cache pour améliorer le tuilage de boucles
Résumé
Nous présentons un modèle exprimant le coût de la cohérence de cache au sein de processeurs multi-coeurs. Ce modèle est construit sur un ensemble de micro benchmarks prenant en compte l'état (dans protocole de cohérence) dans lequel sont les données. Ce modèle très fin permet d'adapter le tiling des boucles durant la phase de compilation afin, d'une part d'optimiser la réutilisation des données et, d'autre part de minimiser le surcoût dû au protocole de cohérence. Par ailleurs nous justifions les bénéfices de la finesse de notre modèle, et notamment de la prise en compte de l'état des lignes de cache dans notre modèle en montrant. Notre modélisation fine des caches montre que des optimisations mono-coeurs classiques telles que le tiling au niveau du cache L1 peuvent se révéler inefficaces sur des architectures parallèles. De plus l'utilisation de notre modèle permet de trouver les optimisations nécessaires à l'amélioration des performances sur des processeurs multi-coeurs.