Optimiser un pipeline de convolution d'images embarqué pour l'aide à la conduite
Aperçu
En quoi consiste ce défi.
Réécrivez un noyau de convolution C avec tiling et SIMD, accélérez-le 4× sur 1280×720, et documentez les mesures pour un certificat vérifiable.
Le brief
Ce que vous ferez, et ce que vous démontrerez.
Le noyau de convolution d'images actuel provoque trop de défauts de cache et n'utilise pas les instructions vectorielles du processeur, ce qui le rend trop lent pour le traitement vidéo temps réel à 30 images par seconde.
Earning criteria — what you'll demonstrate
- Diagnostiquer les goulots d'étranglement mémoire d'un programme à l'aide de compteurs matériels (cache misses, Translation Lookaside Buffer — TLB misses)
- Appliquer des techniques de tiling (découpage en tuiles) et de réorganisation mémoire pour améliorer la localité de cache
- Écrire du code vectorisé en utilisant les intrinsics SIMD (SSE, AVX) et mesurer leur impact réel sur les performances
- Concevoir un protocole de benchmark rigoureux avec mesures statistiques (médiane, écart-type, warm-up du cache)
Adéquation au programme
Où cela s'inscrit dans votre cursus.
Renforce les mêmes compétences que celles attendues par votre diplôme.
Cursus associés bientôt disponibles.
Compétences
Les compétences que vous démontrerez.
Chacune apparaît sur votre certificat vérifié.
Débouchés
Les métiers auxquels ce défi vous prépare.
De vrais intitulés. De vraies passerelles de compétences. Choisissez celui qui se rapproche le plus de votre trajectoire.
Les parcours de carrière que ce défi construit
Métiers de référenceIngénieur Logiciel Embarqué
Ce défi entraîne à optimiser du code C sous contraintes matérielles strictes (cache, latence), compétence centrale pour tout ingénieur embarqué travaillant sur des calculateurs automobiles ou aéronautiques à ressources limitées.
Ce défi renforce
- cache-aware-optimization
- simd-vectorization
- performance-profiling
Architecte de Systèmes
L'analyse des interactions entre hiérarchie mémoire, vectorisation et pipeline processeur développe la vision système nécessaire pour concevoir des architectures logicielles performantes à grande échelle.
Ce défi renforce
- algorithm-analysis
- cache-aware-optimization
- benchmarking-methodology
Ingénieur de Plateforme
La maîtrise du profilage matériel et de l'optimisation bas niveau prépare à dimensionner et configurer des plateformes d'exécution où chaque milliseconde de latence compte.
Ce défi renforce
- performance-profiling
- application-monitoring
- benchmarking-methodology