La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Création et Optimisation de Modules Audio avec les instructions SSE"— Transcription de la présentation:

1 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

2 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

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

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

5 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

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

7 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

8 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

9 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

10 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

11 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

12 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

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

14 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

15 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

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

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

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

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


Télécharger ppt "Création et Optimisation de Modules Audio avec les instructions SSE"

Présentations similaires


Annonces Google