Projet de Fin d’Etudes – Optimisation SSE 1/28. 1) Présentation du Stage 2) Les instructions SSE 3) Algorithme DSP Audio Conclusion 2/28 Projet de Fin.

Slides:



Advertisements
Présentations similaires
Les fonctions A quoi ça sert ?
Advertisements

Architecture de machines Le microprocesseur
Introduction au langage C
Accélération du Rendu Volumique basée sur la Quantification des Voxels
Efficient Simplification of Point-Sampled Surfaces
Etudiants : Benjamin BLANC Cyrille KLUZEK Encadreur :
Calculs de complexité d'algorithmes
Détection des collisions dans un moteur 3D temps réel
Algorithmique Résume.
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
1 Bauer Kevin Les processeur Un processeur puisant? « oui mais pour quel utilisation. »
Cours n° 8 Conception et Programmation à Objets
1 Réunion biblio 13/12/00 Support Vectors Présentation générale SSS Maintaining Algorithm.
Objectifs Identifier l’interface entre le logiciel de plus bas niveau et le matériel Comprendre la problématique de l’architecture du jeu d’instruction.
C.
Le codage de l ’information
Auto Apprentissage Le DSP
2.Les différentes architectures (Louis)
Parallélisation d’un Algorithme CNFT
Architecture de machines Principes généraux
Architecture de machines Le microprocesseur
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Démarche de résolution de problèmes
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
Algorithmique et Programmation
Architecture des Ordinateurs
Particularités des calculs
Algorithmique et Programmation
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
Principes de programmation
Chapitre XI Gestion des erreurs et exceptions. 2 La gestion des erreurs et exceptions De nombreux problèmes peuvent survenir pendant lexécution dun programme:
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Efficacité des algorithmes
P. David, V. Idasiak, F. Kratz PRISME / L.V.R
ASI 3 Méthodes numériques pour l’ingénieur
Java vs. C++ Pierre-Yves ALIZON – Ingénieurs 2000.
Dans les Entrailles de l'Ordinateur 28 mai 2005 MCSJ.
Analyse des Algorithmes
Analyse d’algorithmes
Lycée ELKHAWARIZMI De SAFI
Optimisation des performances
Présentation rapide d’
Algorithmique et programmation (1)‏
Un survol du language C.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
Steven Derrien Équipe R2D2
L’Audio sur PC Comparaison Numérique vs Analogique Comparaison Audio sur PC vs Hardware dédié (DSP) Rmq: beaucoup de simulitudes avec la vidéo, mais débit.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Les algorithmes recursifs
Progression - Quelques rappels
Les bases de l’algorithmique
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel ASIP Design and Synthesis for Non Linear Filtering in.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
IRISA/INRIA Les processeurs Alpha et ou comment Compaq espère mener la course en tête.
Formats, techniques, utilisations
La récursivité Mireille Goud HEG Vd AlgSD - Résurisivité.
Architecture et technologie des ordinateurs II
Compression de données de test : Réduction du nombre de broches et gain en temps de test Julien DALMASSO, Marie-Lise FLOTTES, Bruno ROUZEYRE {dalmasso,
Intégration des Tableaux Multidimensionnels en Pig pour
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Création et Optimisation de Modules Audio avec les instructions SSE
Architecture et technologie des ordinateurs II
Les nombres à virgule flottante
Les cartes graphiques Leur partie software.
Les cartes graphiques Leur partie software. Sommaire - Qu’est-ce qu’une carte graphique ? - D’un point de vue software ? - Que permettent-ils de faire.
Introduction au langage C
Département Informatique L’optimisation Laurent JEANPIERRE IUT de CAEN – Campus 3.
Complexité algorithmique
Transcription de la présentation:

Projet de Fin d’Etudes – Optimisation SSE 1/28

1) Présentation du Stage 2) Les instructions SSE 3) Algorithme DSP Audio Conclusion 2/28 Projet de Fin d’Etudes – Optimisation SSE

3/28 Projet de Fin d’Etudes – Optimisation SSE

Moog Arturia Software & Hardware 4/28 Projet de Fin d’Etudes – Optimisation SSE Prophet VS

Etudes des instructions SSE Etudes des optimisations envisageables Tests de performance par algorithme Implémentation en situation réelle 5/28 Projet de Fin d’Etudes – Optimisation SSE

6/28 Projet de Fin d’Etudes – Optimisation SSE

7/28 Projet de Fin d’Etudes – Optimisation SSE __m128 Float[3] Registre Xmm 128 bits Float[2] Float[1] Float[0] __m128i Int[3] Int[2] Int[1] Int[0] Double[0] Double[1]

8/28 Projet de Fin d’Etudes – Optimisation SSE Instruction de base mulps : (multiplication verticale) __m128 aV a3 a2 a1 a0 __m128 bV b3 b2 b1 b0 _mm_mul_ps(aV,bV) = mulps aV, bV ; a3 x b3 a2 x b2 a1 x b1 a0 x b0 1 instruction / 4 Floats multipliés

9/28 Projet de Fin d’Etudes – Optimisation SSE 8 registres Entiers 64 bits MMX (vs 3DNow) 16 registres Floats 128 bits SSE Doubles 128 bits int vectors SSE2 Instructions horizontales SSE3 Instructions pour la vidéo Passage à 256 bits.. AVX Pentium 4 AMD 64 bits Pentium 4 AMD 64 bits Core Duo AMD x2 Core Duo AMD x2 Pentium 3 AMD Athlons Pentium 3 AMD Athlons

10/28 Projet de Fin d’Etudes – Optimisation SSE Avantages Permet de réduire le nombre d’instructions Pas de problème de dénormalisation Contraintes Compatibilité avec la machine Perte de précision par rapport au x87 (très légère) Alignement des données sur 16 bytes Réorganisation des données pour l’utiliser efficacement dans certains algorithmes

Pouvoir évaluer les performances des algorithmes : Mesurer facilement et précisément le temps de calcul Eviter ou détecter les perturbations externes (OS, scheduler) Réaliser les tests facilement (automatiquement) sur différentes plateformes Garder la plate-forme évolutive pour l’avenir 11/28 Projet de Fin d’Etudes – Optimisation SSE

12/28 Projet de Fin d’Etudes – Optimisation SSE Tests Manager Algorithme 0 : Algorithme Mesures du temps de calcul (Ecart type, Temps moyen, max, min) Résultats Statistiques par algorithmes Résultats Statistiques par algorithmes Algorithme 1, … Algorithme N Opérateur : Ajout d’algorithme Définit la liste des algorithmes à tester lors du Bench Bench Manager Récupération au-delà d’une deadline de temps permettant de ne pas être arrêté par le scheduler de l’OS Tests à appeler Bench Manager Récupération au-delà d’une deadline de temps permettant de ne pas être arrêté par le scheduler de l’OS Tests à appeler

13/28 Projet de Fin d’Etudes – Optimisation SSE

Points clés de l’optimisation : Le jeu d’instruction : SSE3 semble le minimum à considérer compte tenu des instructions horizontales pour le DSP Le processeur influe énormément (performance du cœur SSE): Atom/core i5 même jeu SSE, mais des gains de performance incomparables. L’organisation mémoire et les appels au cache peuvent faire basculer la tendance entre SSE ou calcul flottant sur x87 14/28 Projet de Fin d’Etudes – Optimisation SSE

15/28 Projet de Fin d’Etudes – Optimisation SSE Comprendre et tester l’algorithme en flottants non SSE Vérifier les dépendances entre données Aligner les données sur 16 Bytes si nécessaire Ecrire l’algorithme en SSE Tester à l’oreille dans un premier temps Calculer l’erreur de calcul entre SSE et flottant pour valider Mesurer la performance unitaire Mesurer la performance après intégration

16/28 Projet de Fin d’Etudes – Optimisation SSE

17/28 Projet de Fin d’Etudes – Optimisation SSE

18/28 Projet de Fin d’Etudes – Optimisation SSE

19/28 Projet de Fin d’Etudes – Optimisation SSE