• Aucun résultat trouvé

Compilation d'applications de traitement d'images sur architecture MPPA-Manycore

N/A
N/A
Protected

Academic year: 2021

Partager "Compilation d'applications de traitement d'images sur architecture MPPA-Manycore"

Copied!
2
0
0

Texte intégral

(1)

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�

(2)

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

e/s

orti

e

Cluster d’entrée/sortie

Cl

ust

er

d’e

nt

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 calcul

Mé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 debug

Interface

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 5

Phases 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 1

Ré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

Références

Documents relatifs

Besides, the structure of the work-items is not kept between batches: private memories are emptied and local memories are unused, which results in new copies of previously

With this in mind, FPGA Manufacturers like Xilinx and Intel are pushing for an FPGA resurgence, offering software suites (called SDAccel and Intel FPGA SDK for OpenCL, respectively)

there are many mesh simplification methods such as edge collapse, vertex removal and poly- gon merging [1] which can preserve geometric features. It is still difficult for users to

Optimizing OpenCL Implementation of Deep Convolutional Neural Network on FPGA.. Yuran Qiao, Junzhong Shen, Dafei Huang, Qianming Yang, Mei Wen,

When we compute the one-dimensional algorithm along x, the work- items access memory in a coalescing way and thus the memory bandwidth is optimal.. With the same data organization

The Execution model of an OpenCL program occurs in two parts: a kernel, basic unit of executable code which is executed on one or more OpenCL devices, and a host program.. A

Firstly, a program can be implemented on FPGAs using two different kernel types suited for task or data parallelism, and this generic characteristic can be used over a wide range

For benchmarking purposes, we implemented a custom routine program to mea- sure the mean latency of each memory type on an Altera Cyclone V FPGA.. Memory structure Mean