Portage et optimisation d applications de traitement d images sur architecture Kalray Mppa-Manycore Journées de la Compilation



Documents pareils
Sanity Check. bgcolor mgcolor fgcolor

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Programmation C. Apprendre à développer des programmes simples dans le langage C

Architecture des ordinateurs

CH.3 SYSTÈMES D'EXPLOITATION

Limitations of the Playstation 3 for High Performance Cluster Computing

Plan de cette matinée

Initiation. àl algorithmique et à la programmation. en C

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Bases de programmation. Cours 5. Structurer les données

UE Programmation Impérative Licence 2ème Année

T E C S O F T 775,00 TTC 645,83 HT

Cours 1 : La compilation

Programmation système I Les entrées/sorties

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Hyper-V et SC Virtual Machine Manager sous Windows Server 2008 R2

Etude d Exchange, Google Apps, Office 365 et Zimbra

Module : Virtualisation à l aide du rôle Hyper-V

VMWARE VSPHERE ESXI INSTALLATION

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Initiation au HPC - Généralités

Options indispensables, fortement conseillées pour démarrer sans soucis

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

Contrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs. Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Chapitre 2 : Abstraction et Virtualisation

Conventions d écriture et outils de mise au point

Manuel de déploiement sous Windows & Linux

Vers du matériel libre

La mémoire. Un ordinateur. L'octet. Le bit

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Présentation d HyperV

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

ACTIVITÉ DE PROGRAMMATION

Prise en main. Prise en main - 0

Architecture des ordinateurs

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

Système de stockage IBM XIV Storage System Description technique

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

10 tâches d administration simplifiées grâce à Windows Server 2008 R2. 1. Migration des systèmes virtuels sans interruption de service

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Hyper-V v2 : une évolution majeure des services de virtualisation

Spécifications détaillées

Approche Contract First

Introduction à l Informatique licence 1 ère année Notes de Cours

Informations générales par rapport au système d'exploitation

Introduction aux systèmes temps réel. Iulian Ober IRIT

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

IV- Comment fonctionne un ordinateur?

Choisir le bon ordinateur. et la bonne imprimante en avec. Les prix bas, la confiance en plus

MAC-TC: programmation d un plate forme DSP-FPGA

Concept de machine virtuelle

Une bibliothèque de templates pour CUDA

Tsoft et Groupe Eyrolles, 2005, ISBN :

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

Éléments de programmation et introduction à Java

Analyse de sécurité de logiciels système par typage statique

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

11 Février 2014 Paris nidays.fr. france.ni.com

Cours Informatique 1. Monsieur SADOUNI Salheddine

Vulgarisation Java EE Java EE, c est quoi?

CUOMO PC Route d Oron Lausanne 021/

Programmation parallèle et distribuée

Exchange 2007 : Améliorations et nouvelles fonctionnalités Atelier 136. Société GRICS

TVTools Cloud Edition

IRL : Simulation distribuée pour les systèmes embarqués

Séminaire RGE REIMS 17 février 2011

Évaluation et implémentation des langages

Introduction au calcul parallèle avec OpenCL

Services RDS de Windows Server 2012 R2 Remote Desktop Services : Installation et administration

Tutoriel code::blocks

Systèmes et traitement parallèles

Sans trop entrer dans les détails, la démarche IO Model consiste à : Pour cela, Microsoft découpe la maîtrise de l infrastructure en quatre niveaux :

Infrastructures Parallèles de Calcul

Configuration système requise pour les grandes et moyennes entreprises

Initiation à la sécurité

Programmation parallèle et distribuée

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

Migration d un Cluster Fiber Channel+SAN+Lames sous Xen vers Ethernet +iscsi+serveurs sous KVM

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

Rappels d architecture

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Rapport 2014 et demande pour Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121

Exigences système Commercial & Digital Printing

Extrait des Exploitations Pédagogiques

Chapitre 10 Arithmétique réelle

Leçon 1 : Les principaux composants d un ordinateur

Documentation d information technique spécifique Education. PGI Open Line PRO

Eternelle question, mais attention aux arnaques Question qui est souvent mise en premier plan => ce n est pas une bonne idée

Catalogue des stages Ercom 2013

Le langage VHDL. Eduardo Sanchez EPFL

Exigences système Edition & Imprimeries de labeur

Ordinateur Génération

Transcription:

Portage et optimisation d applications traitement d images sur architecture Kalray Mppa-Manycore Journées la Compilation Pierre Guillou Centre recherche en informatique Mines ParisTech 4 décembre 2013 1 / 26

1 La société Kalray 2 Le processeur Mppa-Manycore Architecture Programmation 3 Le langage Sigma-C Agents Subgraphs 4 Développement d agents pour l analyse d image Accélération matérielle Agents pour analyse d image 5 Génération co par Pips L existant - le framework Freia Application au Sigma-C 6 Interfaçage avec le framework Freia Gestion s transferts Architecture logicielle 7 Exemple L application licenseplate Résultats obtenus 2 / 26

Kalray Conception processeurs à haute efficacité énergétique Mppa : Multi-Purpose Processor Array 3 / 26

Kalray Conception processeurs à haute efficacité énergétique processeur gran efficacité énergétique 256 cœurs faible consommation énergétique (5W) systèmes embarqués 4 / 26

Kalray Conception processeurs à haute efficacité énergétique suite logicielle IDE (plugin Eclipse) débugger profiler système traces 4 / 26

Kalray Conception processeurs à haute efficacité énergétique station travail plate-forme développement complète Mppa-Manycore sur carte d extension PCI-Express Mppa-Accesscore Fedora 17, 16 Go DDR 4 / 26

Architecture Network on Chip Cluster d entrée/sortie Cluster d entrée/sortie Cluster Cluster Cluster Cluster Cluster Cluster Cluster Cluster Cluster Cluster Cluster Cluster Cluster Cluster Cluster Cluster Cluster d entrée/sortie 16 clusters 4 clusters d entrée/sortie NoC gravure en 28 nm Cluster d entrée/sortie 5 / 26

Architecture Clusters Interface Interface système Unité bug 64 registres 32 bits Mémoire partagée VLIW + vectoriel Mémoire partagée : 2 Mo/cluster NoOS 6 / 26

Architecture Entrées/sorties Machine hôte (Fedora) Mppa-Developer Mppa Board Réseau via Ethernet Puce Mppa Mémoire vive Autre puce Mppa 7 / 26

Architecture Entrées/sorties Machine hôte (Fedora) Mppa-Developer Mppa Board Réseau via Ethernet Puce Mppa Mémoire vive Autre puce Mppa 7 / 26

Programmation Deux paradigmes Explicitement parallèle (bas niveau) POSIX-Threads OpenMP MPI (portage en cours) OpenCL (portage en cours) Dataflow (haut niveau) Langage Sigma-C 8 / 26

Agents Le langage Sigma-C - les agents entrée 0 = sortie entrée 1 Agent agent ag_name ( parameters ) { interface { in <input_t > input0 ; in <input_t > input1 ; out <output_t > output ; spec { { input0 [2]; output0 } ; { input1 } ; { output0 [3]} }; }... } 9 / 26

Agents Les agents, s machines à états get 1 data from input1 get 2 data from input0 send 1 data to output0 send 3 data to output0 interface {... spec { { input0 [2]; output0 } ; { input1 } ; { output0 [3]} }; } void foo ( int a) exchange ( input0 inp [2], output0 outp ) { outp = a* inp [0] + inp [1]; }... void start () { foo (2);... } 10 / 26

Subgraphs Le langage Sigma-C - les subgraphs Agent 2 Agent 4 Agent 1 Agent 3 Agent 5 subgraph subgr () {... map { agent ag1 = new agname (...); agent ag2 = new agname (...);... connect ( ag1. output0, ag2. input ); connect ( ag1. output1, ag3. input );... } } 11 / 26

Accélération matérielle Accélération matérielle sur Mppa-Manycore Machine hôte Clusters d entrée/sortie Clusters Lecture Transfert Traitement Transfert Écriture 12 / 26

Agents pour analyse d image Développement d agents Sigma-C pour l analyse d images Plusieurs types d agents développés opérateurs arithmétiques unaires (une image en entrée + un paramètre) binaires (ux images en entrée) opérateurs morphologiques érosion, dilation, convolution cœur boucle en assembleur (développé par Kalray) opérateurs mesure min et max (avec ou sans leurs coordonnées), volume 13 / 26

L existant - le framework Freia Freia, un framework pour l analyse d image Application d analyse d image Framework Freia Fulguro OpenCL SPoC Terapix Implémentation logicielle Accélérateurs matériels Implémentations s opérateurs d analyse d image 14 / 26

L existant - le framework Freia Freia, un framework pour l analyse d image Application d analyse d image Compilateur source à source Pips Framework Freia Application optimisée Fulguro OpenCL SPoC Terapix Implémentation logicielle Accélérateurs matériels Implémentations s opérateurs d analyse d image 14 / 26

L existant - le framework Freia Freia, un framework pour l analyse d image Application d analyse d image Compilateur source à source Pips Framework Freia Application optimisée Fulguro OpenCL SPoC Terapix Mppa Implémentation logicielle Accélérateurs matériels Implémentations s opérateurs d analyse d image 14 / 26

Application au Sigma-C Principe Passer freia_aipo_ero_8c ( imero, imin, kernel ); freia_aipo_dilate_8c ( imdilate, imero, kernel ); freia_aipo_and ( imout, imdilate, imin ); à subgraph foo () {... int16_t kernel [9] = {0,1,0, 0,1,0, 0,1,0};... agent ero = new img_ero ( kernel ); agent dil = new img_dilate ( kernel ); agent and = new img_and_img ();... connect ( ero. output, dil. input ); connect ( dil. output, and. input );... } 15 / 26

Application au Sigma-C Compilation co Sigma-C Structures intermédiaires DAG liste s sommets, entrées et sorties vertex opération, paramètres, liste s successeurs Génération co Sigma-C Pour chaque vertex : déclarer les paramètres instancier l agent correspondant avec les bons paramètres connecter l agent à ses successeurs insérer s agents réplication si plus sorties que spécifié 16 / 26

Gestion s transferts Retour sur le modèle d accélérateur matériel Machine hôte Clusters d entrée/sortie Clusters Lecture Transfert Traitement Transfert Écriture 17 / 26

Gestion s transferts Inconvénients du modèle Transferts inter clusters communications : 100 cycles mémoire d un cluster : 2 Mo = transferts ligne à ligne Transferts hôte - clusters Transferts + coûteux transfert d un seul tenant dans la mémoire vive la puce streaming ligne par ligne la mémoire vers les clusters 18 / 26

Gestion s transferts Inconvénients du modèle Lecture et écriture sur disque garr la dépendance à Freia chargement et sauvegar s images architecture en ux exécutables Freia manipule les images Sigma-C effectue les traitements communications par pipes nommés (sign Kalray) 18 / 26

Architecture logicielle Architecture d une application Sigma-C - Freia binaire Freia Lecture Machine hôte Création s pipes Clusters d entrée/sortie Clusters Ordre malloc Transfert Malloc sur DDR Envoi l image Lancement traitement Retour l image communication par pipes nommés Transfert Transfert Transfert Stockage sur DDR Streaming l image Stockage en DDR Envoi puis la DDR Traitement Ordre free Transfert Free sur DDR Écriture Agents SigmaC (co généré par Pips) 19 / 26

L application licenseplate Application licenceplate - présentation 20 / 26

L application licenseplate Application licenceplate - présentation 20 / 26

L application licenseplate Application licenseplate - DAG Ouverture 15 Seuillage Lecture ET binaire Fermeture 8 Seuillage Écriture ET binaire Dilatation 3 Ouverture 3 21 / 26

L application licenseplate Comparaison s temps traitement Performances s différentes cibles 37 36 32 Temps traitement (ms) 21 14 22 7.3 2.3 Mppa SPoC Terapix Intel dual-core AMD quad-core GeForce 8800 GTX Quadro 600 Tesla C 2050 22 / 26

L application licenseplate Consommation énergétique Consommation énergétique théorique s différentes cibles 240 Consommation énergétique (W) 65 60 120 40 5?? Mppa SPoC Terapix Intel dual-core AMD quad-core GeForce 8800 GTX Quadro 600 Tesla C 2050 23 / 26

Résultats obtenus Résultats obtenus sur les autres applications App. Mppa SPoC Terapix Intel AMD dual-core quad-core anr999 29 0.9 3.5 12.2 7.2 licenseplate 21 13.6 36.8 32.2 21.9 oop 35 124.6 63.3 12.3 8.3 toggle 33 12.6 4.3 15.0 9.0 App. Mppa GeForce Quadro Tesla 8800 GTX 600 C 2050 anr999 29 9.8 1.5 0.9 licenseplate 21 36.6 7.3 2.3 oop 35 5.8 1.8 1.0 toggle 33 6.3 1.4 0.7 24 / 26

En conclusion bibliothèque d agents Sigma-C pour l analyse d image génération via Pips co applicatif intégré au framework Freia plusieurs applications fonctionnelles optimisations s temps d exécution future work : amélioration performances, support d autres applications... 25 / 26

Portage et optimisation d applications traitement d images sur architecture Kalray Mppa-Manycore Journées la Compilation Pierre Guillou Centre recherche en informatique Mines ParisTech 4 décembre 2013 26 / 26