1 / 19

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

Création et Optimisation de Modules Audio avec les instructions SSE. Maître de stage P. Wicker Tuteur de stage M. Girin. 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.

branxton
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Synthèse audio et Arturia Moog Prophet VS Arturia Software & Hardware Projet de Fin d’Etudes – Optimisation SSE

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

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

  7. 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

  8. Instructions SIMD 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) = mulpsaV , bV ; a0 x b0 a1 x b1 a2 x b2 a3 x b3 Projet de Fin d’Etudes – Optimisation SSE

  9. Instructions SIMD Pentium 3 AMD Athlons Pentium 4 AMD 64 bits Core Duo AMD x2 Projet de Fin d’Etudes – Optimisation SSE

  10. 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 • 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 schedulerde l’OS • 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. Résultats Projet de Fin d’Etudes – Optimisation SSE

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

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

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

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

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

More Related