• Aucun résultat trouvé

Discussion de performance en termes d’efficience et d’efficacité

4.10 Expérimentation, Résultats et Discussion

4.10.4 Discussion de performance en termes d’efficience et d’efficacité

Pour chaque étape de la simulation, une mise en œuvre séquentielle utilisant un CPU mono-cœur ainsi qu’une mise en œuvre coopérative CPU-GPU sont considérées, en plus de l’échange des données entre le CPU et le GPU. Le délai moyen correspond à 30 essais. Les valeurs moyennes de la fonction d’évaluation ont été recueillies et le nombre d’essais réussis est également représenté. Étant donné que le temps de calcul peut concerner 1.000 générations et plus, le temps moyen attendu pour la mise en œuvre basée CPU, a été déduit sur la base de deux études d’exécution.

La génération et l’évaluation des chromosomes d’une manière parallèle sur GPU four- nissent un moyen efficace pour accélérer l’évolution et le processus de recherche par rap-

4.10. EXPÉRIMENTATION, RÉSULTATS ET DISCUSSION

port à une version basée CPU. Comme le montre les figures 4.14 et 4.16, la version basée GPU est plus rapide que celle basée CPU (c’est-à-dire. l’exécution parallèle basée GPU a permis de diviser le temps par un facteur 12 par rapport à une mise en œuvre séquentielle sur CPU). Dus aux accès élevés mal alignés à la mémoire globale, les accès non coalescés réduisent les performances de la mise en œuvre sur GPU. Pour surmonter le problème et atteindre la coalescence de la mémoire, les variables d’un même type et appartenant à des individus différents de la population sont stockées dans des tampons adjacents. Le GPU conserve l’accélération du processus évolutif hybride aussi longtemps avec l’augmentation de la taille de la population. Concernant la qualité de la solution, les résultats obtenus avec la SE proposée sont très compétitifs par rapport à ceux obtenus avec la SE séquentielle.

Figure 4.15 – Temps des phases évolutionnaire CPU vs GPU.

Figure 4.16 – Temps d’exécution du système sur CPU et GPU sur différente générations.

Les figures (4. 16) et (4. 17) représentent respectivement le temps moyen pendant quelques générations par rapport à la taille de la population et le temps Évolution CPU

4.10. EXPÉRIMENTATION, RÉSULTATS ET DISCUSSION

vs GPU au cours des générations, selon le nombre d’individus, à travers une exécution alternée sur le CPU et sur le GPU afin de montrer plus d’informations sur l’exécution. Comme mentionnée ci-dessus, la fonction objective dans ce cas est la distance parcourue par chaque robot où tous les individus commencent et terminent en même temps (dans chaque étape de simulation). Dans chaque génération, un bon phénotype est un ensemble de paramètres qui incite l’individu à effectuer le mouvement souhaité.

Figure 4.17 – Évolution de temps au cours des générations.

Nous concluons que l’utilisation des GPUs fournit un moyen efficace pour faire face à ce type d’application où plusieurs paramètres sont considérés (paramètres de simulation : par exemple, les paramètres RNN, et les paramètres SE). Par conséquent, l’implémen- tation de l’entrainement sur le GPU a permis d’exploiter le parallélisme dans une telle application et l’amélioration de la robustesse et de la qualité des solutions fournies. D’autre part, comme ce problème prend en compte un ensemble de paramètres, l’ordre de l’ac- célération obtenue est très prometteur pour aller vers d’autres méthodes d’optimisation, voire l’automatisation du réglage des paramètres de la SE sur le GPU, ou plus encore, en utilisant le multi-GPU et les nouvelles architectures telles que l’architecture Kepler.

Figure 4.18 – Temps moyen pour chaque génération par rapport à la taille de la popu- lation.

4.11. CONCLUSION

Figure 4.19 – Évolution du temps CPU vs GPU.

4.11

Conclusion

Le but de cette recherche consistait à étudier la faisabilité d’utilisation des capacités des technologies GPU pour simuler un modèle complexe en utilisant des approches artificielles bio-inspirées basées sur une stratégie d’évolution et un réseau de neurones récurrent. Pour atteindre cet objectif, une nouvelle approche parallèle hybride (SE-RNN basée GPU) a été proposée pour construire et simuler un modèle 3D de locomotion pour un robot humanoïde. D’une manière plus spécifique, le mouvement et l’évolution du contrôleur du robot humanoïde ont été mis en œuvre en utilisant le modèle proposé. Ce dernier est élaboré par le biais d’un simulateur physique dont le rôle est de reproduire des phénomènes physiques tels que la gravité, les collisions, etc. Nous avons ainsi mis en place notre modèle évolutif du RNN sur une plateforme à base de GPUs pour laquelle nous avons discuté diverses questions de programmation.

En outre, nous avons fourni un ensemble de lignes directrices de conception qui pour- raient être utiles pour d’autres modèles, dont la façon de pallier les contraintes usuelles telles que les limitations de la mémoire disponible sous GPU et la synchronisation entre les différentes tâches exécutées sur le GPU (synchronisation entre les différents threads), ces précautions ont pour but principal l’exploitation optimale des GPUs pour des gains de performances.

En réalité, il est plus probable de supposer que l’évolution de l’entrainement et de la simulation des actions du RNN opère sur une échelle de temps plus longue que les autres opérations, qui permettent une séparation d’échelle de temps.

En définitive, cette étude a permis de réaliser avec succès les étapes définissant la mise en œuvre d’un système de contrôle optimisé qui peut exploiter au mieux la combinaison de traitements entre le CPU et le GPU, permettant au développeur de disposer d’un modèle automatique l’assistant dans le traitement de ses étapes de calcul.

Chapitre

5

Coopération CPU-GPU, distribution des

tâches et gestion de la mémoire dans

pEvoRNN

5.1

Introduction

L

a communauté de recherche du calcul généraliste sur les accélérateurs graphiques (GPGPU) a eu pour rôle de fournir les lignes directrices générales pour optimiser une application sur GPU en utilisant la plateforme Compute Unified Device Architecture (CUDA). Cependant, la compréhension des effets matériels importants et les performances qui leur sont associées dans la mise en œuvre des applications, restent encore des points à prendre en charge par les programmeurs.

Afin d’exploiter le potentiel de performances des GPUs, diverses questions doivent être abordées telles que la distribution des tâches entre le CPU et le GPU, l’utilisation efficace de la hiérarchie mémoire du GPU, la gestion judicieuse du parallélisme GPU, ainsi que l’optimisation des codes GPU, considérées comme les tâches les plus fastidieuses.

L’exploitation des architectures hétérogènes nécessite généralement une ré-implémenta- tion des codes CPU existants. Cette ré-implémentation nécessite une grande connaissance des techniques de programmation pour ces types d’architectures particulières. Les per- formances des unités de traitement graphique (GPU) sont sensibles à des références de mémoire irrégulières. Une étude récente montre la nécessité d’éliminer les références irré- gulières par l’exécution d’un remappage des threads/données. Cependant, la façon dont on peut déterminer efficacement le mappage optimal reste encore une question ouverte.

Concernant CUDA, l’un des paramètres ajustables [187] réside dans la forme des blocs associés aux threads (grille des blocs). Le choix de la taille et de la forme des blocs est l’une des décisions les plus importantes [186] que les utilisateurs doivent prendre lorsqu’un problème est codé afin de fonctionner d’une façon parallèle sur une architecture GPU. Un bon choix de la taille et de la forme des blocs peut affecter d’une manière significative l’utilisation des ressources des GPUs. Par conséquent, la performance utilisée dans la tâche d’implémentation globale est étroitement liée à la configuration des blocs. Actuellement, de nombreux programmeurs sélectionnent la taille et la forme des blocs de façon empirique via un processus d’essais/erreur, induisant un gaspillage énorme en termes de temps de calcul. Pour éviter une telle dépense en termes de temps de calcul ainsi qu’au le recours à