• Keine Ergebnisse gefunden

Shared‐Memory‐Multiprocessor (SMP)

N/A
N/A
Protected

Academic year: 2022

Aktie "Shared‐Memory‐Multiprocessor (SMP)"

Copied!
14
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Anmerkung zu GPUs

Grundlagen der Rechnerarchitektur ‐Prozessor 123

Ursprünglicher Grund für SIMD Erweiterung von Architekturen: CPU auch  verantwortlich für Grafik

Nachteil: hoher Anteil an CPU Zeit für Grafik‐Verarbeitung

Führte zur Entwicklung von Prozessoren, die auf Grafikverarbeitung spezialisiert  sind: GPUs (Graphics Processing Unit)

• GPU heutzutage wenige hundert bis mehrere tausend Euro

• Hunderte von parallelen Fließkommaeinheiten (FPUs) 

• Mit GPUs kann man “extrem” parallel programmieren

‐ somit nicht nur für Grafik interessant; z.B. wissenschaftliches Rechnen,  künstliche Neuronale Netze (hier aber auch Trend zu KI‐spezialisierten  Prozessoren; vgl. z.B. Tensor‐Processing‐Units (TPU))

‐ siehe auch parallele Computing‐Plattform und Programmiermodell CUDA  (Compute Unified Device Architecture): 

‐ General‐Computing auf GPUs

‐ Mit CUDA können Entwickler Computeranwendungen erheblich  beschleunigen, indem sie die Leistung von GPUs nutzen

(2)

CPU versus GPU

Wann sollte man CPU oder GPU verwenden? (Anwendungsfall Grafik ist klar)

GPU ist nach wie vor ein Beschleuniger zur Unterstützung der CPU;

Schwerpunkt ist Grafik!

GPU‐Probleme typischerweise hunderte Megabytes bis zu Gigabytes;

CPU hingegen hunderte von Gigabytes bis zu Terabytes Konsequenz: unterschiedliche Architekturstile

GPU hat im Gegensatz zu CPU kein Multilevel‐Caching zur Überwindung von Latenzen bzgl. Speicher

stattdessen Hardware‐Multithreading (während auf Speicher gewartet wird; laufen  hunderte/tausende hiervon unabhängige Threads weiter)

GPU‐Speicher: Konsequenz im Gegensatz zu CPU; Schwerpunkt Bandbreite anstatt  Latenz (spezielle DRAM Chips für Grafikkarte: breiter und mit höherer Bandbreite) Bei Verwendung für Rechenaufgaben: mehrere GB an Speicher (bis zu 24 GB); CPU  hingegen bis hunderte GB (256 GB); Datentransfer zwischen CPU‐Memory und GPU‐

Memory (GPU ist ein Co‐Prozessor)

GPU unterstützt MIMD; viele Threads; daher ist jeder GPU‐Prozessor stärker multithreaded als eine typische CPU und verfügt über mehr Prozessoren

(3)

CPU versus GPU

Grundlagen der Rechnerarchitektur ‐Prozessor 125

Multicore CPU mit SIMD Instruktionserweiterung und GPU haben Gemeinsamkeiten

beide sind MIMD; Prozessor verwendet mehrere SIMD‐Lanes (GPUs haben aber mehr  Prozessoren und Lanes)

beide nutzen Hardware‐Multithreading (GPUs unterstützen wesentlich mehr Threads)

Beide nutzen Caches (GPUs jedoch kleine Streaming‐Caches; CPUs hingegen große  Caches, die den ganzen Datensatz beinhalten)

beide nutzen 64‐Bit Adressraum (GPU jedoch wesentlich weniger Speicher als CPU  zumindest prinzipiell bedienen kann)

(4)

Shared‐Memory‐Multiprocessor (SMP)

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

• SMP = Ein physikalischer Adressraum für alle Prozessoren

• Kommunikation mit anderen Prozessoren kann einfach über Loads und Stores  stattfinden (Shared‐Variable).

• Erinnerung: Synchronisation und Locks (Synchronisationsmechanismus, der  den exklusiven Zugriff eines Prozesses erlaubt (ll und sc; Spin‐Locking)

• (Uniform‐Memory‐Access  (UMA) und Nonuniform‐Memory‐Access (NUMA))

(5)

Message‐Passing‐Multiprocessor

SS 2012 Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012Grundlagen der Rechnerarchitektur ‐Parallelität 127

Message‐Passing = Kommunikation zwischen Prozessoren durch expliziten  Nachrichtenaustausch

Cluster‐Computer ist wichtiger Vertreter dieser Klasse heutzutage: Einheit  bestehend aus vielen Standard‐Computern plus geswitchtem LAN

(6)

Netztopologien für Multiprozessoren

Multicore‐Chip erfordert Vernetzung von Cores; wie sollen Cores auf einem Chip  angebunden sein? (diskutieren wir im Wesentlichen hier)

Cluster‐Computer erfordert LAN zur Vernetzung von Servern; welche Struktur  sollte das geswitchte Netz haben? (GdRN)

• Netzkosten: Anzahl Switches, Anzahl Verbindungen pro Switch, Breite der  Verbindungen, Länge der Verbindungen

• Netzperformance: Latenz, Durchsatz, Fehlertoleranz, Energieeffizienz Zwei populäre Performance‐Maße

• Netzwerkbandbreite = Bandbreite pro Link mal Anzahl Links

• Bisection‐Bandbreite = Aufteilung in zwei Hälften; Bandbreite der Links  zwischen beiden Hälften; betrachtet wird Worst‐Case‐Situation

Prozessor‐Core Switch

(7)

Beispieltopologien

SS 2012 Grundlagen der Rechnerarchitektur ‐Parallelität 129

Bus‐Topologie

Ring‐Topologie

Gesamte Netz‐Bandbreite (Best‐Case), wenn ein Link die Bandbreite B hat?

Bus: Ring:

Bisection‐Bandbreite (Worst‐Case), wenn ein Link die Bandbreite B hat?

Bus: Ring:

(P Knoten)

(P Knoten) nur eine Nachricht pro Nachrichtenzeit

auf jedem Teilabschnitt eine Nachricht pro Nachrichtenzeit

(8)

Beispieltopologien

Voll‐Vermaschtes Netz

Gesamte Netz‐Bandbreite (Best‐Case), wenn ein Link die Bandbreite B hat?

Bisection‐Bandbreite (Worst‐Case), wenn ein Link die Bandbreite B hat?

(P Knoten)

erlaubt höchste Bandbreite, erzeugt aber auch größte Kosten (Platz, Energie)

(9)

Topologien zwischen Ring und Voll‐Vermascht

SS 2012 Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012Grundlagen der Rechnerarchitektur ‐Parallelität 131

Hier: Prozessor an jedem Knotenpunkt

Alternativ: Prozessor nur an manchen Knotenpunkten, sonst nur Switch (sog. 

Multistage‐Netze, in denen eine Nachricht möglicherweise mehrere Switches  durchlaufen muss) (siehe nächste Folie)

(10)

Topologien zwischen Ring und Voll‐Vermascht

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

Anzahl Switches:

Crossbar: n2

Omega Netze: 2n log2(n)

Schaltkombinationen:

Crossbar: alle sind möglich

Omega Netze: Verbindungen  stehen in Konkurrenz

(z.B. P0‐P6 versus P1‐P2)

(11)

Zusammenfassung und Literatur

Grundlagen der Rechnerarchitektur ‐Prozessor 133

(12)

Zusammenfassung

• Schlechte Performance von Single‐Cylce‐Ansatz

• Instruktionsabarbeitung besteht aus mehreren Zyklen

• Moderne Prozessoren nutzen dies für Pipelining

Multiple‐Issue

• Allgemein als Instruction‐Level‐Parallelism bezeichnet

• Für High‐Level‐Programmierer ist die Parallelität nicht sichtbar Sichtbar auf Assembler‐Ebene

Sichtbar auf Compiler‐Ebene

• Hauptprobleme die die Parallelität einschränken Daten‐Abhängigkeiten

Control‐Abhängigkeiten

• Methoden um Data‐ und Control‐Hazards zu reduzieren Scheduling

Spekulation

• Sichtbare Grenze der Power‐Wall ist erreicht

• Trend zu Multi‐Cores mit einfacheren Pipelines

• Konsequenz: Parallelität nicht mehr von der Hardware gekapselt

• Herstellung performanter Software erfordert häufig paralleles Programmieren

(13)

Quiz

Bildquelle: www.geemag.de/wp‐content/artikel_endgegner_bild.jpg

Welchen Einfluss hat Pipelining auf den CPI‐Wert?

[  ] Der CPI‐Wert bleibt immer unverändert.     [  ] Der CPI‐Wert kann unter 1 fallen. 

[  ] Der CPI‐Wert steigt in der Regel an.

Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 135

Mittels Pipelining kann man die Taktrate eines Rechners erhöhen.

[  ] Stimmt!       [  ] Nein, das ist völliger Quatsch.

Eine Pipeline mit k Stufen erreicht asymptotisch immer eine Performance‐Ratio von k.

[  ] Jawohl.      [  ] Nein, die Ratio kann darunter liegen.

[  ] Nein, die Ratio kann sogar noch höher liegen.

Welchen Einfluss hat Superskalarität auf den CPI‐Wert?

[  ] Der CPI‐Wert bleibt immer unverändert,      [  ] Der CPI‐Wert steigt an.

[  ] Der CPI‐Wert kann unter 1 fallen.

Pipelining erhöht den Durchsatz aber reduziert nicht die Instruktions‐Latenz.

[  ] Nein, Durchsatz und Latenz sinken       [  ] Ja, das ist richtig [  ] Nein, Durchsatz steigt und Latenz sinkt

Super! Geschafft. Auf 

zum nächsten Level.

(14)

Literatur

[PattersonHennessy2012] David A. Patterson und John L. Hennessy, 

„Computer Organization and Design“, Fourth Edition, 2012

4.1 Introduction

4.2 Logic Design Conventions 4.3 Building a Datapath

4.4 A Simple Implementation Scheme 4.5 An Overview of Pipelining

4.6 Pipelined Datapath and Control

4.7 Data Hazards: Forwarding versus Stalling 4.8 Control Hazards

4.10 Parallelism and Advanced Instruction‐Level Parallelism 4.11 Real Stuff: the AMD Opteron X4 (Barcelona) Pipeline 7.1 Introduction

7.3 Shared Memory Multiprocessors

7.4 Clusters and Other Message‐Passing Multiprocessors 7.5 Hardware Multithreading

7.6 SISD, MIMD, SIMD, SPMD, and Vector

7.8 Introduction to Multiprocessor Network Topologies

Referenzen

ÄHNLICHE DOKUMENTE

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012.?.

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth

Grundlagen der Rechnerarchitektur ‐ Einführung 25 Bildquellen: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and

SS 2012 Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur ‐

Bildquelle: Symbole kopiert aus David A. Patterson und John L. Hennessy, „Computer Organization and

[PattersonHennessy2012] David A. Patterson und  John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012. 2.4 Signed and Unsigned