From Scilab To High Performance Embedded Multicore Systems - The ALMA Approach - FP7-ICT-2011-7-287733
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
FP7-ICT-2011-7-287733 From Scilab To High Performance Embedded Multicore Systems - The ALMA Approach Michael Rückauer Karlsruher Institut für Technologie FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 1
Gliederung ALMA EU-Projekt Motivation Projektüberblick Zielarchitekturen Anwendungstestfälle ALMA-Toolchain & Entwicklungsfluss Zusammenfassung FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 2
ALMA Project ID Card Dreijahresprojekt: 01.09.2011 – 30.08.2014 Finanziert vom FP7: 3.2 Millionen Euro Offizielle Website: http://www.alma-project.eu/ Koordinator: Jürgen Becker (KIT) and Timo Stripf (KIT) Technischer Koordinator: Nikos Voros (TEIWG) FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 3
Weshalb brauchen wir Multicore- Prozessoren? Bis etwa 2005: Performanzsteigerung von Prozessoren bestimmt von Taktfrequenz Architekturoptimierungen Cache Power wall ILP wall Multicore-Prozessoren Parallelität muss explizit vom Programmierer spezifiziert (source http://www.gotw.ca/publications/concurrency-ddj.htm) werden FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 4
Motivation Anwendersicht Zielarchitektur • Algorithmen entwerfen • Multi-Prozessor-System-on-Chip • ... mit einer komfortablen Sprache • Parallel arbeitende Prozessorkerne • z.B. Scilab, … • Parallele Programmiermodelle • z.B. pthreads, MPI, OpenMP • Keine explizite Betrachtung von • Datentypen • Parallelität in den Prozessorkernen • Parallelität • Single Instruction Multiple Data • Very Long Instruction Word • Endergebnis • Performant • Systemeigene Datentypen • Energieffizient • z.B. 32-bit Integer • Wirtschaftlich • Verwendung anderer Datentypen • Kurze Entwicklungszeit verringert Performanz Verstecken der Komplexität vor dem Anwender Übersetzen von annotiertem Scilab-Code für MPSoC- Architekturen FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 5
Herausforderungen beim Übersetzen von Scilab für MPSoCs Scilab-Programmiersprache Sequentielle, imperative Sprache Dynamische Typisierung (Skalare, Vektoren, Matrizen) Anwender nutzen typischerweise Gleitkomma-Datentypen Keine Zeiger, dadurch keine Speicher-Aliasing-Probleme Parallelität bei Vektor- und Matrixoperationen MPSoC-Zielarchitekturen Grobgranulare Parallelität auf Task-Ebene nutzen Verteilter Speicher Feinganulare Parallelität auf Instruktionsebene nutzen FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 6
ALMA-Zielarchitekturen Kahrisma-Architektur Dynamisch rekonfigurierbares MPSoC “Clustered VLIW”-Prozessor- instanzen Network on Chip I-Cache I-Cache I-Cache I-Cache I-Cache IPP IPP IPP IPP IPP D$ D$ D$ D$ EDPE EDPE EDPE EDPE Memory Hierarchy / Main Memory Memory Hierarchy / Main Memory LS LS LS LS EDPE D$ EDPE D$ EDPE D$ EDPE D$ Xentium® Prozessor LS LS LS LS Fixed-point DSP-Verarbeitung EDPE D$ EDPE D$ EDPE D$ EDPE D$ 10-issue VLIW-Prozessor SIMD LS LS LS LS EDPE D$ EDPE D$ EDPE D$ EDPE D$ Streaming communication services LS LS LS LS IPP IPP IPP IPP IPP I-Cache I-Cache I-Cache I-Cache I-Cache Processor Instance FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 7
Anwendungstestfälle MAC PHY ALMA 2nd Increment ALMA 1st Increment + Pre Tx 1 Telekommunikation + Cyclic BS Tx IFFT Prefix amble MAC- Fram FEC Constel. ` Symb S-T . . .. IEEE 802.16e PHY Layer Data PDU PHY Rand Interle .. . . . . .. Generati e Encod Mappin ol Coding SDU I/F omize aver on Const er g Constr s r ructio uction UL/DL Sched uler UL/DL Frame n MAC/PH IFFT + Cyclic Prefix Tx NT in NT x NR MIMO Downlink Configuration Mapper Y Control BS Rx FFT - Cyclic Rx 1 Prefix MAC- Data Frame Const. Symbol .. . . . .. .. SDU PHY Derand FEC Deinter Equaliz Diversity SDU Decons Demap Deconst Combiner Genera I/F o mizer Decoder leaver er s truction ruction tion - Cyclic Rx NR Uplink Channel FFT Prefix Estimat or Bildverarbeitung Scale Invariant Feature Transform (SIFT) FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 8
Gliederung ALMA EU-Projekt Motivation Projektüberblick Zielarchitekturen Anwendungstestfälle ALMA-Toolchain & Entwicklungsfluss Zusammenfassung FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 9
ALMA-Entwicklungsfluss (Übersicht) Embedded application design Multi-core hardware design Parameters for ALMA algorithm Abstract Translation to optimization algorithm hardware Scilab & parallelization description annotations tools (ADL) C-based code with parallel descriptions Recore KIT Feedback for C-compiler C-compiler optimization Structural Executable binary (for simulator and HW) hardware description Multi-core simulator Optimized application code on multi-core platform FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 10
Eingaben für die ALMA-Werkzeuge Image Telecom- Architecture ALMA-Dialekt der Scilab-Sprache Processing munication Description Applications ADL Ziel Annotated Scilab Code Wiederwendung exisiterender Scilab-Module Matrix-to-C Compiler ADL Compiler Unterstützung für Erzeugung von statisch typisiertem C-Code Scilab Front-End JSON Annotated C Code Untermenge der Scilab-Sprache Iterative Optimization Fine-Grain Parallelism Extraction Datentypen und Anzahl der Dimensionen ALMA IR beschränkt auf bei Übersetzung bekannte Coarse-Grain Größen Parallelism Extraction Maximale Größe jeder Variable muss bekannt ALMA IR sein Parallel Code Generation GeCoS Framework Erweitert durch Typ-Annotationen Information C Code + Back-Annotation Integer- oder Fixpunkt-Datatypen Profile Kahrisma Recore Compiler Compiler Maximale Größen von Vektoren und Matrizen Target-Spec. Compilation Binary Erweitert durch Annotationsprache zur Kahrisma Recore Arch. Multi-Core Unterstützung der Parallelitätsextraktion Arch. Simulator ALMA Architectures FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 11
Scilab Front-End Image Telecom- Architecture Scilab Front-End Processing munication Description Applications Annotated Scilab Code ADL Matrix-nach-C Compiler Matrix-to-C Compiler ADL Compiler Analysiert Scilab-Code Scilab Front-End JSON Typinferenz Annotated C Code High-level-Optimierung des Scilab-Codes Erzeugt verschachtelte Schleifen aus Scilab- Iterative Optimization Fine-Grain Parallelism Extraction Anweisungen ALMA IR Coarse-Grain Parallelism Extraction ALMA IR Erzeugter C-Code Parallel Code Generation Optimiert für Parallelitätsextraktion GeCoS Framework Statische Speicherallokation Information C Code + Back-Annotation Vermeidet Verwendung von Zeigern Profile Kahrisma Recore Compiler Compiler Target-Spec. Compilation Binary Kahrisma Multi-Core Arch. Recore Arch. Simulator ALMA Architectures FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 12
Parallelisierungs-Werkzeuge (Extraktion feingranularer Parallelität) Image Telecom- Architecture Processing munication Description Applications Gleitkomma-nach-Fixpunkt- Annotated Scilab Code ADL Konvertierung Matrix-to-C Compiler ADL Compiler Keine Hardwareunterstützung für FP in eingebetteten Multicore-Systemen Scilab Front-End JSON Annotated C Code Automatisiertes Werkzeug zur Konvertierung von Gleitkomma- zu Iterative Optimization Fine-Grain Parallelism Extraction Fixpunktdatentypen ALMA IR Coarse-Grain Parallelism Extraction ALMA IR SIMD/Software Pipelining Parallel Code Generation Schleifenparallelisierung und GeCoS Framework Layoutoptimierung für SIMD ISAs. Finden eines Kompromisses zwischen Information C Code + Back-Annotation Profile Kahrisma Recore Performanz und Genauigkeit von Compiler Compiler Target-Spec. Compilation Fixpunktdarstellungen Binary Kahrisma Multi-Core Arch. Recore Arch. Simulator ALMA Architectures FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 13
Parallelisierungs-Werkzeuge (Extraktion grobgranularer Parallelität) Image Telecom- Architecture Extraktion grobgranularer Parallelität Processing munication Applications Description und Optimierung ADL Annotated Scilab Code Matrix-to-C Compiler ADL Compiler Verantwortlich für die globale Scilab Front-End JSON Optimierung Annotated C Code Transformation des ALMA IR CFDG in einen hierarchischen Task-Graph (HTG) Iterative Optimization Fine-Grain Parallelism Extraction ALMA IR Parallelisierende Transformationen Coarse-Grain Parallelism Extraction HTG-Partitionierung auf die Prozessorkerne ALMA IR Parallel Code Generation GeCoS Framework Optimierte Ablaufplanung und Abbildung der Tasks auf die Information C Code + Back-Annotation Profile Kahrisma Compiler Recore Compiler Architekturressourcen Target-Spec. Compilation Nutzt Profiling-Information aus der Binary Simulation für eine bessere Abschätzung Kahrisma Arch. Recore Arch. Multi-Core Simulator der Ressourcenverwendung ALMA Architectures FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 14
Parallele Codegenerierung für die Zielplattform Image Telecom- Architecture Parallele Codegenerierung für die Processing munication Applications Description Zielplattform Erzeugt zielarchitekturspezifischen C- ADL Annotated Scilab Code Matrix-to-C Compiler ADL Compiler Code Scilab Front-End JSON Weist Scilab-Variables Tasks zu Annotated C Code Erzeugt Kommunikation zwischen Tasks Iterative Optimization Fine-Grain Parallelism Extraction Fügt SIMD-Intrinsics ein ALMA IR Coarse-Grain Speicherverwaltung Parallelism Extraction ALMA IR Profiling der hierarchischen Taskgraphen Parallel Code Generation und der Kommunikation GeCoS Framework Information C Code + Back-Annotation Profile Kahrisma Recore Verwendet Compiler der Zielarchitektur Compiler Compiler Target-Spec. Compilation Verwendet zielspezifische MPI-Biblotheken Erzeugt ausführbare Dateien für die Binary Kahrisma Multi-Core Arch. Recore Arch. Simulator Hardware und den Simulator ALMA Architectures FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 15
Multicore-Architektur-Simulator Image Processing Telecom- munication Architecture Description Multicore-Architektur-Simulator Applications ADL Annotated Scilab Code Simulation der ALMA-Zielarchitekturen Matrix-to-C Compiler ADL Compiler Scilab Front-End JSON Retargierbar Annotated C Code Struktur des Systems definiert durch ADL Iterative Optimization Fine-Grain Parallelism Extraction ALMA IR Implementierung durch Bibliothek von Coarse-Grain Parallelism Extraction SystemC-Modulen ALMA IR Parallel Code Generation Simulation mit gemischter Genauigkeit GeCoS Framework Verhalten oder zyklusakkurat Information Für einzelne Module (Prozessorkern, C Code + Back-Annotation Profile Kahrisma Recore Compiler Compiler Speichersubsystem, Netzwerk) Target-Spec. Compilation Binary Sammelt Profiling- und Tracing- Kahrisma Arch. Recore Arch. Multi-Core Simulator Informationen ALMA Architectures FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 16
ALMA Architecture Description Language (ADL) Image Telecom- Architecture ALMA ADL Processing munication Description Applications ADL Annotated Scilab Code Architekturbeschreibungssprache Matrix-to-C Compiler ADL Compiler Scilab Front-End JSON Angepasst an die Anforderungen von Annotated C Code ALMA Keine Festlegung auf eine bestimmte Iterative Optimization Fine-Grain 1. Parallelism Extraction ALMA IR Zielarchitektur Coarse-Grain Parallelism Extraction 2. Architekturbeschreibung für den Simulator Kompakte Spezifikation regulärer ALMA IR MPSoC-Strukturen durch for- und if- Parallel Code Generation GeCoS Framework Konstrukte Information C Code + Back-Annotation Profile Kahrisma Compiler Recore Compiler Strukturelle Spezifikation, annotiert mit Target-Spec. Compilation Informationen zum Verhalten Binary Kahrisma Multi-Core Arch. Recore Arch. Simulator ALMA Architectures FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 17
Architecture Description Language (ADL) Strukturbeschreibung Local Mem L1 Local Mem L1 Local Mem L1 Verwendet Konzepte von Mem Adapter Sync Mem Adapter Mem Adapter Hardwarebeschreibungssprachen NoC Adpt. EDPE Core NoC Adpt. EDPE Core NoC Adpt. EDPE Core Module, Instanzen, Verbindungen NoC Aber: Verstecken von Implemen- tierungsdetails der Komponenten Local Local Local L1 L1 L1 Mem Mem Mem Mem Adapter Mem Adapter Mem Adapter Annotatiert mit Informationen NoC Adpt. EDPE Core NoC Adpt. EDPE Core NoC Adpt. EDPE Core zum Verhalten Spezifische Informationen zu den Prozessoren (z.B. Performanz, Leistungsaufnahme) Local Mem L1 Local Mem L1 Local Mem L1 Kommunicationsinfrastruktur (z.B. Mem Adapter Mem Adapter Mem Adapter NoC EDPE NoC EDPE NoC EDPE Topologie, Latenzen, Bandbreite) Adpt. Core Adpt. Core Adpt. Core Lokaler Speicher, Speicher- hierarchien Enthält verschiedene alternative Memory L2 Cache Architekturvarianten in einer Global Memory Beschreibung FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 18
Zusammenfassung Ziel von ALMA: Verstecken der Komplexität der zugrunde liegenden Hardware vor dem Anwender Übersetzen von annotiertem Scilab-Code für MPSoC- Architekturen ALMA-Toolchain plattformunabhängig durch Beschreibung der Hardware in Architecture Description Language Zwei State-of-the-Art-Architekturen unterstützt Testanwendungen aus den Bereichen Telekommunikation und Bildverarbeitung auf beiden Zielplattformen simuliert FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 19
Vielen Dank! FP7-ICT-2011-7-287733 - ALMA – 7. November 2014 – Scilab Konferenz, HS Esslingen 20
Sie können auch lesen