SOSoC

System-on-Chip Optimization on embedded computing cores
Responsable
ROSSIER Daniel
Période
septembre 2012 - septembre 2013
Axes
Gestion logicielle de matériels hétérogènes Accélération matérielle du traitement de l'information

Le projet SOSoC vise à offrir une manière performante et transparente d’optimiser les temps de traitement grâce aux différents cœurs de calcul disponibles dans un System on Chip (SoC) et ce, dynamiquement et automatiquement. 

Dans le cadre de ce projet, un environnement capable de répartir dynamiquement l'exécution d'algorithmes sur les différents unités de calcul à disposition dans un System on Chip, a été développé. Ce framework existe sous la forme d'une bibliothèque qui permet au développeur de programmer sans connaître exactement l’architecture et le matériel disponible, mais de tout de même profiter de toute la puissance de calcul à disposition dans un système embarqué.

   Sosoc
La bibliothèque choisit elle-même quelle cible (en l’occurrence ARM, NEON ou DSP) utiliser selon un système de benchmarking. Une même fonction peut en effet s’exécuter plus ou moins rapidement sur une unité de calcul en fonction de paramètres effectifs et de la charge du système.

Le dispatching automatique permet ainsi de sélectionner le meilleur candidat possible en fonction des unités de traitement disponible.  Le dispatcher analyse à chaque appel de fonction les derniers résultats obtenus lors des appels précédents. Il choisit alors la cible la plus rapide. A intervalle régulier, il va exécuter la fonction sur toutes les cibles disponibles afin de voir si l'une d'entre elles est devenue plus rapide.

 

Résultats obtenus

Le système permet aisément de mesurer les les temps de calcul sur les différentes cibles et de les comparer. Ainsi la cible NEON est souvent la plus rapide du fait de sa capacité à paralléliser le calcul.

Le DSP permet quant à lui d’alléger la charge du processeur, mais les temps d’accès et de transfert ne sont pas négligeables ; il reste donc plus intéressant pour des algorithmes complexes.

 

Sosoc_bis

Démonstrateur

Comme démonstrateur, un traitement vidéo (une détection de contour en l’occurrence) a été utilisé pour permettre de comparer visuellement les différentes performances. Il est possible de répartir manuellement ou dynamiquement l’exécution de la fonction de traitement sur chacune des cibles. Le dispatcher automatique utilise la cible la plus rapide, néanmoins il exécute, à intervalle régulier et défini, la fonction sur les cibles moins rapides. Ainsi si une cible devient soudainement plus rapide, elle sera davantage utilisée.

 

La bibliothèque, ainsi que le démonstrateur, initialement développé sur une carte d’évaluation de Texas Instruments, ont été portés sur la plate-forme REPTAR développé au sein de l'institut REDS.

Publication

Olivier Nasrallah ; Wolfram Luithardt ; Daniel Rossier ; Alberto Dassatti ; Jerome Stadelmann ; Xavier Blanc ; Nuria Pazos ; Florian Sauser ; Serge Monnerat,
"SOSoC, a Linux framework for System Optimization using System on Chip",
SOC Conference (SOCC), 2013 IEEE 26th International