Semi-Automatic Performance Optimization of HPC Kernels

Steven Masnada 1, 2
1 CORSE - Compiler Optimization and Run-time Systems
Inria Grenoble - Rhône-Alpes, LIG - Laboratoire d'Informatique de Grenoble
2 POLARIS - Performance analysis and optimization of LARge Infrastructures and Systems
Inria Grenoble - Rhône-Alpes, LIG - Laboratoire d'Informatique de Grenoble
Résumé : Les plate-formes de calcul haute performance ont été conçues pour répondre à des besoins important en terme de puissance de calcul, cependant, exploiter correctement toute leur puissance n’est pas simple car ce sont des machines complexes et chaque plate-forme a des caractéristiques qui lui sont propres. Il est donc nécéssaire que le développeur écrive un code avec attention et qu’il soit spécifique à la plate-forme cible. Des outils de generation de code existent permettant d’assister le développeur dans cette tâche fastidieuse. Cependant trouver les versions les plus performantes est le principal problème du fait d’un espace de recherche trop important (ex: les 500 options de compilation de GCC )et pour lequel une recherche exhaustive n’est pas practicable. L’auto-tuning aborde ce problème comme un problème d’optimisation mathématique. À notre connaissance la plupart des frameworks d’auto-tuning utilisent des techniques d’optimisations génériques associées à une exploration complètement automatisée. Cependant avec une telle approche, l’utilisateur se retrouve exclu du processus d’optimisation. En effet, il lui est difficile de savoir si des ameliorations sont encore possible et évaluer la qualité d’une solution peut être compliqué. Pour répondre à ce problème, nous proposons une approche semi-automatique dans laquelle l’utilisateur a le contrôle. Cette approche se base sur des méthodes de régressions linéaires pour prédire les performances d’un noyau de calcul. Plus précisément, nous utilisons la régression des moindres carrés et la régression de quantile. Cette approche est utilisée en combinaison avec des techniques inspirées de plans expérimentaux ayant pour but de réduire le coût expérimental. Nous avons évalué notre approche avec le cas d’un noyau Laplacien en la comparant avec d’autres techniques d’optimisation généralement utilisées en auto-tuning. Notre approche donne de très bon résultats en trouvant presque à chaque fois des solutions très proche de l’optimal. Nous avons également analysé pourquoi notre solution est plus efficace.
Type de document :
Mémoires d'étudiants -- Hal-inria+
Performance [cs.PF]. 2016
Liste complète des métadonnées

Littérature citée [17 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/hal-01579422
Contributeur : Steven Quinito Masnada <>
Soumis le : jeudi 31 août 2017 - 10:30:29
Dernière modification le : mercredi 11 avril 2018 - 01:54:38
Document(s) archivé(s) le : vendredi 1 décembre 2017 - 17:43:00

Identifiants

  • HAL Id : hal-01579422, version 1

Citation

Steven Masnada. Semi-Automatic Performance Optimization of HPC Kernels. Performance [cs.PF]. 2016. 〈hal-01579422〉

Partager

Métriques

Consultations de la notice

110

Téléchargements de fichiers

30