Développement d'algorithmes de reconnaissance de cibles non coopératives et parallélisation sur GPU Présentation de Stage (22-10-2010) Thomas Boulay Thales Air Operations Sommaire I. II. Présentation Algorithme des KPPV (K Plus Proches Voisins) 1. 2. 3. 4. 5. III. Linéaire vs dB Linéaire vs dB avec Recalage Seuillage Fenêtrage Distance Conclusion et perspectives Implémentation sur GPU 1. 2. 3. Présentation des GPU Application des KPPV sur GPU Conclusion et perspectives IV. Conclusion générale 2 Thales Air Operations Présentation 3 NCTR (Non Cooperative Target Recognition) Objectif: Reconnaissance de cibles Attribut utilisé: Profil Distance Données 4 cibles pour la base d’apprentissage 3 cibles pour la base de test Objectifs du stage Tester les performances de l’algorithme des KPPV Maîtriser le taux d’erreur et réduire les temps de calculs Regarder l’influence du traitement de l’information non comprimée Implémenter sur GPU Thales Air Operations I. II. Présentation Algorithme des KPPV 1. 2. 3. 4. 5. III. Linéaire vs dB Linéaire vs dB avec Recalage Seuillage Fenêtrage Distance Conclusion et perspectives Implémentation sur GPU 1. 2. 3. Présentation des GPU Application des KPPV sur GPU Conclusion et perspectives IV. Conclusion générale 4 Thales Air Operations K Plus Proches Voisins K plus petites distances Profil distance de test appartient à la classe majoritaire 5 Thales Air Operations I. II. Présentation Algorithme des KPPV 1. 2. 3. 4. 5. III. Linéaire vs dB Linéaire vs dB avec Recalage Seuillage Fenêtrage Distance Conclusion et perspectives Implémentation sur GPU 1. 2. 3. Présentation des GPU Application des KPPV sur GPU Conclusion et perspectives IV. Conclusion générale 6 Thales Air Operations Linéaire vs dB (Taux d’erreur) L1 xi yi i Linéaire Meilleures performances en dB 7 Thales Air Operations L2 ( xi yi ) 2 i dB apport des points brillants de faible amplitude Linéaire vs dB (Taux de succès) Linéaire dB • Reconnaissance cible 3 fortement influencée par les points brillants de faible amplitude 8 Thales Air Operations I. II. Présentation Algorithme des KPPV 1. 2. 3. 4. 5. III. Linéaire vs dB Linéaire vs dB avec Recalage Seuillage Fenêtrage Distance Conclusion et perspectives Implémentation sur GPU 1. 2. 3. Présentation des GPU Application des KPPV sur GPU Conclusion et perspectives IV. Conclusion générale 9 Thales Air Operations Linéaire vs dB avec recalage Recalage des données en distance avant application des KPPV 10 Thales Air Operations Linéaire vs dB avec recalage (Taux d’erreur) Linéaire • Légère diminution du taux d’erreur • Profils distance préalablement recalés grossièrement 11 Thales Air Operations dB Linéaire vs dB avec recalage (Taux de succès) Linéaire dB L1 L2 • Meilleures performances en dB 12 Thales Air Operations profils traités en dB I. II. Présentation Algorithme des KPPV 1. 2. 3. 4. 5. III. Linéaire vs dB Linéaire vs dB avec Recalage Seuillage Fenêtrage Distance Conclusion et perspectives Implémentation sur GPU 1. 2. 3. Présentation des GPU Application des KPPV sur GPU Conclusion et perspectives IV. Conclusion générale 13 Thales Air Operations Seuillage (Taux d’erreur) Application d’un seuil adapté au niveau de bruit de chaque profil distance P 1 N X (i) 2 N i 1 L1 L2 • Plus le seuil est haut, plus le taux d’erreur augmente • Reconnaissance influencée par les échantillons de faible amplitude 14 Thales Air Operations Seuillage (Taux de succès) Seuillage niveau de bruit + 5dB (L2) Seuillage niveau de bruit + 15dB (L2) • Reconnaissance cible 3 très sensible au seuillage • Influence non négligeable des échantillons de faible amplitude (bruit ou signal utile) 15 Thales Air Operations I. II. Présentation Algorithme des KPPV 1. 2. 3. 4. 5. III. Linéaire vs dB Linéaire vs dB avec Recalage Seuillage Fenêtrage Distance Conclusion et perspectives Implémentation sur GPU 1. 2. 3. Présentation des GPU Application des KPPV sur GPU Conclusion et perspectives IV. Conclusion générale 16 Thales Air Operations Fenêtrage Distance Intérêt: Reconnaissance sur les points de faible amplitude ou bruit thermique? 125 échantillons 17 Thales Air Operations Fenêtrage Distance (Taux d’erreur) L1 • Légère dégradation des performances • Influence des échantillons de bruit 18 Thales Air Operations L2 I. II. Présentation Algorithme des KPPV 1. 2. 3. 4. 5. III. Linéaire vs dB Linéaire vs dB avec Recalage Seuillage Fenêtrage Distance Conclusion et perspectives Implémentation sur GPU 1. 2. 3. Présentation des GPU Application des KPPV sur GPU Conclusion et perspectives IV. Conclusion générale 19 Thales Air Operations Conclusion et perspectives 20 Conclusion Mise en évidence des limites des KPPV Influence des points de faible amplitude KPPV très sensible aux échantillons de bruit « Meilleurs » résultats obtenus: KPPV avec recalage Algorithme non optimal pour la reconnaissance de cibles Perspectives Multi-Décision pour réduire le taux d’erreur Thales Air Operations I. II. Présentation Algorithme des KPPV 1. 2. 3. 4. 5. 6. III. Introduction Linéaire vs dB Linéaire vs dB avec Recalage Seuillage Fenêtrage Distance Conclusion et perspectives Implémentation sur GPU 1. 2. 3. Présentation des GPU Application des KPPV sur GPU Conclusion et perspectives IV. Conclusion générale 21 Thales Air Operations Présentation des GPU GPU : Graphic Processing Unit Evolution vers une architecture multi-coeur: A l’origine, architecture dédiée au rendu de volume Depuis 2006, architecture adaptée à la parallélisation de divers calculs scientifiques 22 Thales Air Operations Pipeline Graphique CUDA: Common Unified Device Architecture (prog. en C) Comparaison GPU-CPU Puissance de calcul Débit mémoire • GPU adaptés aux calculs massivement parallèles • Nombreux cas non parallélisables 23 Thales Air Operations CPU Hiérarchie des threads Un ID par thread et un ID par bloc de threads Exécution • thread • bloc de thread 24 Thales Air Operations séquentielle parallèle Mémoires Accès aux mémoires 25 Thales Air Operations Hiérarchie mémoire et exécution code GPU Hiérarchie mémoire 26 Thales Air Operations PC hote et carte graphique Architecture Fermi Principales améliorations: • 512 cœurs 240 cœurs • 64 KB de RAM configurable 16 KB mémoire shared • 3 GB de mémoire globale • Calcul en précision « double » amélioré • Intégration code correcteur d’erreur Source NVIDIA 27 Thales Air Operations 4 GB I. II. Présentation Algorithme des KPPV 1. 2. 3. 4. 5. 6. III. Implémentation sur GPU 1. 2. 3. 28 Introduction Linéaire vs dB Linéaire vs dB avec Recalage Seuillage Fenêtrage Distance Conclusion et perspectives Thales Air Operations Présentation des GPU Application des KPPV sur GPU Conclusion et perspectives Application des KPPV sur GPU 29 Données Profils distances simulés 3 cibles différentes pour la base d’apprentissage 3 cibles différentes pour la base de test Nech 512 Ntest 150 Napp 512 3 étapes: Etape 1: Calcul des distances entre les profils de la base de test et de la base d’apprentissage + recalage + seuillage Etape 2: Trier les distances par ordre croissant et garder les k premières Etape 3: Prise de décision Thales Air Operations Parallélisation des calculs: découpage en threads 1ère version 1 Distance = 1 thread Nblocs = Ntest 150 Nthreads/bloc = Napp 512 NOp/thread = Nech 512 Gestion de la mémoire Base de test Mémoire shared Base d’apprentissage Distance Résultat Cache Texture Registre Résultats Temps de calcul (ms) 30 Programme C 48.32 Programme CUDA (mémoire globale) 24.90 Programme CUDA 2.73 Thales Air Operations x 18 Parallélisation des calculs: découpage en threads 2ème version (Matlab) 1 Distance + recalage + seuillage = 1 thread Nblocs = Ntest 150 Nthreads/bloc = Napp 512 NOp/thread = Nech*2*Ndec Gestion de la mémoire Base de test Mémoire shared Cache Texture Registre Cache Constant Base d’apprentissage Distance Résultat Seuil Résultats Temps de calcul (s) KPPV Matlab KPPV Matlab Mex-CUDA 31 Thales Air Operations 121.77 2.10 x 58 512*200 I. II. Présentation Algorithme des KPPV 1. 2. 3. 4. 5. III. Linéaire vs dB Linéaire vs dB avec Recalage Seuillage Fenêtrage Distance Conclusion et perspectives Implémentation GPUs 1. 2. 3. Présentation des GPU Application des KPPV sur GPU Conclusion et perspectives IV. Conclusion générale 32 Thales Air Operations Conclusion et perspectives Conclusion Facteur d’accélération de 58 pour l’algorithme des KPPV Calcul GPU intégré à Matlab Perspectives Optimisation de la mémoire et du découpage en thread Optimisation de l’implémentation GPU (Fermi) Implémentation sous OpenCl 33 Réduction temps de calcul Thales Air Operations Réduction de dimensionnalité (ACP, Fourier) I. II. Présentation Algorithme des KPPV 1. 2. 3. 4. 5. III. Linéaire vs dB Linéaire vs dB avec Recalage Seuillage Fenêtrage Distance Conclusion et perspectives Implémentation GPUs 1. 2. 3. Présentation des GPU Application des KPPV sur GPU Conclusion et perspectives IV. Conclusion générale 34 Thales Air Operations Conclusion et perspectives KPPV Permet de ne pas comprimer l’information Résultats: pas de perte Pas de maîtrise du taux d’erreur Paramétrage délicat (Seuil, Fenêtrage, …) Algorithme non idéal pour la reconnaissance de profils GPU Bonnes performances obtenues accélération significative Bien adapté à la reconnaissance de profils Nécessité de mettre au point un nouvel algorithme de reconnaissance de cibles exploitant la puissance de calcul offerte par les GPU 35 Thales Air Operations Questions-Réponses 36 Thales Air Operations