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

Documents pareils