Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Pr architecture kalray
1. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Kalray MPPA :
L’architecture d’un processeur massivement
multicœur
Baptiste Roux
IRISA, Enssat, 22300 Lannion, France
baptiste.roux@inria.fr
mars, 2015
B. Roux Architecture Kalray 1/22
2. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Contexte de ma th`ese
Sujet
Exploration architecturale d’une radio flexible et faible
consommation pour la communication avec les drones
Objectifs
Mesurer les performances des cibles de type massivement
multicœur pour des applications radio-logicielle
L’´etude est bas´ee sur le standard DVB-S2 utilis´e par la DGA
pour la communication avec ses drones
B. Roux Architecture Kalray 2/22
3. Introduction Architecture MPPA Mod`eles de programmation Conclusion
La soci´et´e kalray2
Objectifs
Cr´eer une technologie programmable haute performance appel´ee
MPPA1 destin´ee au march´e de l’informatique embarqu´ee
Cr´eation en 2008
Localis´ee `a Paris et Grenoble
Plus de 55 employ´es (sept 2012)
1
Multi-Purpose Processor Array
2
Le contenu du support est extrait des pr´esentations Kalray
B. Roux Architecture Kalray 3/22
4. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Applications vis´ees
Kalray vise les domaines d’applications suivants :
B. Roux Architecture Kalray 4/22
5. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Roadmap 2012
Kalray ´etend sa gamme de produit selon deux axes
Augmentation de la puissance de calcul
Diminution de la consommation
Figure 1: Roadmap envisag´ee par Kalray en 2012
B. Roux Architecture Kalray 5/22
6. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Roadmap 2015
Figure 2: Roadmap actualis´ee en f´evrier 2015
B. Roux Architecture Kalray 6/22
7. Introduction Architecture MPPA Mod`eles de programmation Conclusion
L’architecture MPPA en bref
Processeur Kalray MPPA-256
256 cœurs VLIW 3 d´edi´es au calcul + 32 cœurs VLIW d´edi´es `a la
gestion des ressources
Hautes performances de calcul
700GOPS-230GFLOPS SP4
Faible consommation
5W-10W
Mod´ele de programmation de haut
niveau
PCIe Gen3, Ethernet 10G, NoCX 53
Very Long Instruction Word
4
Giga Floating point Operations Per Second Simple Precision
5
Interface d’extension du NoC
B. Roux Architecture Kalray 7/22
8. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Vue hierarchique du MPPA-256
Coeur VLIW Cluster de calcul Processeur MPPA
Parall´elisme de
niveau instructions
Parall´elisme de
niveau threads
Parall´elisme de
niveau processus
B. Roux Architecture Kalray 8/22
9. Introduction Architecture MPPA Mod`eles de programmation Conclusion
D´etails sur les cœurs VLIWs
Figure 3: Architecture
VLIW 5 voies.
Chemin de donn´ees
2 Arithmetic-logic Unit
Multiply-Accumulate Unit
Floating-Point Unit
Load-Store Unit
Branch-Control Unit
D´eterminisme et consommation
Caches LRU
Pipeline d’instructions `a 7
´etages, 400MHz
Modes Idle et wake-up sur
interruptions
B. Roux Architecture Kalray 9/22
10. Introduction Architecture MPPA Mod`eles de programmation Conclusion
D´etails sur les clusters
Figure 4: Sch´ema d’un
cluster.
Bancs m´emoire
M´emoires multi-bancs
parall`eles
38,4GB/s de bande passante
`a 400MHz
Fiabilit´e
ECC dans la m´emoire
partag´ee
Parity check dans les caches
Extinction des ´el´ement fautifs
Faible consommation
Mode faible consommation
des bancs m´emoire
DVFS
B. Roux Architecture Kalray 10/22
11. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Architecture m´emoire
Figure 5: Sch´ema du
r´eseau sur puces
20 espaces d’adresses
16 dans les clusters de calcul
4 dans les clusters d’IO avec
acc`es direct `a la m´emoire
externe (DDR)
Double r´eseau sur puce (NoC)
R´eseau de donn´ees et r´eseau
de contrˆole
Liens full duplex 4octets/cycle
Transfert mono-point et
multi-points
Qualit´e de service
Contrˆole et routage des flots
de communication par la
source
Synchronisation automatique
B. Roux Architecture Kalray 11/22
12. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Interfaces d’entr´ee/Sortie
Figure 6: Sch´ema des
interfaces du MPPA
Interfaces m´emoire DDR3
Ports PCI express Gen3
Interfaces SPI/I2C/UART
Interfaces ethernet 1G/10G/40G
GPIOs avec acc`es direct au NoC
Extension du r´eseau sur puce
B. Roux Architecture Kalray 12/22
13. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Mod`eles de programmation
Programmation Dataflow
Mod`ele de programmation haut niveau bas´e sur le langage Σc. Les
applications sont d´ecrites par un graphe d’agents.
Destin´e aux applications statiques de types flots de donn´ees
Phase de compilation automatique ciblant la plateforme d’ex´ecution
Compilation statique de l’application permettant une meilleure
stabilit´e
Programmation POSIX
Programmation de bas niveau. Le parall´elisme de l’application est
d´ecrit par des processus/threads POSIX.
Convient `a un large spectre d’applications ”dynamiques”
N´ecessite une connaissance approfondie de l’architecture
Meilleur contrˆole des m´ecanismes de bas niveaux
B. Roux Architecture Kalray 13/22
14. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Programmation dataflow
Un agent est d´efini par des interfaces et une suite de transitions
Figure 7: Caract´eristiques d’un agent.
B. Roux Architecture Kalray 14/22
15. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Sch´ema d’ex´ecution d’une application Dataflow
B. Roux Architecture Kalray 15/22
16. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Simulation d’ex´ecution d’une application Dataflow
B. Roux Architecture Kalray 16/22
17. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Programmation POSIX
Approche bas´ee sur la norme POSIX
Un processus par cluster
Plusieurs threads dans un cluster
16+1 cœurs partagent le mˆeme espace m´emoire
Utilisation de primitives pour la cr´eation et la synchronisation
(pthread create, Sem wait, Sem post, ...)
Les communications inter-cluster s’effectuent via des appels
explicites `a des primitives syst`emes
Deux types de syst´emes d’exploitation s’ex´ecutent
Rtems : dans les clusters d’Entr´ee/Sortie
NodeOs : dans les clusters de calcul
B. Roux Architecture Kalray 17/22
18. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Sch´ema d’ex´ecution d’une application POSIX
B. Roux Architecture Kalray 18/22
19. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Comparatif
Dataflow POSIX
Graphe statique d’agents Programmation dynamique
par threads
Empreinte m´emoire calcul´ee
lors de la compilation
Allocation dynamique de
m´emoire
Pas d’interblocage, coh´erence
de cache, temps ´execution
maximum, d´eterminisme
Laiss´e `a la responsabilit´e du
d´eveloppeur
Placement des taches automa-
tique
Placement manuel
Calcul automatique de la taille
des buffers de comunications
Dimensionnement manuel des
buffers d’´echanges
B. Roux Architecture Kalray 19/22
20. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Outils propos´es
Kalray fournit une suite d’outils permettant l’instrumentation et le
debug d’applications :
k1-dtv : outils de visualisation des traces d’ex´ecution du
programme d´esassembl´e
k1-gdb : debugger gdb adapt´e au processeur kalray
k1-stv : outils de visualisation des points de trace ins´er´e par
l’utilisateur (bas´e sur lttng)
k1-power : outils de mesure de la consommation du
processeur MPPA.
B. Roux Architecture Kalray 20/22
21. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Comparatif de quelques technologies multicœur
Coeurs GFLOPS
SP
Conso Temps
r´eel
DDR Ethernet
Intel
XeonPhi
52 x86 2147 300W No GDDR5
1866
No
Tilera
TileGx
72 80 60W No 4DDR3
1600
8x10G
NVIDIA
Tegra4
4 A15
72 SC
45
75
8W No 2DDR3
1866
1G
TI key-
stonell
4 A15
8 C66x
45
154
25W Yes 2DDR3
1600
10G
Kalray
MPPA
288 K1 230 10W Yes 2DDR3
1600
8x10G
B. Roux Architecture Kalray 21/22
22. Introduction Architecture MPPA Mod`eles de programmation Conclusion
Prochaines ´etapes
Objectif
D´eterminer l’influence de l’expression du parall´elisme sur la
consommation de l’application
Utilisation du jeux de benchmarks PARSEC6
Proc´edure envisag´ee
Portage ”naif” des benchmarks sur le MPPA
Mise en place d’une approche de programmation streamming
Adaptation du code `a l’architecture des VLIWs
Modification du nombre de cœurs utilis´es et mise en place du
DVFS dans les clusters
Ces r´esultats pourront ˆetre r´eutilis´es avec le DVB-S2
6
Princeton Application Repository for Shared-Memory Computers
B. Roux Architecture Kalray 22/22