<Projet HPC
Motion Detection Optimization
Wassim GHACHI Liza IDRI
START >
>
>
INTRODUCTION
Objectif : maximiser FPS d'une application de tracking d'objet. Cibles d’optimisation : ΣΔ + morpho
>
>
MÉTHODE DE MESURE
- Même conditions d'execution - Mesures réalisées sur toutes les vidéos - Vidéo complète : pas de --vid-in-stop- Pas de logs ni de visualisation
Métriques : FPS : Nombre de frames traitées par seconde Latence par algorithme (ms) : --stats
>
>
ARCHITECTURE DALEK
>
>
OPTIMISATIONS
SIMD + Multithread
06
Vectorisation SIMD
05
Operators Fusion
03
Loop Fusion
02
Loop Unrolling
01
Simplification du Graphe
00
Bit Packing
04
<01> Simplification du graphe
START >
<01 SIMPLIFICATION DU GRAPHE DES Tâches
/* memorize: CCs(t) deviennent CCs(t-1) à l’itération suivante */{ RoI_t *tmp_rois = RoIs0; RoIs0 = RoIs1; RoIs1 = tmp_rois; uint32_t tmp_n = n_RoIs0; n_RoIs0 = n_RoIs1; n_RoIs1 = tmp_n;}
<02> STANDARD OPTIMIZATIONS
START >
<02 LOOP FUSION
Principe : Loop fusion = regrouper plusieurs boucles qui parcourent les mêmes données en une seule boucle.
Gain attendu : - Réduire le nombre de parcours mémoire - Diminuer les coûts des instructions de la boucle (test, incrémentation)
<02 LOOP FUSION
Sigma Delta :
for (i, j) { Calcul M; Calcul O; Calcul V; Image binaire de sortie; }
Un calcul = Une boucle
<02 LOOP FUSION
Morphology :
Operateurs morphologiques : Erosion, Dilation
⇒ condition (if) à chaque pixel ⇒ plus de branchement
<02 LOOP FUSION
<03 LOOP UNROLLING
Principe : Loop unrolling = dérouler la boucle pour traiter k éléments par itération
Gain attendu : Moins de test et d'incréments de boucle Plus d’instructions consécutives = améliore l’exécution pipeline
<03 LOOP UNROLLING
<04 OPERATORS FUSION
Érosion/Dilatation 3×3 :
Érosion/Dilatation (3×1)(1×3) :
Érosion verticale (3×1) X O ← 3 pixels lus X Érosion horizontale (1×3) X O X ← 3 pixels lus
X X X X O X ← 9 pixels lus X X X
Gain attendu : Moins d'accès à la mémoire Meilleure localité cache
<04 OPERATORS FUSION
<05 Bit packing
Gain attendu : - Diminuer l'espace utilisé en mémoire - Réduire le nombre d’accès mémoire
<05 Bit packing
<06> Vectorisation SIMD
START >
>
>
// Principe
<07> multi threading openmp
START >
>
>
// Principe
>
>
// Principe
>
>
// Principe
>
>
// Résulats
>
>
// Résulats
>
>
// Résulats
>
>
// Résulats
Merci!
<02> SECTION
Sections like this help you create order
START >
<Projet HPC
Wassim GHACHI
Created on January 29, 2026
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Essential Learning Unit
View
Akihabara Learning Unit
View
Genial learning unit
View
History Learning Unit
View
Primary Unit Plan
View
Vibrant Learning Unit
View
Art learning unit
Explore all templates
Transcript
<Projet HPC
Motion Detection Optimization
Wassim GHACHI Liza IDRI
START >
>
>
INTRODUCTION
Objectif : maximiser FPS d'une application de tracking d'objet. Cibles d’optimisation : ΣΔ + morpho
>
>
MÉTHODE DE MESURE
- Même conditions d'execution - Mesures réalisées sur toutes les vidéos - Vidéo complète : pas de --vid-in-stop- Pas de logs ni de visualisation
Métriques : FPS : Nombre de frames traitées par seconde Latence par algorithme (ms) : --stats
>
>
ARCHITECTURE DALEK
>
>
OPTIMISATIONS
SIMD + Multithread
06
Vectorisation SIMD
05
Operators Fusion
03
Loop Fusion
02
Loop Unrolling
01
Simplification du Graphe
00
Bit Packing
04
<01> Simplification du graphe
START >
<01 SIMPLIFICATION DU GRAPHE DES Tâches
/* memorize: CCs(t) deviennent CCs(t-1) à l’itération suivante */{ RoI_t *tmp_rois = RoIs0; RoIs0 = RoIs1; RoIs1 = tmp_rois; uint32_t tmp_n = n_RoIs0; n_RoIs0 = n_RoIs1; n_RoIs1 = tmp_n;}
<02> STANDARD OPTIMIZATIONS
START >
<02 LOOP FUSION
Principe : Loop fusion = regrouper plusieurs boucles qui parcourent les mêmes données en une seule boucle.
Gain attendu : - Réduire le nombre de parcours mémoire - Diminuer les coûts des instructions de la boucle (test, incrémentation)
<02 LOOP FUSION
Sigma Delta :
for (i, j) { Calcul M; Calcul O; Calcul V; Image binaire de sortie; }
Un calcul = Une boucle
<02 LOOP FUSION
Morphology :
Operateurs morphologiques : Erosion, Dilation
⇒ condition (if) à chaque pixel ⇒ plus de branchement
<02 LOOP FUSION
<03 LOOP UNROLLING
Principe : Loop unrolling = dérouler la boucle pour traiter k éléments par itération
Gain attendu : Moins de test et d'incréments de boucle Plus d’instructions consécutives = améliore l’exécution pipeline
<03 LOOP UNROLLING
<04 OPERATORS FUSION
Érosion/Dilatation 3×3 :
Érosion/Dilatation (3×1)(1×3) :
Érosion verticale (3×1) X O ← 3 pixels lus X Érosion horizontale (1×3) X O X ← 3 pixels lus
X X X X O X ← 9 pixels lus X X X
Gain attendu : Moins d'accès à la mémoire Meilleure localité cache
<04 OPERATORS FUSION
<05 Bit packing
Gain attendu : - Diminuer l'espace utilisé en mémoire - Réduire le nombre d’accès mémoire
<05 Bit packing
<06> Vectorisation SIMD
START >
>
>
// Principe
<07> multi threading openmp
START >
>
>
// Principe
>
>
// Principe
>
>
// Principe
>
>
// Résulats
>
>
// Résulats
>
>
// Résulats
>
>
// Résulats
Merci!
<02> SECTION
Sections like this help you create order
START >