Multicore-Architekturen
Transcription
Multicore-Architekturen
Universität ErlangenNürnberg Technische Universität München Universität Stuttgart Multicore-Architekturen Vortrag im Rahmen der Ferienakademie 2009 Kurs 1: Programmierkonzepte für Multi-Core Rechner Sascha Roloff Reinswald, den 23. September 2009 1 Inhalt Einführung Multicore-Techniken Der Cell Prozessor NVidia Tesla Intel Larrabee Zusammenfassung Sascha Roloff Ferienakademie 2009 2 Einführung Multicore-Architekturen Fortschreiten des Miniaturisierungsprozesses Klassische Methoden zur Erhöhung der Rechenleistung – Verbesserung der Mikroarchitektur – Erhöhung der Taktrate – Problem: zu teuer zu energiehungrig langsam erschöpft Sascha Roloff Ferienakademie 2009 3 Einführung Multicore-Architekturen Entwicklung neuer Architekturen – mehrere Prozessorkerne auf einem Chip – Vorteile: Berechnungen können parallel ausgeführt werden Prozessortakt kann niedrig gehalten werden – Nachteile: Software muss auf Mehrkernprozessoren angepasst werden Nebenläufigkeit kann auftreten Sascha Roloff Ferienakademie 2009 4 Einführung Begriffe Core einfädig Core – Kontext: Kontext Registersatz ALU Befehlszeiger FPU MEM L1-Cache Stackpointer – Ausführungseinheiten: ALU mehrfädig Core Kontext FPU ALU MEM Kontext FPU MEM L1-Cache – L1-Cache Sascha Roloff Ferienakademie 2009 5 Einführung Begriffe Core Singlecore-Prozessor (Ein-Kern-Prozessor) ein Chip - ein Kern L2-Cache Multicore-Prozessor (Mehr-Kern-Prozessor) Core Core ein Chip - mehrere Kerne L2-Cache Multiprozessor mehrere Chips - je Ein-Kern- od. Mehr-KernProzessoren Sascha Roloff Ferienakademie 2009 Core Core L2-Cache L2-Cache 6 Einführung Begriffe Core Singlecore-Prozessor (Ein-Kern-Prozessor) ein Chip - ein Kern L2-Cache Multicore-Prozessor (Mehr-Kern-Prozessor) Core Core ein Chip - mehrere Kerne L2-Cache Multiprozessor mehrere Chips - je Ein-Kern- od. Mehr-KernProzessoren Sascha Roloff Ferienakademie 2009 Core Core L2-Cache L2-Cache 7 Einführung Leistungsgrenzen parallelen Rechnens Tp Gesetz von Amdahl (1967) – Speedup: S= T0 Tp l + Ts = 1 Tp T + s T0 ⋅ l T0 = β l 1 T0 + (1 − β ) – l … Grad der Parallelisierung – β... Anteil der Gesamtzeit, der von der Parallelisierung beeinflusst ist (Tp/T0) Sascha Roloff Ferienakademie 2009 8 Einführung Leistungsgrenzen parallelen Rechnens Gesetz von Amdahl (1967) Sascha Roloff Ferienakademie 2009 9 Inhalt Einführung Multicore-Techniken Der Cell Prozessor NVidia Tesla Intel Larrabee Zusammenfassung Sascha Roloff Ferienakademie 2009 10 Multicore-Techniken homogene, heterogene Multicores Homogene Multicores – alle Kerne eine Chips sind identisch – heutzutage am weitesten verbreitet – einfach für Hardware-/ Software-Entwickler Heterogene Multicores – unterschiedliche Kerne in einem Chip – ein Kern für das Betriebssystem – mehrere spezialisierte Kerne für Berechnungen Spezialaufgaben (Decodierung, Verschlüsselung) Sascha Roloff Ferienakademie 2009 11 Multicore-Techniken Kommunikation Kommunikation der Kerne – über gemeinsamen Speicher – getrennte Caches implizit über Cache-Synchronisation – über DMA-Transfers zwischen lokalem Speicher – expliziter Nachrichtenversand Topologien – Bus, Ring, Grid, Crossbar – 3D-Topologien noch zu teuer Sascha Roloff Ferienakademie 2009 12 Multicore-Techniken Speicherverteilung Globaler Hauptspeicher – Zugriff für alle Kerne gleich schnell (UMA) Lokaler Speicher pro Kern (Scratchpad) – kein Zugriff von anderen Kernen – 16 bis 256 KB Cache-Topologien – kein Cache – getrennter L1-Cache, gemeinsamer L2-Cache – gemeinsamer L2-Cache für Gruppen von Kernen – getrennte L1- und L2-Caches mit gemeinsamen L3-Cache Sascha Roloff Ferienakademie 2009 13 Inhalt Einführung Multicore-Techniken Der Cell Prozessor NVidia Tesla Intel Larrabee Zusammenfassung Sascha Roloff Ferienakademie 2009 14 Der Cell Prozessor Übersicht Gemeinschaftsprojekt von IBM, Sony u. Toshiba Heterogener Multicore-Prozessor mit 9 Kernen – 1 Hauptprozessor (Steuerung) – 8 Co-Prozessoren (Berechnungen) – können versch. Code ausführen 256 GFlops Peakperformance Sascha Roloff Ferienakademie 2009 15 Der Cell Prozessor Die Architektur 2 Typen von Kernelementen – 1x PPE (Power Processing Element) – 8x SPE (Synergistic Processing Element) Verbindungsstruktur – EIB (Element Interconnect Bus) Memory-Interface – MIC (Memory Interface Controller) I/O-Interface – BIC (Bus Interface Controller) Sascha Roloff Ferienakademie 2009 16 Der Cell Prozessor Die Architektur Busanbindung Sascha Roloff Ferienakademie 2009 17 Der Cell Prozessor Die Architektur PPE (Power Processing Element) – 64-bit PowerPC Architektur – L1-Cache: 32 KB Instruktionen 32 KB Daten – L2-Cache: 512 KB Daten und Instruktionen – 2 Hardware-Threads – verteilt Rechenaufgaben an die SPU‘s – liefert systemweite Dienste Sascha Roloff Ferienakademie 2009 18 Der Cell Prozessor Die Architektur SPE (Synergistic Processor Element) – SIMD-Prozessor – SPU (Synergistic Processor Unit) 128x 128-bit Register, 2 Pipelines Local Store: 256 KB – MFC (Memory Flow Controller) DMA-Transfer zw. SPE ↔ SPE, SPE ↔ Hauptspeicher – 2 Hardware-Threads – entkoppelte Ausführung von Rechenoperationen und Datentransfers Sascha Roloff Ferienakademie 2009 19 Der Cell Prozessor Programmierung Ablauf 1. PPE lädt Befehle 2. PPE initiiert DMA-Transfer 3. DMA-Transfer 4. Starte SPU an Adresse X 5. MFC startet SPU-Ausführung Programm wird mit Cell SDK erstellt Sascha Roloff Ferienakademie 2009 20 Der Cell Prozessor Parallelisierung 128 Bit SIMD-Befehl Ebenen des Parallelismus 32 Bit 32 Bit 32 Bit 32 Bit + + + + – innerhalb einer SPE SIMD Instruktionen: 4 Fließkommaoperationen (SP) pro Takt 2 Hardware-Threads entkoppelte Rechen- u. Übertragungsthreads – zwischen SPE-Kernen heterogenes Threadmodell Software Pipelining Image Sascha Roloff DCT QUANT ZZS RLC Ferienakademie 2009 HC Bitstream 21 Inhalt Einführung Multicore-Techniken Der Cell Prozessor NVidia Tesla Intel Larrabee Zusammenfassung Sascha Roloff Ferienakademie 2009 22 NVidia Tesla Paralleles Programmieren auf GPUs GPGPU N Gr a l es T a i Vid rte a k afik – Berechnung allgemeiner Aufgaben mit Grafikprozessoren Homogener Multicore-Prozessor mit 240 Streamprozessoren – alle führen den gleichen Code aus GT200 Chip Co-Prozessor für die CPU 1 TFlops Peakperformance Sascha Roloff Ferienakademie 2009 23 NVidia Tesla Die Architektur 16 Multiprozessoren (SIMD) Multiprozessor: – 8 Thread Prozessoren (32-bit) – 16 KB gemeinsamer Speicher Thread Prozessor: – single-precision FPU – 1024x 32-bit Register – lokaler Speicher ergibt 128 Thread Prozessoren Sascha Roloff Ferienakademie 2009 24 NVidia Tesla Die Architektur Aufbau Sascha Roloff Ferienakademie 2009 25 NVidia Tesla Die Architektur Speicherzugriffszeiten – DRAM: 500 Takte Global Memory Local Memory – DRAM gecached: 10 Takte Constant Memory (read-only) Texture Memory (read-only) – On-Chip: ein Takt Register Shared Memory Sascha Roloff globaler, lokaler Speicher, Konstanten, Texturen Ferienakademie 2009 26 NVidia Tesla Programmierung Ausführung – GPU fungiert als Co-Prozessor für CPU – GPU bearbeitet rechenintensive Teile einer Anwendung – Kernel: GPU-Programm in spezieller Programmiersprache CUDA wird von CPU auf GPU geladen (Host-Speicher DeviceSpeicher) wird datenparallel von GPU ausgeführt Sascha Roloff Ferienakademie 2009 27 NVidia Tesla Parallelisierung Rechenfeld in Blöcke einteilen Durnholzer See im Sarntal Sascha Roloff Ferienakademie 2009 28 NVidia Tesla Parallelisierung Rechenfeld in Blöcke einteilen Datenparallelisierung Durnholzer See im Sarntal Sascha Roloff Ferienakademie 2009 29 NVidia Tesla Parallelisierung Abbildung auf CUDA Grid Thread Block 0 Thread Block 1 Thread Block N … Shared Memory Durnholzer See im Sarntal Sascha Roloff Shared Memory Shared Memory ein Block im Rechenfeld entspricht einem Thread Block in CUDA Ferienakademie 2009 30 NVidia Tesla Parallelisierung Thread Block Thread Block Thread Block Abbildung auf die Hardware Shared Memory Shared Memory Shared Memory – Gitter: wird auf alle Multiprozessoren verteilt – Thread Block: wird von einen Multiprozessor ausgeführt wird Warp-weise abgearbeitet – Warp: Einplanungseinheit 32 Threads 4 Takte Sascha Roloff ein Multiprozessor kann maximal 8 Thread Blöcke und insgesamt 768 Threads nebenläufig bearbeiten Ferienakademie 2009 31 Inhalt Einführung Multicore-Techniken Der Cell Prozessor NVidia Tesla Intel Larrabee Zusammenfassung Sascha Roloff Ferienakademie 2009 32 Intel Larrabee Graphics Processing with CPU GPCPU – Berechnung von grafikbasierten Anwendungen mit CPUs Homogener Multicore-Prozessor – 32 Kerne (basieren auf x86 CPUs) – flexibel programmierbar schnelles Verbindungsnetz 2 TFlops Peakperformance Sascha Roloff Ferienakademie 2009 33 Intel Larrabee Die Architektur Gesamtansicht – In-Order Kerne mit L1-, L2-Cache (voll kohärent) – Verbindungsbus als bi-direktionaler Ring – Textureinheiten – Speichercontroller Sascha Roloff Ferienakademie 2009 34 Intel Larrabee Die Architektur Larrabee Core – Skalare Einheit (x86 kompatibel) Skalare Register – Vektor Einheit (SIMD-Erweiterung) Vektor Register – Kommunikation zw. Registern über L1-Cache – 256 KB L2-Cache – Kommunikation zw. den Cores implizit über L2-Cache Synchronisation! Sascha Roloff Ferienakademie 2009 35 Intel Larrabee Die Architektur Skalare Einheit – zuständig für skalare Operationen – 64-bit Unterstützung – 4 Hardware-Threads Vektor Einheit – Berechnung von Ganzzahlen und Fließkommazahlen mit einfacher, doppelter Genauigkeit – 512-bit SIMD Befehle – 16x 32-bit Operation pro Takt Sascha Roloff Ferienakademie 2009 36 Intel Larrabee Parallelisierung Larrabee kann Aufgaben einer GPU und einer CPU übernehmen Grafik Pipeline beschleunigt Bildverarbeitung – Rechenkraft kommt aus den Vektor Einheiten Breites Spektrum an parallelem Rechnen – General Purpose Programmierung parallel durch viele Cores und viele Threads Sascha Roloff Ferienakademie 2009 37 Inhalt Einführung Multicore-Techniken Der Cell Prozessor NVidia Tesla Intel Larrabee Zusammenfassung Sascha Roloff Ferienakademie 2009 38 Zusammenfassung Multicore-Architekturen es gibt viele weitere Multicore-Prozessoren – Sun UltraSPARC T2 (Niagara 2) – AMD Istanbul – Intel Dungington – Intel Terascale es gibt große Architektur-Unterschiede Effiziente Programmierkonzepte sind der Schlüssel, um die Leistungsfähigkeit dieser Architekturen auszunutzen! Sascha Roloff Ferienakademie 2009 39 Ende Multicore-Architekturen Danke für eure Aufmerksamkeit! Gibt’s Fragen? Sascha Roloff Ferienakademie 2009 40 Quellenangaben Cell, Tesla, Larrabee 1. IBM Research Report: The Cell Broadband Engine: Exploiting Multiple Levels of Parallelism in a Chip Multiprocessor 2. http://domino.research.ibm.com/comm/research.nsf/pages/r.arch .innovation.html 3. http://www.ibm.com/developerworks/power/library/pa-cellperf/ 4. Parallel Processing with CUDA: Nvidia‘s High-Performance Computing Platform Uses Massive Multithreading 5. NVIDIA CUDA Compute Unified Device Architecture: Programming Guide 6. Johan Seland: CUDA Programmierung 7. Tom Forsyth: SIMD Programming with Larrabee Sascha Roloff Ferienakademie 2009 41 Quellenangaben Cell, Tesla, Larrabee 8. http://www.ddj.com/hpc-high-performance-computing/216402188 9. http://www.giev.de/no_cache/service/informatiklexikon/informatiklexikondetailansicht/meldung/multicore-architekturen-145.html 10. Philipp Wender: Seminar Multicore-Programmierung 11. Larrabee: A Many-Core x86 Architecture for Visual Computing Sascha Roloff Ferienakademie 2009 42