Intels Tick-Tock-Prinzip

Größe: px
Ab Seite anzeigen:

Download "Intels Tick-Tock-Prinzip"

Transkript

1 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Intels Tick-Tock-Prinzip Gleiche Mikroarchitektur Prozess-Technologiesprung Neue Mikroarchitektur mit gleicher Prozess-Technologie WS 2010/ Folie 42

2 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Modularer Aufbau: Architektur besteht aus wenigen Grundbausteinen Mikroprozessor Kern mit eigenem L1 und L2 Cache gemeinsamer L3-Cache Integrated Memory Controller (IMC) Quick Path Interconnect (QPI) Bus controller GPU Kern Dadurch hohe Flexibilität bei der Gestaltung von CPU- Modellen für verschiedene Anwendungsbereiche. WS 2010/ Folie 43

3 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Beispiel: Nehalem Quad-Core Prozessor WS 2010/ Folie 44

4 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Veränderungen beim Loop Buffer (s. Kap , Folie 39) Instruktionen müssen nicht mehr dekodiert werden Mikrooperationen im Puffer ablegen WS 2010/ Folie 45

5 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Energiemanagement Überwachung von Temperatur, Spannung und Stromstärke der einzelnen Cores individuelle Anpassung von Taktrate und Spannung nach Bedarf einzelne Cores können in Energiesparmodus versetzt werden ziemlich komplex: ca. 1 Million Transistoren WS 2010/ Folie 46

6 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Energiesparzustände der Cores Vorher nur Spannung und Frequenz für alle Kerne global regelbar Ineffizient, da Last auf Kerne zumeist ungleich verteilt WS 2010/ Folie 47

7 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Turbo Boost Technologie kurzzeitige Übertaktung einzelner Cores möglich automatische Steuerung und Kontrolle durch PCU Thermal Design Power (TDP) muss eingehalten werden Anhebung des Takts in 133 MHz Schritte Beispielszenario: Die Arbeitslast ist ungleich verteilt, so dass nur 2 Cores arbeiten. Die beiden anderen Cores sind untätig und gehen in den Energiesparmodus. Die PCU erhöht den Takt der aktiven Cores um 2x 133 MHz. WS 2010/ Folie 48

8 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Hyperthreading Intels Bezeichnung für Simultaneous Multithreading logische Prozessoren mit eigenem Registersatz, Befehlszähler, logische Prozessoren teilen sich Ressourcen wie Rechenwerke Quasi-parallele Bearbeitung von mehreren Threads möglich Da verschiedene Threads meistens keine Datenabhängigkeit aufweisen, können die Rechenwerke besser ausgelastet werden, was zu größerem Gesamtdurchsatz führt. WS 2010/ Folie 49

9 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Hyperthreading Veranschaulichung Die blauen Felder symbolisieren Instruktionen aus Thread 1 Die roten Instruktionen aus Thread 2 Die gelben Felder stehen für den Leerlauf der Ressourcen WS 2010/ Folie 50

10 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Leistungsvergleich mit aktiviertem und deaktiviertem Hyperthreading WS 2010/ Folie 51

11 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Speicher-Controller (Stand ) Bisher: Speicher-Controller in der Northbridge Nun: Integrierter Speichercontroller bei der Nehalem Architektur geringere Latenzen unabhängig von Mainboard Hardware bessere Transferraten als bei Core 2 Vergleich der Speicher-Performanz von Nehalem und Core 2 WS 2010/ Folie 52

12 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Quick-Path Interconnect Bus QPI schnelle direkte Kommunikation zwischen Prozessoren Kommunikation mit Eingabe/Ausgabe Der ehemalige Front Side Bus konnte diese Anforderungen nicht mehr erfüllen Aufbau eines Mehrprozessorsystems WS 2010/ Folie 53

13 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Cache-Organisation Cache-Hierarchie eigener L1 Cache (32KB Instruction/ 32KB Data) in jedem Kern eigener L2 Cache (256KB) in jedem Kern großer gemeinsamer L3 Cache (z.b. 8MB bei Quadcore) Vergleich der Cache-Latenzen mit der Core-2 Architektur WS 2010/ Folie 54

14 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Cache-Organisation Cache-Kohärenz Mechanismen benötigt für die Cache-Kohärenz bei den einzelnen Cores innerhalb eines Prozessors bei den einzelnen Prozessoren in einem Mehrprozessorsystem WS 2010/ Folie 55

15 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Organisation L3 Cache - Inclusive Cache alle Daten, die sich im individuellen L1 und L2 Cache eines Cores befinden, sind immer auch im L3 Cache vorhanden Somit: wenn sich eine Zeile nicht im L3 Cache befindet, kann sie auch nicht im Cache eines anderen Cores liegen zusätzliche Valid Bits signalisieren in welchen Cores eine bestimmte Cachezeile vorhanden sein könnte positiv: Cachezeile wurde von Core X angefragt. Es kann aber durchaus sein, dass die Zeile mittlerweile nicht mehr im Cache von Core X vorhanden ist negativ: Cachezeile wurde nicht von Core X angefragt und befindet sich daher definitiv nicht im Cache von Core X WS 2010/ Folie 56

16 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Herstellung von Cache-Kohärenz MESIF-Protokoll Modified: Die Zeile wurde verändert und stimmt nicht mehr mit dem Hauptspeicher überein (dirty) Exclusive: Die Zeile ist nur in diesem Cache vorhanden und stimmt mit dem Hauptspeicher überein (clean) Shared: Die Zeile ist clean, wie beim Exclusive-Zustand, aber ein anderer Prozessor hält womöglich eine Kopie der Zeile Invalid: Die Zeile ist ungültig und darf daher nicht mehr gelesen werden Forward: Erweiterung von Shared. Besitzen mehrere Prozessoren die Kopie einer Cachezeile, wird die Zeile bei einem Prozessor mit Forward gekennzeichnet, bei allen anderen mit Shared. Der Prozessor mit dem Forward-Flag beantwortet als einziger alle weiteren Anfragen nach dieser Zeile WS 2010/ Folie 57

17 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur MESIF- (links) vs. MESI-Protokoll (rechts) Annahme: Prozessor links unten und rechts oben haben Kopie MESIF: Nur Prozessor, dessen Cachezeile im Zustand Forward ist, antwortet MESI alle Kopien im Zustand Shared und alle antworten auf eine Anfrage, z.b von Prozessor rechts unten Folge: höhere Busbelastung WS 2010/ Folie 58

18 2.3 Beispiele für Multikern-Architekturen Intel-Nehalem-Architektur Nehalem-Modelle im Vergleich WS 2010/ Folie 59

19 2.3 Beispiele für Multikern-Architekturen AMD-Magny-Cours Opteron-Architektur Magny-Cours Hybrid aus zwei 6-Kern-Prozessoren Gedacht für Aufbau von Servern aus 2P/4P (2/4-Prozessoren) aufgebauten Multiprozessorsystemen ergibt maximal 48 Kerne Kombiniert laut AMD Fortschritte in der Si-Technologie Aufbautechnik Verbindungen Cache-Kohärenz-Protokoll (interessant hier für Vorlesung) hält Energieverbrauch (power envelope) früherer Opterons ein WS 2010/ Folie 60

20 2.3 Beispiele für Multikern-Architekturen AMD-Magny-Cours Opteron-Architektur Prozessorknoten integriert folgende Module Sechs x86-64 Kerne Gemeinsamer 6-Mbyte L3 Cache Vier HyperTransport3 Anschlüsse (Ports) 2 DDR3 Memory Kanäle WS 2010/ Folie 61

21 2.3 Beispiele für Multikern-Architekturen AMD-Magny-Cours Opteron-Architektur Prozessor Out-of-order 3-fach superskalar holt und dekodiert bis zu drei x86-64 Instruktionen pro Zyklus x86-64 Instruktionen (CISC) variabler Länge werden in Mikrooperationen (Mikroprogramm aus RISC-Befehlen) fester Länge gewandelt Werden auf zwei unabhängige Ablaufplaner (Scheduler) verteilt für Integer- und für Fließkomma-Operationen bzw. sog. Multimedia-Operationen (SIMD, Vektor-Operationen) Scheduler können bis zu 9 Mikrooperationen folgenden Ressourcen zuteilen drei Integer-Pipelines, jede enthält eine Integer-Ausführungseinheit und eine Adress-Erzeugungseinheit ; drei Fließkomma und Multimedia-Pipelines Jede Lade-/Speichereinheit mit jeweils zwei Lade/Speicheroperationen / Takt ergibt 72 Mikrooperationen die umgeordnet gleichzeitig ausführbar sind WS 2010/ Folie 62

22 2.3 Beispiele für Multikern-Architekturen AMD-Magny-Cours Opteron-Architektur Cache-Architektur separate L1 Instruktions- und Daten-Caches à 64 KBytes 2-fach assoziativ (load-to-use) Latenz von drei Taktzyklen on-chip L2 Cache mit 512 KBytes 16-fach assoziativ Latenz von 12 Zyklen im besten Fall Alle Caches entlang der Hierarchie (einschließlich L3 Cache) weisen 64-Byte große Cachezeilen auf WS 2010/ Folie 63

23 2.3 Beispiele für Multikern-Architekturen AMD-Istanbul / Magny-Cours Opteron-Architekturen L2 Cache ist sog. Victim Cache für Instruktionen und Daten aus dem L1 Cache Nachladen vom DRAM (system fills) und weiter hinter angeordneten Caches (L2 sowieso, aber auch L3 und evtl. L4) gehen direkt in L1 Cache verdrängen vorhandenen L1 Eintrag in L2 Cache Typischerweise erfolgt kein direkter Eintrag im L2 Cache Gemeinsamer L3 Cache übernimmt zwei Aufgaben übliche Cache-Funktion Mit integriert Verzeichnis-Protokoll (probe filter oder Hyper-Transport Assist (HT Assist) bei AMD genannt) für Cache-Kohärenz Verzeichnis-Protokolle (zentral) Snoopy-Protokolle (MESI) lokal WS 2010/ Folie 64

24 2.3 Beispiele für Multikern-Architekturen AMD-Istanbul-Architektur Cache kokärenz in Multiprozessorsystemen besonderes Problem HT-Assist Directory-(Verzeichnis)-Protokoll Analog der Forward-Erweiterung MESIF-Erweiterung bei Intel Probe or snoop filter -> soll Snoop -Anfragen reduzieren Benötigt 1 MB des 6 MB großen L3 Cache Folgendes Beispiel direkt entnommen aus P.Conway et.al.: CACHE HIERARCHY AND MEMORY SUBSYSTEM OF THE AMD OPTERON PROCESSOR, IEEE Computer, March/April CPU 3 needs a cache line which CPU 1 has access to. The most recent data is however in CPU s 2 L2-cache. WS 2010/ Folie 65

25 2.3 Beispiele für Multikern-Architekturen AMD-Magny-Cours Opteron-Architektur HT Assist (1) CPU 3 needs a cache line which CPU 1 has access to. The most recent data is however in CPU s 2 L2-cache. 1. CPU 3 requests information from CPU 1 (blue data request arrow in diagram) 2. CPU 1 broadcasts to see if another CPU has more recent data (three red probe request arrows in diagram) 3. CPU 3 sits idle while these probes are resolved (four red & white probe response arrows in diagram) 4. The requested data is sent from CPU 2 to CPU 3 (two blue and white data response arrows in diagram) Two serious problems with this broadcasting approach. Firstly, it wastes a lot of bandwidth as 10 transactions are needed Secondly, those 10 transactions are adding a lot of latency to the instruction on CPU 3 WS 2010/ Folie 66

26 2.3 Beispiele für Multikern-Architekturen AMD-Magny-Cours Opteron-Architektur HT Assist (2) 1 MB des Caches wird für globales Verzeichnis verwendet Zeichnet auf, wo eine Cachezeile sich noch befindet 1. CPU 3 requests information from CPU 1 (blue line) 2. CPU 1 checks its L3 directory cache to locate the requested data (Fat red line) 3. The read from CPU 1 s L3 directory cache indicates that CPU 2 has the most recent copy and directly probes CPU 2 (Dark red line) 4. The requested data is sent from CPU 2 to CPU 3 (blue and white lines) Instead of 10 transactions, 4 this time. Reduction in latency and wasted bandwidth Probe broadcasting can be eliminated in 8 of 11 typical CPU-to-CPU transactions. Stream measurements show that 4-Way memory bandwidth improves 60%: 41.5GB/s with HT Assist versus 25.5GB/s without HT Assist. WS 2010/ Folie 67

27 2.3 Beispiele für Multikern-Architekturen Heterogene-Multikern-Architekturen Cell BE Viele Rechenaufgaben können auf verschiedene CPUs und/oder Maschinen aufgeteilt und verteilt werden, um die Leistung zu steigern Herkömmliche CPUs und Techniken sind nicht ausreichend: CPUs in einer SMP (symmetrischer Multiprozessor) Umgebung u.u. sehr teuer Zu große Platzverschwendung durch große Caches => kleiner Core, weniger GFLOPs/GOPs Zu viel Zeit wird beim Warten auf Daten aus dem Speicher verschwendet Cell verfolgt heterogenen Ansatz Verschiedene Prozessorarchitekturen auf einem Chip für Spezialaufgaben WS 2010/ Folie 68

28 2.3 Beispiele für Multikern-Architekturen Heterogene-Multikern-Architekturen Cell BE Cell ist ein Prozessor Design ein Programmierparadigma Lt. eigener Angabe: revolutionäres neues Prozessor-Design: 1 Prozessoreinheit und bis zu 8 unabhängige SIMD- (Single Instruction Multiple Data)- bzw. Vektor-Prozessoren Nominell 150 GFLOPS möglich Keine On-Chip Caches auf den 8 SIMD-Prozessoren Verteilung von kleinen unabhängigen Tasks auf verschiedene SIMD-Prozessoren Ermöglicht massives paralleles Rechnen Im Prinzip: gesamter Vektorrechner auf einem Chip WS 2010/ Folie 69

29 2.3 Beispiele für Multikern-Architekturen Heterogene-Multikern-Architekturen Cell BE Geschichte Entwicklung Cell Joint Venture von Sony, Toshiba und IBM (STI) Patent ausgestellt an Masakazu Suzuoki u. Takeshi Yamazaki (Sony) am an STI am Wird CPU für PlayStation3 IBM plante Produktion im ersten Halbjahr 2005 Erster Server und Workstations Ende 2005 von IBM Einsatz in HDTV Systeme von Sony und Toshiba seit 2006 Implementiert in 90 Nanometer Technologie seit 2007 in 65 nm Prototyp mit 234 Millionen Transistoren auf 221 mm² Vorgestellt 2005 auf der ISSCC (Int. Solid State Circuits Conference) WS 2010/ Folie 70

30 2.4.1 Heterogene-Multikern-Architekturen Cell BE Chip und Layout WS 2010/ Folie 71

31 2.4.1 Heterogene-Multikern-Architekturen Cell BE Aufbau Cell BE Architektur (grob) Power Processor Element (PPE) POWER Architecture Based L1 Cache L2 Cache DRAM SPE 1 SPE 2 SPE 3 SPE 4 EIB SPE 5 SPE 6 SPE 7 SPE 8 MIC BIC WS 2010/ Folie 72

32 2.4.1 Heterogene-Multikern-Architekturen Cell BE Aufbau Cell BE Architektur (detaillierter) WS 2010/ Folie 73

33 2.4.1 Heterogene-Multikern-Architekturen Cell BE Aufbau Cell BE Architektur 1 Power PC Processor Element (PPE) Kann 2 Threads gleichzeitig bearbeiten Beinhaltet 32 KB L1 Cache Enthält spezielle Vektoreinheit VMX/AltiVec 8 Vektorprozessoren: Synergistic Processor Elements (SPEs) Element Interface Bus (EIB) Besteht aus 4 x 16 Byte großen Datenringen Kann 96 Bytes/Zyklus übertragen WS 2010/ Folie 74

34 2.4.1 Heterogene-Multikern-Architekturen Cell BE Dual Channel Memory Interface Controller (MIC) 12.8 GByte/s pro Kanal Gesamte Bandbreite 25.6 GBytes/s Ursprünglich nur anschließbar an Rambus Standard Seit PowerX8Cell auch DDR2-RAM möglich Dual Channel Bus Interface Controller (BIC) Insgesamt Bandbreite 76.8 GBytes/s 512 KB L2 Cache WS 2010/ Folie 75

35 2.4.1 Heterogene-Multikern-Architekturen Cell BE PPE Power Processor Element WS 2010/ Folie 76

36 2.4.1 Heterogene-Multikern-Architekturen Cell BE SPE - Vektor (oder SIMD) Prozessor WS 2010/ Folie 77

37 2.4.1 Heterogene-Multikern-Architekturen Cell BE Unabhängige Verarbeitung SPEs sind keine Koprozessoren sondern unabhängige Einheiten SPEs führen eigenständige Programme aus Programme werden vom PPE in lokale Speicher der SPEs geladen Jede SPE Ausführungseinheit SPU bzw. SXU (SPE Execution Unit) operiert auf 128 Bitvektoren die aus vier 32 Bitelementen aufgebaut sein können Direkter Speicherzugriff über DMA Zentrale Kommunikationseinheit kann gleichzeitig zur SPU-Einheit laufen WS 2010/ Folie 78

38 2.4.1 Heterogene-Multikern-Architekturen Cell BE SPE - Vektor (oder SIMD) Prozessor 256 KB lokaler SRAM 128 x 128 Bit Register 1 DMA Kontroller 1 Leitwerk 4 Fließkomma-Einheiten Gesamtleistung: 32 GFLOPS 4 Ganzzahlrechenwerke Gesamtleistung 32 GOPS WS 2010/ Folie 79

39 2.4.1 Heterogene-Multikern-Architekturen Cell BE Programmierbeispiel: Hello - Cell Hauptprogramm auf PPE #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <libspe2.h> #include <pthread.h> extern spe_program_handle_t simple_spu; #define MAX_SPU_THREADS 16 void *ppu_pthread_function(void *arg){ spe_context_ptr_t ctx; unsigned int entry = SPE_DEFAULT_ENTRY; ctx = *((spe_context_ptr_t *)arg); spe_context_run(ctx, &entry, 0, NULL, NULL, NULL) ; pthread_exit(null); } WS 2010/ Folie 80

40 2.4.1 Heterogene-Multikern-Architekturen Cell BE int main() { int i,spu_threads; spe_context_ptr_t ctxs[max_spu_threads]; pthread_t threads[max_spu_threads]; /* Determine the number of SPE threads to create */ spu_threads = spe_cpu_info_get(spe_count_usable_spes, -1); if (spu_threads > MAX_SPU_THREADS) spu_threads = MAX_SPU_THREADS; /* Create several SPE-threads to execute simple_spu */ for(i=0; i<spu_threads; i++) { } /* Create context */ ctxs[i] = spe_context_create (0, NULL); /* Load program into context */ spe_program_load (ctxs[i],&simple_spu); /* Create thread for each SPE context */ pthread_create (&threads[i],null,&ppu_pthread_function,&ctxs[i]) ; /* Wait for SPU-thread to complete execution. */ for (i=0; i<spu_threads; i++) pthread_join (threads[i], NULL) ; } return (0); WS 2010/ Folie 81

41 2.4.1 Heterogene-Multikern-Architekturen Cell BE Programm auf SPE simple_spu.c #include <stdio.h> int main(unsigned long long id) { /* The first parameter of an spu program will always be the spe_id of the spe thread that issued it. */ printf("hello Cell (0x%llx)\n", id); return 0; } WS 2010/ Folie 82

42 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Eine kurze Geschichte der Grafikkarten ursprünglich: Graphics Card steuert Monitor an Mitte 80er: Grafikkarten mit 2D-Beschleunigung angelehnt an Arcade- und Home-Computer frühe 90er: erste 3D-Beschleunigung: Matrox Mystique, 3dfx Voodoo Rastern von Polygonen WS 2010/ Folie 83

43 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Eine kurze Geschichte der Graphikkarten ursprünglich keine einheitliche Programmierschnittstelle herstellerspezifische Lösungen (3dfx Glide bzw. Matrox Simple Interface) Anfang der 90er: OpenGL etabliert in professionellem Umfeld Microsofts Direct3D zunächst unterlegen gewinnt Marktanteile dank häufiger Verbesserungen Ende der 90er: Grafikkarten übernehmen Koordinaten-Transformation und Beleuchtung (z.b. NVIDIA GeForce 256) Begriff Graphics Processing Unit wird erfunden WS 2010/ Folie 84

44 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System 2000er: zunächst nur Fixed-Function-Pipeline (FFP) Shader-Programme bieten mehr Flexibilität als FFP Pixel-Shader modellieren Oberflächen Vertex-Shader modifizieren Gitterpunkte Shader-Programme ursprünglich nur einfache Listen 2002: ATI Radeon 9700 kann Loops in Shadern ausführen Heute: Shader turing-vollständig Hersteller: ATI und NVIDIA Massenmarkt niedrige Preise WS 2010/ Folie 85

45 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Zusammenfassung historische Entwicklung VGA Controller Memory Controller Display Generator GPU (Graphics Processing Unit) bearbeitet traditionelle Graphik-Pipeline in einem Chip zunächst weitgehend festverdrahtet GPGPU (General Purpose Graphics Processing Unit) programmierbare Prozessoren ersetzen feste Funktionsblöcke Berechnungen mit immer höherer Genauigkeit Index-Arithmetik Integer Single-Precision Double-Precision erweitert um allgemeine Prozessor-Instruktionen und eigenem Speicher parallele Programmierumgebungen CUDA WS 2010/ Folie 86

46 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Entstanden Heterogenes Multiprozessor-System Massiv-parallele Vielkern-GPU (noch) Multikern-CPU Aktuelle Konfigurationen (s. rechts) Mittlerweile auch bei Intel Teile der NorthBridge in der CPU (s. Nehalem) GPU und CPU können, mit geringerer Bandbreite als ihre eigenen Speicher, jeweils die Speicher des anderen ansprechen Unified memory architecture Low-cost Variante kein eigener GPU-Speicher WS 2010/ Folie 87

47 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Logische Graphik Pipeline Shader Programm, das Schattierungen vornimmt Auf Knotenpunkte (Vertex), auf Geometrische Primitive (Vertexes, die Geraden, Dreiecke, ) zusammengefasst sind) und einzelnen Bildpunkten Blaue Einheiten programmierbar, weiße fest verdrahtet Texturen beschreiben Oberflächeneigenschaften von Punkten von interpolierte Fließkomma-Koordinaten häufig in 1D, 2D- oder 3D-Feldern abgelegt WS 2010/ Folie 88

48 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Beispiel Microsofts Direct3D 10 Pipeline Logische Pipeline abgebildet auf physikalischen Prozessor Blaue Einheiten nun durch Programm (Threads) realisierbar WS 2010/ Folie 89

49 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Allgemeiner Aufbau GPGPU WS 2010/ Folie 90

50 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Aufbau realer GPGPU- NVIDIA GeForce Streaming-Prozessoren (SP) organisiert in 14 Streaming- Multiprozessoren (SM) WS 2010/ Folie 91

51 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Eigenschaften von GPGPUs viele, aber einfache Cores keine Sprungvorhersage etc. gruppiert in Multi-Prozessoren (Vektorprozessoren) Probleme bei nicht einheitlichen Sprüngen viele Register großer globaler Speicher Bandbreite: >100 GB/s Latenz: ~400 Taktzyklen kleine, schnelle on-chip Shared-Memory-Blöcke WS 2010/ Folie 92

52 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Paralleles Programmiermodell Datenparallelität Problemraum zerlegen in kleinere Problemräume (geometrische Dekomposition) Diese parallel lösen Threadparallelität Jeder Ergebnisblock wird mit einem Feld fein-granularer Threads gelöst Jeder Thread löst ein oder einige wenige Ergebniselemente Zwei-Ebenen Parallelität Grob-granulare Thread-Blöcke mit SM Fein-granulare Threads mit SP WS 2010/ Folie 93

53 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Beispiel für Rendering-Prozess Void reflection( float2 texcoord : TEXCOORD0, float3 reflectdir : TEXCOORD1, out float4 color : COLOR, uniform float shiny, uniform sampler2d surfacemap, uniform samplercube envmap) { // Fetch the surface color from a texture float4 surfacecolor = tex2d(surfacemap, texcoord); } // Fetch reflected color by sampling a cube map float4 reflectedcolor = tex2d(envmap, reflectdir); // Output is weighted average of the two colors color = lerp(surfacecolor, reflectedcolor, shiny); GPU-rendered image. To give the skin visual depth and translucency, the pixel shader program models three separate skin layers, each with unique subsurface scattering behavior. It executes 1400 instructions to render the red, green, blue, and alpha color components of each skin pixel fragment. Copyright 2009 Elsevier, Inc. All rights reserved. WS 2010/ Folie 94

54 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Umsetzung mit CUDA (Compute Unified Device Architecture) CUDA liefert drei Schlüsselabstraktionen Hierarchie von Gruppen an Threads Gemeinsamer Speicher Barrieren-Synchronisation Art Virtualisierung Programmierer zerlegt Problem zunächst in gröbere Subprobleme werden parallel gelöst Anschließend in feinere Stücke (Gitterpunkte) werden wieder parallel gelöst Skaliert transparent für Programmierer beliebige Zahl von Prozessoren verfügbar CUDA-Laufzeitsystem hat Aufgabe das Programm auf Hardware abzubilden und zu planen WS 2010/ Folie 95

55 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Folgende Mechanismen, Hierarchien zu bilden Kernel Ein Programm oder eine Funktion für einen Thread Kann von vielen Threads ausgeführt werden Thread Block Eine Menge von nebenläufig ausgeführten Threads, die das gleiche Thread-Programm ausführen und zusammenarbeiten, um ein Problem zu lösen Grid Eine Menge von Threadblöcken, die den gleichen Kernel ausführen WS 2010/ Folie 96

56 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Beispiel für Umsetzung mit CUDA Realisiert in BLAS (Basic Linear Algebra Subprograms)-Bibliothek WS 2010/ Folie 97

57 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Speicherhierarchie Lokaler Speicher Privater Speicher pro Thread Gemeinsamer Speicher Speicher pro Thread-Block Alle Threads eines Blocks greifen auf gemeinsamer Speicher zu Globaler Speicher Speicher pro Applikation Gemeinsamer Speicher für alle Threads über alle Blöcke WS 2010/ Folie 98

58 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Graphische Darstellung Verschachtelte Thread-Körnigkeit und Speicherzugehörigkeit WS 2010/ Folie 99

59 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Modell ähnlich dem SPMD (Single Program Multiple Data) Jeder Kernel-Aufruf kann dynamisch neue Gittergrößen erzeugen S. Beispiel rechts WS 2010/ Folie 100

60 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Wo werden Thread-Blöcke ausgeführt? Auf SM gemäß SIMT (Single Instruction Multiple Thread) verallgemeinerte Architektur gezeigt WS 2010/ Folie 101

61 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Ablaufplanung? SIMT multithreaded warp scheduling Single Imstruction Multiple Thread Eine Instruktion wird auf mehrere parallel ausgeführt und unabhängige Threads verteilt Warp Mehrere Threads werden zu einem sog. Warp zusammengefasst Z.B. 32 Threads in Warp ausgeführt auf dem 8 SPs der GPU In jedem SP werden exakt 4 Threads ausgeführt Alle SPs arbeiten parallel zueinander, die 4 Threads werden in 4 Takten nacheinander ausgeführt WS 2010/ Folie 102

62 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Ablaufplaner wählt einen Warp zur Ausführung aus Verbreitet an alle aktiven(?) Threads synchron die gleiche Instruktion Nicht jeder Thread braucht seinen eigenen Programmkodespeicher Aktive und inaktive Threads Threads können aufgrund von Verzweigungen (if-then-else) verschiedene Zweige nehmen SIMT-Architektur vereint Thread- und Daten- Parallelismus Mehrere Threads laufen parallel Einzelne Threads haben eigen Datenbereiche SP Register werden unter Threads gleichmäßig aufgeteilt WS 2010/ Folie 103

63 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Zusammenfassung Programmiermodell sehr viele Threads kurzlebige Threads da geringer Overhead viele Threads um Latenz vom Speicher zu verdecken Threads werden in Blöcken gruppiert Blöcke werden auf Multi-Prozessoren verteilt Standards: CUDA (NVIDIA, Marktführer) OpenCL (offener Standard, entsprechend zu OpenGL) FireStream (AMD) DirectCompute (Microsoft) WS 2010/ Folie 104

64 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Konkretes Beispiel: CUDA Programmierung in C Function-Offloading: einzelne Funktionen laufen auf GPGPU (Kernels) spezieller Compiler (nvcc) separiert Code drei Funktionstypen: host laufen auf CPU device laufen auf GPGPU global laufen auf GPGPU (können aber nur von CPU aufgerufen werden) drei Speichertypen: normaler Speicher im CPU-RAM device im RAM der GPGPU shared im Shared-Memory auf den Multi-Prozessoren WS 2010/ Folie 105

65 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Cuda Memory Management CUDA-API-Aufrufe: Allokation/Deallokation von GPGPU-RAM Transfer CPU-RAM <-> GPGPU-RAM Kernels: Transfer GPGPU-RAM <-> Shared-Memory Spezielle Speicherbereiche: Konstanten Texturen (verschiedene Adressierungen) WS 2010/ Folie 106

66 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System CUDA: Hello World WS 2010/ Folie 107

67 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System CUDA: Hello World: WS 2010/ Folie 108

68 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System CUDA: Vektor-Addition res = a + x b WS 2010/ Folie 109

69 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System CUDA: Vektor-Addition WS 2010/ Folie 110

70 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Hardware-Details: NVIDIA vs. ATI WS 2010/ Folie 111

71 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Hardware-Details: AMD Radeon HD 5970 SIMD-Engine (links) beinhaltet 16 VLIW-Units (rechts) WS 2010/ Folie 112

72 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Hardware-Details: AMD Radeon HD 5970 Multiprozessor AMD Nomenklatur: SIMD-Engine beinhaltet 16 Thread-Prozessoren 5-fach VLIW-Design 4 normale Pipelines Single-Precision-Float- und Integer-Rechenwerk Eine erweiterte Pipeline Double-Precision und spezielle Funktionen. Register WS 2010/ Folie 113

73 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Hardware-Details: AMD Radeon HD 6970 Multiprozessor AMD Nomenklatur: SIMD-Engine beinhaltet 16 Thread-Prozessoren 4-fach VLIW-Design 4 normale Pipelines Double-Precision-Leistung ¼ der Single-Precision-Leistung Register WS 2010/ Folie 114

74 2.4.2 Heterogene-Multikern-Architekturen GPGPUs Hardware-Details: AMD Radeon HD fach VLIW-Design (Gegensatz zum alten 5-fach Design) WS 2010/ Folie 115

75 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Hardware-Details: NVIDIA GT100 (a.k.a. Fermi) Vektorprozessor, beinhaltet: 32 Shader: Integer-Rechenwerk und Single-Precision-Float oder Double Precision mit halber Geschwindigkeit 16 Load-/Store-Units 4 Special Function Units (SFU) Sinus etc. 64 KB Shared Memory/Cache 32k Register WS 2010/ Folie 116

76 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System NVIDIA Fermi WS 2010/ Folie 117

77 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Speicherhierarchie: Register (am schnellsten) Shared Memory/L1 Cache entweder 16 kb Cache und 48 kb SM Oder 48 kb Cache und 16 kb SM L2 Cache 768 kb ca. 260 GB/s Bandbreite DRAM 1-6 GB ca. 130 GB/s Bandbreite Latenz ca. 400 Takte WS 2010/ Folie 118

78 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Thread-Scheduling Problem-Zerlegung: viele Blöcke alle Multiprozessoren beschäftigt viele Threads je Block Speicherlatenz verdecken aber: je weniger Threads je Block, desto mehr Shared Memory je Thread verfügbar Daumenregel: doppelt so viele Blöcke wie Multiprozessoren 256 Threads je Block Praxis: viel Experimentieren notwendig um optimale Aufteilung zu finden WS 2010/ Folie 119

79 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Speicherzugriff Thread mit Nummer x im Warp Aligned: Thread x greift auf Adresse 128 k + 4 x zu Coalescing: Alle Zugriffe eines Warps können in eine Transaktion von 128 Byte zusammengefasst werden Coalescing bringt beste Performance, benötigt meist Alignment alte GPUs (Compute Capability 1.0 bzw. 1.1) ineffizienter als neue (Compute Capability 1.2) Bei Schreiben auf selbe Adresse: Warp Serialize (serielle Ausführung) WS 2010/ Folie 120

80 2.4.2 GPGPU & CPU Heterogenes Multiprozessor-System Zusammenfassung GPGPUs haben viele, aber einfach gestaltete Cores Programmierung mittels Function-Offloading sehr viele Threads wegen Parallelität und Latenz vom GPGPU-RAM Threads sind in Blöcken zusammengefasst Blöcke sind im Grid zusammengefasst on-chip Shared Memory dient als schneller Zwischenspeicher Transfer CPU-RAM zu GPGPU-RAM via API-Funktionen WS 2010/ Folie 121

Viele Rechenaufgaben können auf verschiedene CPUs und/oder Maschinen aufgeteilt und verteilt werden, um die Leistung zu steigern

Viele Rechenaufgaben können auf verschiedene CPUs und/oder Maschinen aufgeteilt und verteilt werden, um die Leistung zu steigern 3.2 Heterogene Multi-Core-Architekturen: Cell BE Viele Rechenaufgaben können auf verschiedene CPUs und/oder Maschinen aufgeteilt und verteilt werden, um die Leistung zu steigern Herkömmliche CPUs und Techniken

Mehr

Einführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg

Einführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg GPU-Versuch andreas.schaefer@cs.fau.de Friedrich-Alexander-Universität Erlangen-Nürnberg Praktikum Parallele Rechnerarchitekturen SS2014 Outline 1 Einführung 2 Outlook 1 Einführung 2 Eine kurze Geschichte

Mehr

Eine kurze Geschichte der Grafikkarten

Eine kurze Geschichte der Grafikkarten 3.1 Einführung Eine kurze Geschichte der Grafikkarten ursprünglich: Graphics Card steuert Monitor an Mitte 80er: Grafikkarten mit 2D-Beschleunigung angelehnt an Arcade- und Home-Computer frühe 90er: erste

Mehr

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm. Einführung CUDA. Ralf Seidler. Friedrich-Alexander-Universität Erlangen-Nürnberg

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm. Einführung CUDA. Ralf Seidler. Friedrich-Alexander-Universität Erlangen-Nürnberg Einführung CUDA Friedrich-Alexander-Universität Erlangen-Nürnberg PrakParRA, 18.11.2010 Outline 1 GPGPU-Architekturen 2 CUDA Programmiermodell 3 Beispielprogramm Outlook 1 GPGPU-Architekturen 2 CUDA Programmiermodell

Mehr

2. Architektur von Hochleistungsprozessoren 2.1 Einführung Multi-Core-Architekturen. Motivation Multikern-Prozessoren

2. Architektur von Hochleistungsprozessoren 2.1 Einführung Multi-Core-Architekturen. Motivation Multikern-Prozessoren 2.1 Einführung Multi-Core-Architekturen Motivation Multikern-Prozessoren Prinzipieller Aufbau der Architektur eines Multikern- Prozessors Programmierung Standard-Mulitkern-Prozessoren mit OpenMP 1 2.1

Mehr

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm Organiosatorisches. Tutorial CUDA. Ralf Seidler

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm Organiosatorisches. Tutorial CUDA. Ralf Seidler Friedrich-Alexander-Universität Erlangen-Nürnberg 05.10.2010 Outline 1 GPGPU-Architekturen 2 CUDA Programmiermodell 3 Beispielprogramm 4 Organiosatorisches Outlook 1 GPGPU-Architekturen 2 CUDA Programmiermodell

Mehr

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg CUDA Seminar Multi-Core Architectures and Programming 1 Übersicht Einleitung Architektur Programmierung 2 Einleitung Computations on GPU 2003 Probleme Hohe Kenntnisse der Grafikprogrammierung nötig Unterschiedliche

Mehr

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck RST-Labor WS06/07 GPGPU General Purpose Computation On Graphics Processing Units (Grafikkarten-Programmierung) Von: Marc Blunck Ablauf Einführung GPGPU Die GPU GPU Architektur Die Programmierung Programme

Mehr

Grafikkarten-Architektur

Grafikkarten-Architektur > Grafikkarten-Architektur Parallele Strukturen in der GPU Name: Sebastian Albers E-Mail: s.albers@wwu.de 2 > Inhalt > CPU und GPU im Vergleich > Rendering-Pipeline > Shader > GPGPU > Nvidia Tesla-Architektur

Mehr

MESIF- (links) vs. MESI-Protokoll (rechts)

MESIF- (links) vs. MESI-Protokoll (rechts) 2.3 Beispiele für Multikern-Architekturen 2.3.1 Intel-Nehalem-Architektur MESIF- (links) vs. MESI-Protokoll (rechts) Annahme: Prozessor links unten und rechts oben haben Kopie MESIF : Nur Prozessor, dessen

Mehr

Multicore-Architekturen

Multicore-Architekturen Universität Erlangen- Nü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

Mehr

2 Homogene und Heterogene Multi-/Vielkernprozessoren

2 Homogene und Heterogene Multi-/Vielkernprozessoren 2 Homogene und Heterogene Multi-/Vielkernprozessoren 2.1 Motivation Multikern-Architekturen 2.2 Analyse von Multikern-Prozessoren Energieaspekte Bandbreitenmessung Roofline-Modell 2.3 Beispiele Multi-Core-Architekturen

Mehr

Cell and Larrabee Microarchitecture

Cell and Larrabee Microarchitecture Cell and Larrabee Microarchitecture Benjamin Grund Dominik Wolfert Universität Erlangen-Nürnberg 1 Übersicht Einleitung Herkömmliche Prozessorarchitekturen Motivation für Entwicklung neuer Architekturen

Mehr

Intels Tick-Tock-Prinzip

Intels Tick-Tock-Prinzip 2.3 Beispiele für Multikern-Architekturen 2.3.1 Von Intel-Nehalem- bis Haswell-Architektur Intels Tick-Tock-Prinzip Gleiche Mikroarchitektur und Prozess-Technologiesprung (Tick) Neue Mikroarchitektur (Tock)

Mehr

Seminar Multicore-Programmierung

Seminar Multicore-Programmierung Multicore- und GPGPU-Architekturen Fakultät für Informatik und Mathematik Universität Passau 04. November 2010 APUs / 1 / 39 Inhaltsverzeichnis I APUs / APUs / 2 / 39 Inhaltsverzeichnis II APUs / 3 / 39

Mehr

Grundlagen der Spieleprogrammierung

Grundlagen der Spieleprogrammierung Grundlagen der Spieleprogrammierung Teil I: 3D-Graphik Kapitel 8: Hardware Peter Sturm Universität Trier Outline 1. Übersicht und Motivation 2. Mathematische Grundlagen 3. Das Ideal: Photorealistisch (Raytracing,

Mehr

Compute Unified Device Architecture CUDA

Compute Unified Device Architecture CUDA Compute Unified Device Architecture 06. Februar 2012 1 / 13 Gliederung 2 / 13 : Compute Unified Device Architecture entwickelt von Nvidia Corporation spezifiziert Software- und Hardwareeigenschaften Ziel:

Mehr

2 Rechnerarchitekturen

2 Rechnerarchitekturen 2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf

Mehr

Weitere Verbesserungen

Weitere Verbesserungen Weitere Verbesserungen Welcher Cache liefert aktuellen Block falls mehrere Caches Block im Zustand S halten? Lösung: Einführung eines weiteren Zustands O (Owner) Zustand O besagt: Eigentümer des Blocks

Mehr

GPGPU WITH OPENCL. Praktikum Parallele Rechnerarchitekturen, 2015w Franz Richter-Gottfried

GPGPU WITH OPENCL. Praktikum Parallele Rechnerarchitekturen, 2015w Franz Richter-Gottfried GPGPU WITH OPENCL Praktikum Parallele Rechnerarchitekturen, 2015w Franz Richter-Gottfried INFRASTRUCTURE Enqueue interactive job srun --gres --pty bash Graphics cards available for tesla_k20,

Mehr

Cache-Kohärenz und -Konsistenz. Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: Universität Heidelberg

Cache-Kohärenz und -Konsistenz. Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: Universität Heidelberg Cache-Kohärenz und -Konsistenz Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: 3220501 Universität Heidelberg Inhaltsverzeichnis Wozu Caches? Unterschied Kohärenz und Konsistenz MESI-Protokoll Fazit 2

Mehr

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1 E-1 Technische Grundlagen der Informatik 2 SS 2009 Einleitung R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt Lernziel E-2 Verstehen lernen, wie ein Rechner auf der Mikroarchitektur-Ebene

Mehr

Untersuchung und Vorstellung moderner Grafikchiparchitekturen

Untersuchung und Vorstellung moderner Grafikchiparchitekturen Fakultät Informatik, Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Untersuchung und Vorstellung moderner Grafikchiparchitekturen Hauptseminar Technische

Mehr

General Purpose Computation on GPUs

General Purpose Computation on GPUs General Purpose Computation on GPUs Matthias Schneider, Robert Grimm Universität Erlangen-Nürnberg {matthias.schneider, robert.grimm}@informatik.stud.uni-erlangen.de M. Schneider, R. Grimm 1 Übersicht

Mehr

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern Institut für Betriebssysteme und Rechnerverbund TU Braunschweig 25.10., 26.10.

Mehr

CUDA. Axel Jena, Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Axel Jena, Jürgen Pröll 1

CUDA. Axel Jena, Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Axel Jena, Jürgen Pröll 1 CUDA Axel Jena, Jürgen Pröll Multi-Core Architectures and Programming Axel Jena, Jürgen Pröll 1 Warum Tesla? Traditionelle Graphikkarten Getrennte Prozessoren für Vertex- / Pixelberechnungen - Nachteil:

Mehr

Computergrundlagen Moderne Rechnerarchitekturen

Computergrundlagen Moderne Rechnerarchitekturen Computergrundlagen Moderne Rechnerarchitekturen Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Aufbau eines modernen Computers DDR3- Speicher Prozessor Prozessor PEG

Mehr

Cell Broadband Engine & CellSs: ein Programmiermodel für den Cell Prozessor

Cell Broadband Engine & CellSs: ein Programmiermodel für den Cell Prozessor Cell Broadband Engine & CellSs: ein Programmiermodel für den Cell Prozessor Hardware-Software-Co-Design Universität Erlangen-Nürnberg mark.duchon@mb.stud.uni-erlangen.de Ziegler_Matthias@web.de andreas.fall@googlemail.com

Mehr

Masterpraktikum Scientific Computing

Masterpraktikum Scientific Computing Masterpraktikum Scientific Computing High-Performance Computing Thomas Auckenthaler Wolfgang Eckhardt Prof. Dr. Michael Bader Technische Universität München, Germany Outline Organisatorisches Entwicklung

Mehr

Gliederung. Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo

Gliederung. Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo Gliederung Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo Was ist CUDA? Nvidia CUDA ist eine von NvidiaGPGPU-Technologie, die es Programmierern erlaubt, Programmteile

Mehr

Computergrundlagen Moderne Rechnerarchitekturen

Computergrundlagen Moderne Rechnerarchitekturen Aufbau eines modernen Computers Computergrundlagen Moderne Rechnerarchitekturen Axel Arnold Institut für Computerphysik Universität Stuttgart DDR3- Speicher Prozessor Prozessor PEG Graphikkarte(n) weitere

Mehr

Masterpraktikum Scientific Computing

Masterpraktikum Scientific Computing Masterpraktikum Scientific Computing High-Performance Computing Thomas Auckenthaler Wolfgang Eckhardt Technische Universität München, Germany Outline Entwicklung General Purpose GPU Programming (GPGPU)

Mehr

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember 2016 Bitte immer eine Reihe freilassen Ziele der Übung Verschiedene Arten von Instruktionsparallelität

Mehr

Paralleler Cuckoo-Filter. Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21.

Paralleler Cuckoo-Filter. Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21. Paralleler Cuckoo-Filter Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21. November 2017 1 Paralleler Cuckoo-Filter Cuckoo-Hashtabelle Serieller Cuckoo-Filter

Mehr

Prinzipieller Aufbau der Architektur eines Multikern- Prozessors. Programmierung Standard-Mulitkern-Prozessoren mit OpenMP

Prinzipieller Aufbau der Architektur eines Multikern- Prozessors. Programmierung Standard-Mulitkern-Prozessoren mit OpenMP 3.1 Einführung Multi-Core-Architekturen Motivation Multikern-Prozessoren Prinzipieller Aufbau der Architektur eines Multikern- Prozessors Programmierung Standard-Mulitkern-Prozessoren mit OpenMP Programmierung

Mehr

Cell Broadband Engine

Cell Broadband Engine Cell Broadband Engine 21.March 2006 Benjamin Keck Outline Why Cell?!? Application Areas Architectural Overview SPU Programming Model Programming on the PPE C/C++ Intrinsics The Cell Supercomputer on a

Mehr

GPGPU Basiskonzepte. von Marc Kirchhoff GPGPU Basiskonzepte 1

GPGPU Basiskonzepte. von Marc Kirchhoff GPGPU Basiskonzepte 1 GPGPU Basiskonzepte von Marc Kirchhoff 29.05.2006 GPGPU Basiskonzepte 1 Inhalt Warum GPGPU Streams, Kernels und Prozessoren Datenstrukturen Algorithmen 29.05.2006 GPGPU Basiskonzepte 2 Warum GPGPU? Performance

Mehr

2 Homogene und Heterogene Multi-/Vielkernprozessoren

2 Homogene und Heterogene Multi-/Vielkernprozessoren 2 Homogene und Heterogene Multi-/Vielkernprozessoren 2.1 Motivation Multikern-Architekturen 2.2 Analyse von Multikern-Prozessoren Energieaspekte Bandbreitenmessung Roofline-Modell 2.3 Beispiele Multi-Core-Architekturen

Mehr

Outline. Cell Broadband Engine. Application Areas. The Cell

Outline. Cell Broadband Engine. Application Areas. The Cell Outline 21.March 2006 Benjamin Keck Why Cell?!? Application Areas Architectural Overview Programming Model Programming on the PPE C/C++ Intrinsics 1 2 The Cell Supercomputer on a chip Multi-Core Microprocessor

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell

Mehr

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9 Inhalt Curriculum 1.4.2 Manfred Wilfling HTBLA Kaindorf 28. November 2011 M. Wilfling (HTBLA Kaindorf) CPUs 28. November 2011 1 / 9 Begriffe CPU Zentraleinheit (Central Processing Unit) bestehend aus Rechenwerk,

Mehr

Neue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP)

Neue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP) Neue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP) @wefinet Werner Fischer, Thomas-Krenn.AG Webinar, 17. Oktober 2017 Intel Xeon Scalable Performance _ Das ist NEU: Neue

Mehr

Vertiefungsrichtung Rechnerarchitektur

Vertiefungsrichtung Rechnerarchitektur srichtung () ( für ) Prof. Dietmar Fey Ziele der srichtung RA Vertiefen des Verständnis vom Aufbau, Funktionsweise von Rechnern und Prozessoren Modellierung und Entwurf von Rechnern und Prozessoren ()

Mehr

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach Cache-Speicher Design Digitaler Systeme Prof. Dr.-Ing. Rainer Bermbach Übersicht Cache-Speicher Warum Cache-Speicher? Cache-Strukturen Aufbau und Organisation von Caches Cache-Architekturen Cache-Strategien

Mehr

HORUS. Seminar "Ausgewählte Themen in Hardwareentwurf und Optik" im HWS Martin Scherer

HORUS. Seminar Ausgewählte Themen in Hardwareentwurf und Optik im HWS Martin Scherer HORUS Seminar "Ausgewählte Themen in Hardwareentwurf und Optik" im HWS 2006 Martin Scherer Horus Inhalt 1 Einführung 2 Cachekohärenz 3 ExtendiScale Architektur 4 Übertragungsbeispiele 5 Performance Erweiterungen

Mehr

GPGPU-Programmierung

GPGPU-Programmierung 12 GPGPU-Programmierung 2013/04/25 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt. Motivation (1) General Purpose Computing on

Mehr

Mehrprozessorarchitekturen

Mehrprozessorarchitekturen Mehrprozessorarchitekturen (SMP, UMA/NUMA, Cluster) Arian Bär 12.07.2004 12.07.2004 Arian Bär 1 Gliederung 1. Einleitung 2. Symmetrische Multiprozessoren (SMP) Allgemeines Architektur 3. Speicherarchitekturen

Mehr

Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen

Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen J. Treibig, S. Hausmann, U. Ruede 15.09.05 / ASIM 2005 - Erlangen Gliederung 1 Einleitung Motivation Grundlagen 2 Optimierungen

Mehr

Seminar: Multi-Core Architectures and Programming

Seminar: Multi-Core Architectures and Programming Seminar: Multi-Core Architectures and Programming Parallelisierung des Viola-Jones Algorithmus auf Tilera Hardware-Software-Co-Design Universität Erlangen-Nürnberg 1 Übersicht Einleitung Erste Versuche

Mehr

Ansätze 4. GPU. Echtzeit- Raytracing. Polygon- Rendering. Computerspiele Sommer (c) 2013, Peter Sturm, Universität Trier 1

Ansätze 4. GPU. Echtzeit- Raytracing. Polygon- Rendering. Computerspiele Sommer (c) 2013, Peter Sturm, Universität Trier 1 4. GPU Ansätze Echtzeit- Raytracing Modell und Materialeigenschaften auf Raytracer Kontinuierliche Darstellung Polygon- Rendering CPU wählt darzustellende Polygone aus Render Pipeline (c) 2013, Peter Sturm,

Mehr

Physikalische Berechnungen mit General Purpose Graphics Processing Units (GPGPUs)

Physikalische Berechnungen mit General Purpose Graphics Processing Units (GPGPUs) Fakultätsname XYZ Fachrichtung XYZ Institutsname XYZ, Professur XYZ Physikalische Berechnungen mit General Purpose Graphics Processing Units (GPGPUs) im Rahmen des Proseminars Technische Informatik Juni

Mehr

SS08, LS12, Friedrich-Alexander-Universität Erlangen Florian Hänel, Frederic Pollmann HS Multicore Architectures and Programming GPU EVOLUTION

SS08, LS12, Friedrich-Alexander-Universität Erlangen Florian Hänel, Frederic Pollmann HS Multicore Architectures and Programming GPU EVOLUTION SS08, LS12, Friedrich-Alexander-Universität Erlangen Florian Hänel, Frederic Pollmann HS Multicore Architectures and Programming GPU EVOLUTION (until Geforce 7 Series) 1 ÜBERSICHT Grafikpipeline Verlagerung

Mehr

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher

Mehr

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC HSD RISC &CISC CISC - Complex Instruction Set Computer - Annahme: größerer Befehlssatz und komplexere Befehlen höhere Leistungsfähigkeit - Möglichst wenige Zeilen verwendet, um Aufgaben auszuführen - Großer

Mehr

Architektur von Parallelrechnern 50

Architektur von Parallelrechnern 50 Architektur von Parallelrechnern 50 Rechenintensive parallele Anwendungen können nicht sinnvoll ohne Kenntnis der zugrundeliegenden Architektur erstellt werden. Deswegen ist die Wahl einer geeigneten Architektur

Mehr

Stream Processing und High- Level GPGPU Sprachen

Stream Processing und High- Level GPGPU Sprachen Stream Processing und High- Level GPGPU Sprachen Seminar Programmierung von Grafikkarten Jens Breitbart Problem 5000% 4000% 3000% 2000% Rechenleistung: +71% pro Jahr Bandbreite: +25% pro Jahr Zugriffszeit:

Mehr

Übersicht. Vergleich der Spielekonsole mit dem PC. Historie der Spielekonsolen von 1976 bis 1999

Übersicht. Vergleich der Spielekonsole mit dem PC. Historie der Spielekonsolen von 1976 bis 1999 Übersicht Vergleich der Spielekonsole mit dem PC Historie der Spielekonsolen von 1976 bis 1999 Heutige Generation der Konsolen Überblick Vergleich der PS2 mit der XBox Ausblick auf die kommende Konsolengeneration

Mehr

Yilmaz, Tolga MatNr: Mesaud, Elias MatNr:

Yilmaz, Tolga MatNr: Mesaud, Elias MatNr: Yilmaz, Tolga MatNr: 157317 Mesaud, Elias MatNr: 151386 1. Aufbau und Funktionsweise einer Grafikkarte 2. CPU vs. GPU 3. Software 4. Beispielprogramme Kompilierung und Vorführung 5. Wo wird Cuda heutzutage

Mehr

Die Sandy-Bridge Architektur

Die Sandy-Bridge Architektur Fakultät Informatik - Institut für Technische Informatik - Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Die Sandy-Bridge Architektur René Arnold Dresden, 12. Juli 2011 0. Gliederung 1.

Mehr

Computergrundlagen Geschichte des Computers

Computergrundlagen Geschichte des Computers Computergrundlagen Geschichte des Computers Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 1641: Rechenmaschine von B. Pascal B. Pascal, 1632-1662 mechanische Rechenmaschine

Mehr

OpenCL. OpenCL. Boris Totev, Cornelius Knap

OpenCL. OpenCL. Boris Totev, Cornelius Knap OpenCL OpenCL 1 OpenCL Gliederung Entstehungsgeschichte von OpenCL Was, warum und überhaupt wieso OpenCL CUDA, OpenGL und OpenCL GPUs OpenCL Objekte Work-Units OpenCL Adressbereiche OpenCL API Codebeispiel

Mehr

GPGPU-Programmierung

GPGPU-Programmierung 12 GPGPU-Programmierung 2014/04/29 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt. Motivation (1) General Purpose Computing on

Mehr

Clearspeed. Matthias Kunst.

Clearspeed. Matthias Kunst. Clearspeed Matthias Kunst MatthiasKunst@gmx.de 1 Inhalt Einführung Struktur und Leistung Komponenten CSX600 Prozessorarchitektur Anwendungsbereich und Systemintegration Ausblick und Fazit 2 Einleitung

Mehr

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610 LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610 Dominik Weinrich dominik.weinrich@tu-dresden.de Dresden, 30.11.2017 Gliederung Motivation Aufbau und Hardware

Mehr

Rechnerorganisation. 1. Juni 201 KC Posch

Rechnerorganisation. 1. Juni 201 KC Posch .6.2 Rechnerorganisation. Juni 2 KC Posch .6.2 2 .6.2 Front Side Bus Accelerated Graphics Port 28 MHz Front Side Bus North Bridge RAM idge South Bri IDE USB PCI Bus 3 .6.2 Front Side Bus Front Side Bus

Mehr

Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE

Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE 754 Standard festgelegt. Es stehen sogenannte einfach

Mehr

Thema: Hardware-Shader

Thema: Hardware-Shader Seminar Grafikprogrammierung Thema: Hardware-Shader Christian Bauer 03.07.08 Überblick Entwicklung Die Shader im Detail Programmierung GPGPU Zusammenfassung & Ausblick 1/19 Entwicklung (1) Früher: Berechnung

Mehr

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme Hans-Georg Eßer Hochschule München Teil 3: Zusammenhängende Speicherzuordnung 06/2009 Hans-Georg Eßer Hochschule München

Mehr

Computergrundlagen Geschichte des Computers

Computergrundlagen Geschichte des Computers Computergrundlagen Geschichte des Computers Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2011/12 1641: Rechenmaschine von B. Pascal B. Pascal, 1623-1662 mechanische Rechenmaschine

Mehr

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit Rheinisch-Westfälische Technische Hochschule Aachen Seminararbeit Analyse von General Purpose Computation on Graphics Processing Units Bibliotheken in Bezug auf GPU-Hersteller. Gregori Kerber Matrikelnummer

Mehr

2 Homogene und Heterogene Multi-/Vielkernprozessoren

2 Homogene und Heterogene Multi-/Vielkernprozessoren 2.1 Motivation Multikern-Architekturen 2.2 Analyse von Multikern-Prozessoren Energieaspekte Bandbreitenmessung Roofline-Modell 2.3 Beispiele Multi-Core-Architekturen Intel Nehalem bis Intel Haswell AMD

Mehr

ccnuma Unterstützung Zustandsübergangsdiagramm MESIF

ccnuma Unterstützung Zustandsübergangsdiagramm MESIF ccnuma Unterstützung Einführung eines neuen Zustandes Forward (F) Cache mit Block im F-Zustand antwortet auf BusRd, Caches mit Block im S-Zustand müssen nichts machen Nach einem BusRd mit Teilhaber wandert

Mehr

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset. Quiz Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur

Mehr

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012 October 29, 2012 Inhaltsverzeichnis 1 2 3 4 5 6 Motivation Motivation CUDA bietet extreme Leistung für parallelisierbare Programme Kompliziert zu programmieren, da multi-level parallel und explizit verwalteter

Mehr

Raytracing in GA mittels OpenACC. Michael Burger, M.Sc. FG Scientific Computing TU Darmstadt

Raytracing in GA mittels OpenACC. Michael Burger, M.Sc. FG Scientific Computing TU Darmstadt Raytracing in GA mittels OpenACC Michael Burger, M.Sc. FG Scientific Computing TU Darmstadt michael.burger@sc.tu-darmstadt.de 05.11.12 FB Computer Science Scientific Computing Michael Burger 1 / 33 Agenda

Mehr

Arithmetische und Logische Einheit (ALU)

Arithmetische und Logische Einheit (ALU) Arithmetische und Logische Einheit (ALU) Enthält Blöcke für logische und arithmetische Operationen. n Bit Worte werden mit n hintereinander geschalteten 1 Bit ALUs bearbeitet. Steuerleitungen bestimmen

Mehr

Beispiele von Branch Delay Slot Schedules

Beispiele von Branch Delay Slot Schedules Beispiele von Branch Delay Slot Schedules Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 97 Weniger

Mehr

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017 CPU, GPU und FPGA, Bianca Forkel 21. November 2017 CPU, GPU und FPGA Inhalt CPU: Central Processing Unit GPU: Graphical Processing Unit FPGA: Field Programmable Gate Array 2 CPU Central Processing Unit

Mehr

CUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1

CUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1 CUDA Jürgen Pröll Multi-Core Architectures and Programming Jürgen Pröll 1 Image-Resize: sequentiell resize() mit bilinearer Interpolation leicht zu parallelisieren, da einzelne Punkte voneinander unabhängig

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik Universität Osnabrück, Henning Wenke, Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-14 Kapitel V: Modeling Transformation & Vertex Shader 5.1 Vertex Definitionen: Vertex Vertex Computergrafik Mathematischer Punkt auf einer Oberfläche

Mehr

Seminar Parallele Rechnerarchitekturen SS04 \ SIMD Implementierung aktueller Prozessoren 2 (Dominik Tamm) \ Inhalt. Seite 1

Seminar Parallele Rechnerarchitekturen SS04 \ SIMD Implementierung aktueller Prozessoren 2 (Dominik Tamm) \ Inhalt. Seite 1 \ Inhalt Seite 1 \ Inhalt SIMD Kurze Rekapitulation 3Dnow! (AMD) AltiVec (PowerPC) Quellen Seite 2 \ Wir erinnern uns: Nach Flynn s Taxonomie kann man jeden Computer In eine von vier Kategorien einteilen:

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Praktische Informatik

Mehr

Device Treiber für FlexPath- Netzwerkprozessoren

Device Treiber für FlexPath- Netzwerkprozessoren Device Treiber für FlexPath- Netzwerkprozessoren Michael Meitinger Rainer Ohlendorf Dr. Thomas Wild Prof. Dr. Andreas Herkersdorf 1 Übersicht Übersicht FlexPath Einsatz von Device Treibern in der FlexPath

Mehr

ZENTRALEINHEITEN GRUPPE

ZENTRALEINHEITEN GRUPPE 31. Oktober 2002 ZENTRALEINHEITEN GRUPPE 2 Rita Schleimer IT für Führungskräfte WS 2002/03 1 Rita Schleimer TEIL 1 - Inhalt Zentraleinheit - Überblick Architekturprinzipien Zentralspeicher IT für Führungskräfte

Mehr

Multicore und mobile, stromsparende Anwendungen ein Widerspruch? Hubert Hafner Product Marketing

Multicore und mobile, stromsparende Anwendungen ein Widerspruch? Hubert Hafner Product Marketing Multicore und mobile, stromsparende Anwendungen ein Widerspruch? Hubert Hafner Product Marketing Winterthur, September 2010 Agenda Über Kontron Anforderungen der mobilen Welt Aktuellen Atom -Techniken

Mehr

Systeme 1: Architektur

Systeme 1: Architektur slide 1 Vorlesung Systeme 1: Architektur Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg slide 2 Prüfung 18. Februar 2004 8h00-11h40 13h00-18h20 20 Minuten

Mehr

2 Homogene und Heterogene Multi-/Vielkernprozessoren

2 Homogene und Heterogene Multi-/Vielkernprozessoren 2 Homogene und Heterogene Multi-/Vielkernprozessoren 2.1 Motivation Multikern-Architekturen 2.2 Analyse von Multikern-Prozessoren Energieaspekte Bandbreitenmessung Roofline-Modell 2.3 Optimierung Anzahl

Mehr

Netgauge auf Cell BE

Netgauge auf Cell BE TU Chemnitz 15. Oktober 2007 Inhaltsverzeichnis 1 Einführung Aufgabe Netgauge Cell BE 2 3 Aufgabe Einführung Aufgabe Netgauge Cell BE Netgauge + Cell = Messung Speichertransfers von Cell BE Aufgabe Einführung

Mehr

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

Software Engineering für moderne parallele Plattformen 9. GPGPUs: Grafikkarten als Parallelrechner

Software Engineering für moderne parallele Plattformen 9. GPGPUs: Grafikkarten als Parallelrechner Software Engineering für moderne parallele Plattformen 9. GPGPUs: Grafikkarten als Parallelrechner Dipl.-Inform. Korbinian Molitorisz M. Sc. Luis Manuel Carril Rodriguez KIT Universität des Landes Baden-Württemberg

Mehr

Beispielvortrag: HPCG auf Intel Haswell-EP

Beispielvortrag: HPCG auf Intel Haswell-EP Beispielvortrag: HPCG auf Intel Haswell-EP Johannes Hofmann 1 Seminarvortrag Architekturen von Multi- und Vielkern-Prozessoren Erlangen, 19.4.2016 1 Computer Architecture, University Erlangen-Nuremberg

Mehr

Programmierung von Graphikkarten

Programmierung von Graphikkarten Programmierung von Graphikkarten Stefan Lang Interdisziplinäres Zentrum für Wissenschaftliches Rechnen Universität Heidelberg INF 368, Raum 532 D-69120 Heidelberg phone: 06221/54-8264 email: Stefan.Lang@iwr.uni-heidelberg.de

Mehr

Hochleistungsrechnen auf dem PC

Hochleistungsrechnen auf dem PC Hochleistungsrechnen auf dem PC Steffen Börm Christian-Albrechts-Universität zu Kiel Ringvorlesung Informatik, 26. Juni 2014 S. Börm (CAU Kiel) Hochleistungsrechnen auf dem PC 26. Juni 2014 1 / 33 Übersicht

Mehr

Numerik und Rechnen. Martin Heide & Dominik Holler. 12. Juni 2006

Numerik und Rechnen. Martin Heide & Dominik Holler. 12. Juni 2006 12. Juni 2006 Bibliothek für Lineare Algebra GPGPU-Programming: Low-Level High-Level Bibliothek Bibliothek für Lineare Algebra Gliederung 1 Bibliothek für Lineare Algebra 2 Skalare Bibliothek für Lineare

Mehr

High Performance Embedded Processors

High Performance Embedded Processors High Performance Embedded Processors Matthias Schwarz Hardware-Software-Co-Design Universität Erlangen-Nürnberg martin.rustler@e-technik.stud.uni-erlangen.de matthias.schwarz@e-technik.stud.uni-erlangen.de

Mehr

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme

Mehr

Motivation (GP)GPU CUDA Zusammenfassung. CUDA und Python. Christian Wilms. Integriertes Seminar Projekt Bildverarbeitung

Motivation (GP)GPU CUDA Zusammenfassung. CUDA und Python. Christian Wilms. Integriertes Seminar Projekt Bildverarbeitung CUDA und Python Christian Wilms Integriertes Seminar Projekt Bildverarbeitung Universität Hamburg WiSe 2013/14 12. Dezember 2013 Christian CUDA und Python 1 Gliederung 1 Motivation 2 (GP)GPU 3 CUDA 4 Zusammenfassung

Mehr