From Scilab To High Performance Embedded Multicore Systems - The ALMA Approach - FP7-ICT-2011-7-287733

Die Seite wird erstellt Rory Brandl
 
WEITER LESEN
From Scilab To High Performance Embedded Multicore Systems - The ALMA Approach - FP7-ICT-2011-7-287733
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
From Scilab To High Performance Embedded Multicore Systems - The ALMA Approach - FP7-ICT-2011-7-287733
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
From Scilab To High Performance Embedded Multicore Systems - The ALMA Approach - FP7-ICT-2011-7-287733
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
From Scilab To High Performance Embedded Multicore Systems - The ALMA Approach - FP7-ICT-2011-7-287733
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
From Scilab To High Performance Embedded Multicore Systems - The ALMA Approach - FP7-ICT-2011-7-287733
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
From Scilab To High Performance Embedded Multicore Systems - The ALMA Approach - FP7-ICT-2011-7-287733
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
From Scilab To High Performance Embedded Multicore Systems - The ALMA Approach - FP7-ICT-2011-7-287733
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
From Scilab To High Performance Embedded Multicore Systems - The ALMA Approach - FP7-ICT-2011-7-287733
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