Constellation, le dépôt institutionnel de l'Université du Québec à Chicoutimi

Intégration d'instructions data-parallèles dans le langage PSC et compilation pour processeur SIMD (INTEL SSE)

Langlais Michel. (2013). Intégration d'instructions data-parallèles dans le langage PSC et compilation pour processeur SIMD (INTEL SSE). Mémoire de maîtrise, Université du Québec à Chicoutimi.

[thumbnail of 030571592.pdf]
Prévisualisation
PDF
18MB

Résumé

II existe des instructions data-parallèles dans les processeurs modernes. Ces instructions permettent d'effectuer la même opération sur plusieurs données différentes en parallèle. Présentement il est difficile de programmer des logiciels qui utilisent ces instructions data-parallèles avec les solutions existantes, Nous avons donc exploré l'utilisation d'un langage destiné à la programmation des circuits parallèles comme les FPGA (Field Programmable Gate Array) pour fabriqué un logiciel qui permet d'utiliser ces instructions data-parallèles de manière simple et efficace. Un langage de haut niveau pour la programmation des FPGA. le langage psC- Parallel and Synchronous C- a été choisi, Sa syntaxe proche du C, son paradigme entièrement parallèle et la disponibilité du code source ont justifié ce choix,

II y a plusieurs années, les gens pensaient qu'aujourd'hui l'optimisation ne serait plus aussi importante qu'elle l'était pour eux. Ils disaient que la quantité de mémoire et la puissance de calculs des processeurs ferait en sorte que le gain en temps ne vaudrait pas l'effort de programmation nécessaire pour programmer du code optimisé. Maintenant, nous savons que ce n'est pas le cas. Les processeurs ont certes eu un gain de performance important, mais les tâches qu'ils accomplissent nécessitent de plus en plus de puissance de calculs et de mémoire. Aujourd'hui, une bonne partie de la puissance de calculs s'obtient par l'utilisation des instructions data-parallèles disponibles dans les processeurs modernes. Pour inclure ces instructions data-parallèles dans un logicieL il n'y a pas beaucoup d'alternatives disponibles.

Ce travail a consisté à réaliser un compilateur complet pour machine SIMD. Une nouvelle syntaxe permettant de supporter les instructions data-parallèles a été définie et intégrée à celle du langage psC. L'algorithme de génération de code assembleur pour les instructions data-parallèles de type SSE d'Intel a été implémenté et testé. Finalement, trois applications ont été programmées et les performances de rapidité d'exécution comparées à diverses méthodes classiques de programmation.

Les résultats montrent que les performances obtenu par le langage psC est toujours situé entre celui obtenu par un expert codant en langage assembleur et celui obtenu par les compilateurs C et C++, Ceci correspond à ce qui était désiré.

En conclusion, ce travail de recherche a démontré qu'il était possible d'utiliser un langage HL-HDL (High Level Hardware Description Language) pour générer du code qui bénéficie des instructions data-parallèles. Le gain en performance de F implementation psC est présenté pour tous les cas étudié, et se rapproche de F implementation assembleur qui est le maximum atteignable.

Type de document:Thèse ou mémoire de l'UQAC (Mémoire de maîtrise)
Date:2013
Lieu de publication:Chicoutimi
Programme d'étude:Maîtrise en ingénierie
Nombre de pages:116
ISBN:9781412319409
Sujets:Sciences naturelles et génie > Génie > Génie informatique et génie logiciel
Département, module, service et unité de recherche:Départements et modules > Département des sciences appliquées > Programmes d'études de cycles supérieurs en ingénierie
Mots-clés:Langage de programmation, Programmation parallèle (Informatique), Programming languages (Electronic computers), Parallel programming (Computer science)
Déposé le:17 avr. 2014 14:08
Dernière modification:17 avr. 2014 18:08
Afficher les statistiques de telechargements

Éditer le document (administrateurs uniquement)

Creative Commons LicenseSauf indication contraire, les documents archivés dans Constellation sont rendus disponibles selon les termes de la licence Creative Commons "Paternité, pas d'utilisation commerciale, pas de modification" 2.5 Canada.

Bibliothèque Paul-Émile-Boulet, UQAC
555, boulevard de l'Université
Chicoutimi (Québec)  CANADA G7H 2B1
418 545-5011, poste 5630