View
215
Download
0
Category
Preview:
Citation preview
Current and Emerging ArchitecturesMulti-core Architectures and Programming
Adel El-Rayyes
Hardware-Software-Co-Design, Friedrich-Alexander-UniversitätErlangen-Nürnberg
9. Mai 2012
Inhalt
• Überblick über Architekturen
• Tilera Architektur
• Convey Computers HC-1 \ HC-2 Architektur
• Intel Many Integrated Core Architecture (MIC)
• Zusammenfassung
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 2
Überblick über Architekturen
• Graphics Processing Units
• Accelerated Processing Units
• Digital Signal Processors
• Adapteva Epiphany
• TILE64 \ TILEPro64
• FPGAs: Convey Computer HC-1 & HC-2
• Intel MIC
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 3
APUs: Beispiel AMD Llano
CPU und GPU auf einemStück Silicium
Beispiele:• AMD Fusion• Intel Sandy\Ivy-Bridge• NVIDIA Project Denver
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 4
DSPs: Beispiel Avantechs DSPC-8681
• 4 (TI) TMS320C6678• 512 SP gigaflops at 50
watts (Nvidia Tesla-20:1331 SP gigaflops at225 watts)→energieeffizient
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 5
Adapteva Epiphany
• Momentan max. 16Kerne• Modelle mit mehreren
1000 Kerne inEntwicklung• Low Latency On-Chip
Network, ähnlich TileraArchitektur.• Stark bzgl. FP• Aber nur als FP
Koprozessor gedacht
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 6
Tilera Architektur - Überblick
• besteht aus sog. Tiles("Kacheln")• 1 Tile = 1 Prozessor• Tiles untereinander mit 5
Netzwerken verbunden("iMesh")→ 1.28 Tbps hinein undheraus aus einem Prozessor• 4 x DDR2 Controller→ 200 GbpsSpeicherbandbreite• 40 Gbps Bandbreite an
Peripherie:• 2 mal 4x PCIe• 2 XAUI Schnittstellen• 2 mal Gigabit Ethernet
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 7
Tilera Architektur - iMesh
Das iMesh besteht aus 5 separaten Netzwerken:• User Dynamic Network (UDN):
Zur Kommunikationen zwischen Threads, des Anwenders. Umgeht dieNutzung von shared-memory.• I/O Dynamic Network (IDN):
Anbindung von I/O Geräten, sowohl zur Steuerung als auch zurDatenübertragung.• Memory Dynamic Network (MDN):
Zur Kommunikation des Caches mit dem Hauptspeicher über dieDDR2-Controller.• Tile Dynamic Network (TDN):
Dient dem Tile-to-Tile Cache Transfer, Anfragen laufen über das TDN undAntworten zurück über das MDN (L3).• Static Network (STN):
Das einzige nicht packet-basierte Netzwerk geeignet um Datenströme mitgeringer Latenz von einem Tile zum anderen zu übertragen.
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 8
Tilera Architektur - Aufbau eines Tiles
Ein Tile(TILE64) besteht :• Dem Prozessor:• 3-way VLIW CPU, 64-bit
instruction size• SIMD instructions: 32, 16,
and 8-bit ops• Instructions for video (e.g.,
SAD) and networking (e.g.,hashing)
• Cache L1&L2:• L1 cache: 8KB I, 8KB D, 1
cycle latency• L2 cache: 64KB unified, 7
cycle latency• Cache integrated 2D DMA
engine
• und einem Switch
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 9
Tilera Architektur - Programmierung
Beispiel mit pthreads:
void run_threads(int count, void*(*func)(void*)){
for (int i = 1; i < count ; i++){if (pthread_create(&threads[i], NULL, func, (void*)i) != 0)tmc_task_die("pthread_create() failed.");
}(void) func((void*) 0);
}
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 10
Tilera Architektur - Zusammenfassung
Tilera Architektur - Zusammenfassung• Neuere Modelle unterstützen FP in Hardware, davor nur Emulation.• Gruppierung von Kernen in sog. Domänen in denen eine Applikation\OS läuft,
zum Schutz vor unauthorisierten Zugriffen.• Unterstützt SMP Linux und bietet einen ANSI standard C\C++ Compiler.→ Einfache Portierung existierender Applikationen.• Großer dezentraler L3 Cache (alle L2 Caches gebündelt).• Energieeffizienz:
ein einzelner Kern braucht weniger als 1W und Kerne könnenein-\ausgeschaltet werden, je nach Bedarf.• Skalierbarkeit:
Prozessoren mit mehr als 64 Kernen bereits Verfügbar und weiterer Ausbaugeplant.
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 11
Convey Computer HC-1 - Überblick
• Mischung aus x64 Intel Xeon Prozessor und mehreren FPGAs alsKoprozessoren (Hybrid-Core Architektur).• Passt auf spezielles Intel Mainboard für Convey gefertigt.• Hauptprozessor über FSB mit Koprozessoren verbunden.
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 12
Convey Computer HC-1 - Architektur 1
• 4 DIMM Channels für den x64-Prozessor und 16 DIMM Channels für dieFPGAs verbunden über FSB (Cache Koheränz).• Spezielles Speicherzugriffsystem, das auch kleinere (8-byte) Übertragungen
über Scatter-Gather DIMMs erlaubt, führt zu höherer Peak-Bandwidth.• Koprozessor besteht aus vier Xilinx Virtex5/6 FPGAs.
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 13
Convey Computer HC-1 - Architektur 2
• System besteht aus einem Intel (2/4-Kern) Xeon Prozessor• der Application Host Engine• und Application Engines, den FPGAs• AEH sendet an AEs die nötige "Personality"• Durch direkte Verbindung von x64 und FPGA über FSB kann der
Hauptspeicher von beiden Seiten genutzt werden.
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 14
Convey Computer HC-2 - Nachfolgemodell
• Neue Xeon Prozessoren (Westmere und Sandy-Bridge) 4/6/8-KerneProzessoren.• wechsel von FSB auf PCIe (Cache Koheränz bleibt erhalten)→ weiterer CPU Sockel frei für zusätzlichen Xeon Prozessor.• Mehr Arbeitsspeicher Hostseitig und mehr I/O Bandbreite.
(1x PCIe Gen2, 4x SATA→ 5x PCIe Gen3, 8x SATA, 2x Intel I/O Module)
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 15
Convey Computer HC-1/2 - Zusammenfassung
• Sehr flexibele Einsatzmöglichkeiten über "Personalities".• Kein großer Programmieraufwand nötig, Portierung von C/C++ Code über
Convey Compiler.• Falls keine passende "Personality" vorhanden ist, ist grösserer
Programmieraufwand in VHDL nötig.• Gut geeignet für "Data-intensive" Aufgaben, wegen hoher Speicherbandbreite
durch Speicherzugriffsmuster.• Verfügbar in verschiedenen Konfigurationen: HC-1/ex oder HC-2/ex• Starke Konkurrenz zu gängigen Server Systemen in HPC-Clustern, da
platzsparender und energieeffizienter als übliche x64-Server.
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 16
Intel MIC - Larrabee• Mehrere Pentium 1
artige Prozessoren.• x86-Architektur mit
verb. Vektoreinheit.• Cache Koheränz
über RingbusSystem.• Einfach
Programmierung dax86.• gezeigte
Peak-Performancevon knapp über1TFLOP(DP).• Eingestellt da nicht
überzeugend bzgl.3D-Leistung.
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 17
Intel MIC - Single-Chip Cloud Computer
• 48 Pentium 1 ähnliche Prozessoren auf einem Die.• Verbunden über ein 6x4 Mesh.• 4 DDR3 Controller• 2 Prozessoren bilden ein "Tile" und hängen an einem Switch.• Kerne in 4er-Gruppen dynamisch an- und ausschaltbar.
• selbeCache-Austattungwie Larrabee• 25-125W
Stromverbrauch• nur zu
Forschungszwecken• Kein Hardware
Cache-Kohärenz
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 18
Intel MIC - Knights Ferry
• Kombination aus Forschungsergebnissen von Larrabee und SCC.• Als Koprozessor in Serversystemen gedacht, über den PCIe-Bus.• Technische Daten:• 32 Kerne @ 1.2GHz mit 4-fach Hyperthreading→ 128 threads.• 8MB Koherenter Cache• 1-2GB GDDR5• Vorläufer zu Knights Corner zu Entwicklungszwecken.
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 19
Intel MIC - Programmiermodell
Klassische x86 Programmierung mit OpenMP und einigen neuen Intel MICspezifischen Befehlen.
main(){
double pi = 0.0f; long i;...#pragma offload target (mic)#pragma omp parallel for reduction(+:pi)for (i=0; i<N; i++) {double t = (double)((i+0.5)/N);pi += 4.0/(1.0+t*t);
}printf("pi = %f\n",pi/N);
}
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 20
Zusammenfassung
• Es gibt mehr als CPU und GPU• Da CPU+GPU nicht die ideale Lösung aller Multicore Probleme ist entstehen
weitere Architekturen.• Spezialisierung findet auch unter Multicore Architekturen statt.• Treibende Faktoren: energetische- und räumliche-Effizienz.
9. Mai 2012 | Adel El-Rayyes | Hardware-Software-Co-Design | Current and Emerging Architectures 21
Recommended