Want to create interactive content? It’s easy in Genially!

Get started free

<Projet HPC

Wassim GHACHI

Created on January 29, 2026

Start designing with a free template

Discover more than 1500 professional designs like these:

Essential Learning Unit

Akihabara Learning Unit

Genial learning unit

History Learning Unit

Primary Unit Plan

Vibrant Learning Unit

Art learning unit

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 >