Création et Optimisation de Modules Audio avec les instructions SSE

Slides:



Advertisements
Présentations similaires
Verrouillage, protections et verrouillages de sécurité des machines
Advertisements

Chapitre annexe. Récursivité
Les fonctions A quoi ça sert ?
Architecture de machines Le microprocesseur
Baptiste ARNAULT, Manel ZERELLI, Thierry SORIANO
Efficient Simplification of Point-Sampled Surfaces
Calculs de complexité d'algorithmes
GEF 435 Principes des systèmes d’exploitation
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 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
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Alain Romeyer - 15/06/20041 UMH Machines livrées le 08/04/2005 Configuration choisie (différente des autres sites) : 6 machines SUN Fire V20Z.
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
Standard Template Library
P. David, V. Idasiak, F. Kratz PRISME / L.V.R
ASI 3 Méthodes numériques pour l’ingénieur
Dans les Entrailles de l'Ordinateur 28 mai 2005 MCSJ.
Analyse des Algorithmes
Analyse d’algorithmes
Lycée ELKHAWARIZMI De SAFI
Stage 2A CS80 pour Origin 1/28. 1) Presentation of the internship 2) The Multi-Oscillator 3) Connection-GUI’s API Conclusion Stage 2A CS80 pour Origin.
Arithmétique Modulaire
Optimisation des performances
Présentation rapide d’
Algorithmique et programmation (1)‏
Multiprécision.
Un survol du language C.
“Software defined Storage”
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
ETNA – 1ème année Guillaume Belmas –
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.
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.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Adaptation des images d'un site web pour la compensation du daltonisme
Progression - Quelques rappels
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
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.
La récursivité Mireille Goud HEG Vd AlgSD - Résurisivité.
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.
1 Logiciels de confection automatique d’horaires.
Génération de simulateurs de jeux d’instructions compilés Ronan AMICEL IRISA / Equipe CAPS.
Partie II : Segmentation
Les nombres à virgule flottante
Les cartes graphiques Leur partie software.
System de recommandations
Introduction au langage C
Département Informatique L’optimisation Laurent JEANPIERRE IUT de CAEN – Campus 3.
Transcription de la présentation:

Création et Optimisation de Modules Audio avec les instructions SSE Maître de stage P. Wicker Tuteur de stage M. Girin Projet de Fin d’Etudes – Optimisation SSE

Création et Optimisation de Modules Audio avec les instructions SSE 1) Présentation du Stage 2) Les instructions SSE 3) Algorithme DSP Audio Conclusion Projet de Fin d’Etudes – Optimisation SSE

1) Présentation du stage Projet de Fin d’Etudes – Optimisation SSE

Projet de Fin d’Etudes – Optimisation SSE Arturia Software & Hardware Projet de Fin d’Etudes – Optimisation SSE

Projet de Fin d’Etudes – Optimisation SSE Objectifs Etudes des possibilités liées aux instructions SSE Implémentation en vue d’optimiser des algorithmes existants Utilisation dans de nouveaux modules de son. Projet de Fin d’Etudes – Optimisation SSE

Projet de Fin d’Etudes – Optimisation SSE 2) Instructions SSE Projet de Fin d’Etudes – Optimisation SSE

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

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

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

Projet de Fin d’Etudes – Optimisation SSE Instructions 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 Projet de Fin d’Etudes – Optimisation SSE

Cahier des charges des tests 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 Projet de Fin d’Etudes – Optimisation SSE

Plate-forme de test Bench Manager Tests Manager Algorithme 0 : 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 Tests à appeler Tests Manager Algorithme 0 : Algorithme Mesures du temps de calcul (Ecart type, Temps moyen, max, min) Algorithme 1, … Algorithme N Résultats Statistiques par algorithmes Projet de Fin d’Etudes – Optimisation SSE

Projet de Fin d’Etudes – Optimisation SSE Résultats Projet de Fin d’Etudes – Optimisation SSE

Projet de Fin d’Etudes – Optimisation SSE Résultats 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 Projet de Fin d’Etudes – Optimisation SSE

Workflow d’écriture d’un algorithme SSE Comprendre et tester l’algorithme en flottant non SSE Vérifier les dépendances entre données Aligner les données sur 16 Bytes si nécessaire Projet de Fin d’Etudes – Optimisation SSE

Projet de Fin d’Etudes – Optimisation SSE 3) Algorithmes Audio Projet de Fin d’Etudes – Optimisation SSE

Exemple du DualStereoFilter Projet de Fin d’Etudes – Optimisation SSE

Projet de Fin d’Etudes – Optimisation SSE La Reverb Projet de Fin d’Etudes – Optimisation SSE

Projet de Fin d’Etudes – Optimisation SSE Conclusion Projet de Fin d’Etudes – Optimisation SSE