HAL Id: hal-01096993
https://hal-mines-paristech.archives-ouvertes.fr/hal-01096993
Submitted on 18 Dec 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
Compilation d’applications de traitement d’images sur architecture MPPA-Manycore
Pierre Guillou
To cite this version:
Pierre Guillou. Compilation d’applications de traitement d’images sur architecture MPPA-Manycore. Conférence d’informatique en Parallélisme, Architecture et Système (ComPAS 2014), Apr 2014, Neuchatel, Suisse. �hal-01096993�
Compilation d’applications de traitement d’images
sur architecture MPPA-Manycore
Pierre Guillou
– CRI (Centre de recherche en informatique) MINES ParisTech
La puce MPPA-256
Cluster d’entrée/sortie
Cl
ust
er
d’e
nt
ré
e/s
orti
e
Cluster d’entrée/sortie
Cl
ust
er
d’e
nt
ré
e/s
orti
e
Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calcul Cluster de calculMémoire
partagée
(2 Mo)
Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur de calcul Cœur système Unité de debugInterface
Interface
Analyse d’images
analyse d’images :
reconnaissance des éléments contenus dans une
image par utilisation de la. . .
morphologie mathématique :
fondée sur l’algèbre des treillis
FREIA :
API pour l’analyse d’images (MINES ParisTech,
Télécom Bretagne, Thalès)
Opérateurs d’analyse d’images accessible via FREIA :
opérateurs arithmétiques
pixel + paramètre, une image en entrée pixel + pixel, deux images en entrée
+ − × ÷ min max = & | ~
opérateurs morphologiques
calculs au voisinage
kernel matrice 3 × 3
érosion, dilatation, convolution
opérateurs de réduction
maximum, minimun global +/- coordonnées volume : somme des pixels
autres opérateurs
seuil, masque, log2,. . .
=⇒
bibliothèque d’agents Sigma-C
Exemple : extraction de plaques d’immatriculation
(a) Image d’entrée (b) Image de sortie
Sigma-C
, un langage dataflow (Kalray – CEA-LIST)
Agent
foo
entrée 1 entrée 0 sortie=⇒
agent foo () { // describe agent i nt e rf a ce i nt er f ac e { in<int> input0 ; in<int> input1 ;out<int> output ;
// declare the state machine
spec{ input0 [2] , input1 , output [3]};
}
// loop over the state
void start() exchange ( input0 inp0 [2] ,
input1 inp1 , output outp [3]) { outp [0] = inp0 [0]; outp [1] = inp1 ; outp [2] = inp0 [1]; } } subgraph bar () { // describe subgraph i nt er f ac e i nt er f ac e { ... } map { // i n s t a n c i a t e agents
agent a1 = new Agent1 ();
...
agent a3 = new Su b gr a ph 3 ();
// connect agents to subgraph i n t e r f a c e s
connect ( input0 , a1 . input0 );
...
connect ( a5 . output , output1 );
// connect agents
connect ( a1 . output0 , a2 . input );
...
connect ( a3 . output , a5 . input1 );
} }
Subgraph
bar
Agent 1 Agent 2 Subgraph 3 Agent 4 Agent 5Phases de compilation
app.c
app-SIGMAC.c
runtime FREIA
root.sc
lib Sigma-C
PIPS
du graphe d’appel
optimisations
GCC
k1-cc
binaire hôte
binaire hôte
binaire cluster e/s
binaires clusters de calcul
Environnement d’exécution
Runtime FREIA
Binaire
Sigma-C
hôte
Cluster
d’entrée/sortie
de calcul
Clusters
Lecture sur disque Ordre de malloc Envoi de l’image Lancement traitement Réception de l’image Ordre de free Écriture sur disque
com
m
un
ic
at
ion
s
pa
r
n
am
ed
p
ip
es
Transfert Transfert Transfert Transfert Transfert malloc sur DDR Stockage sur DDR Streaming de l’image ligne à ligne Stockage du résultat sur DDR Lecture sur DDR free sur DDR traitement n traitement i+1 traitement i traitement 2 traitement 1Résultats : logarithmes des temps d’exécution et des énergies relatives au MPPA-256
(lower is better)0.01 0.1 1 10 anr999 ant ibio
burner deblocking licenseP lat e oop ret ina toggle temps d' exé cut ion relat if au MP P A -256
Applications d'analyse d'images
Kalray MPPA-256 (Sigma-C) SPOC (FPGA) Terapix (FPGA) Intel 2-core (OpenCL) AMD 4-core (OpenCL) GeForce 8800 GTX (OpenCL) Quadro 600 (OpenCL) Tesla C 2050 (OpenCL) 0.01 0.1 1 10 100 anr999 ant ibio
burner deblocking licenseP lat e oop ret ina toggle énergie con sommée relat ive au MP P A -256
Applications d'analyse d'images
MPPA (our compile chain): 5W SPOC: 26W Terapix: 26W Intel 2-core: 65W AMD 4-core: 60W GeForce 8800 GTX: 120W Quadro 600: 40W Tesla C 2050: 240W MPPA best estimate