Convey, Hybrid-Core Computing



Ähnliche Dokumente
Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn

Mikrocontroller Grundlagen. Markus Koch April 2011

4D Server v12 64-bit Version BETA VERSION

Teil VIII Von Neumann Rechner 1

Windows Server 2008 (R2): Anwendungsplattform

Computer-Architektur Ein Überblick

Praktikum Mikrocomputertechnik

CHARON-AXP Alpha Hardwarevirtualisierung

Computerarithmetik ( )

Übungen zur Softwaretechnik

Virtuelle Maschinen. von Markus Köbele

Instruktionssatz-Architektur

Die Mikroprogrammebene eines Rechners

Version 0.3. Installation von MinGW und Eclipse CDT

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Excel beschleunigen mit dem mit Windows HPC Server 2008 R2

Konzeption und Implementierung einer Videodigitalisierung und Videoausgabe unter Embedded Linux. Kolloquium von Frank Schwanz

Elasticsearch aus OPS-Sicht Teil1. Markus Rodi Karlsruhe,

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Tutorium Rechnerorganisation

1 Proseminar: Konzepte von Betriebssystem-Komponenten. Thema: Server OS AS/400 Referend: Sand Rainer. Server OS - AS/400

Ein Scan basierter Seitenangriff auf DES

Tutorials für ACDSee 12: Hochladen von Fotos auf Ihren Account bei ACDSeeOnline.com

Johann Wolfgang Goethe-Universität

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online

Die Marvel, ein gedrosselter Supercomputer

Rechner Architektur. Martin Gülck

Programmierung von Smart Cards mit Hilfe von Java

E-TIME ADVANCED Dokumentation zum Vorgehen bei der elektronischen Zeiterfassung. Geben Sie folgende Internetadresse ein:

Persönliches Adressbuch

pegasus gmbh WebEX Trainings Center Handbuch für Teilnehmer

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

Einführung in die C++ Programmierung für Ingenieure

Zählen von Objekten einer bestimmten Klasse

High Performance Datenerfassung Tests am Beispiel WEGA

Einführung in PHP. (mit Aufgaben)

Design Patterns 2. Model-View-Controller in der Praxis

Java Einführung Operatoren Kapitel 2 und 3

Manual & Installation Guide

Tacx Trainer-Software Version 3.6 Bedienung

Installationsvoraussetzungen

Übungen zu C++ Kapitel 1

WIE ERHÖHT MAN DIE EFFIZIENZ DES BESTEHENDEN RECHENZENTRUMS UM 75% AK Data Center - eco e.v. 1. Dezember 2009

Installation LehrerConsole (für Version 6.2)

Einführung in die Systemprogrammierung

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Mikroprozessor als universeller digitaler Baustein

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Installationsanleitung

13 Programmierbare Speicher- und Logikbausteine

Beschrieb mobiler Schulungsraum

Internet Explorer Version 6

Outlook 2010 Daten importieren und exportieren

Installationshinweise BEFU 2014

Übung - Datenmigration in Windows 7

5 Speicherverwaltung. bs-5.1 1

Linux auf FPGAs. Massgeschneiderte Computersysteme. Christoph Zimmermann, Marc-André Beck. 1. März Berner Fachhochschule MedOnStream

L3. Datenmanipulation

Eine Anleitung, wie Sie Mozilla Thunderbird 2 installieren und konfigurieren können. Installation Erstkonfiguration... 4

Wie profitiert SAP MaxDB von SSD Technologie?

teischl.com Software Design & Services e.u. office@teischl.com

QUICK INSTALLATION GUIDE

5. PC-Architekturen und Bussysteme

e-books aus der EBL-Datenbank

Berührungslose Datenerfassung. easyident-usb Stickreader. Art. Nr. FS-0012

Ermitteln der Anzahl der Lizenzen für V-locity VM

SharePoint Demonstration

1 Konto für HBCI/FinTS mit Chipkarte einrichten

Inhaltsverzeichnis

Bei unserem letzten Ausflug in die Welt der Highend Mainboards konnten wir bereits feststellen das Intel seine Hausaufgaben gemacht hat.

dspace (1/3) dspace: Gegründet 1988 in Paderborn Mitarbeiter: Über 650 Mitarbeiter weltweit, davon über 70 % Ingenieure Ständiges Mitarbeiterwachstum

Ein kleines Computer-Lexikon

Einführung in die Programmierung (EPR)

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Quick XMP Ü bertaktungseinstellungen

LabTech RMM. Integration von Teamviewer. Vertraulich nur für den internen Gebrauch

Upgrade von Windows Vista auf Windows 7

Einrichten des -Clients (Outlook-Express)

VarioTAP Einführung Hosea L. Busse

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

IBM SPSS Statistics für Windows-Installationsanweisungen (Netzwerklizenz)

Angewandte Informatik

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Einsatzbedingungen FAMOS 3.10

BitRecords FPGA Modul XC6SLX25_V2.0, Mai2013 1

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

INDEX. Netzwerk Überblick. Benötigte Komponenten für: Windows Server Windows Server 2008 R2. Windows Server 2012

MINECRAFT SERVER AUF AZURE

Prozessor HC680 fiktiv

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Leitfaden zur Installation von Bitbyters.WinShutdown

Systemanforderungen ab Version 5.31

Mindestanforderungen an Systemumgebung Für die Nutzung von excellenttango

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Transkript:

Convey, Hybrid-Core Computing Vortrag im Rahmen des Seminars Ausgewählte Themen in Hardwareentwurf und Optik HWS 09 Universität Mannheim Markus Müller 1

Inhalt Hybrid-Core Computing? Convey HC-1 Überblick Convey HC-1 Coprozessor im Detail Hostinterface Verarbeitungseinheiten Speicherinterface Programmierumgebung Codebeispiele 2

Hybrid-Core Computing? Kombination eines x86 Systems mit Hardware zur Ausführung anwendungsspezifischer Instruktionen Im Vergleich zu einem gewöhnlichen heterogenen System (z.b. IBM Cell) : Gemeinsamer cache-kohärenter logischer Adressraum Executable enthält Instruktionen die auf der Host CPU oder der anwendungsspezifischen Hardware ausgeführt werden können Im Grunde Verhalten wie ein Co-Prozessor 3

Convey HC-1 Hybrid-Core System von Convey Computer: FSB FSB DDR2 Quelle: [2] Co-Prozessor ist konfigurierbar, System kann verschiedene Personalities annehmen 4

Technische Daten Standard Dualprozessor Mainboard x86 Host Prozessor Intel Xeon Dual Core Max. 128GB RAM Convey HC-1 Co-Prozessor 14 Xilinx Virtex 5 FPGAs Max. 128GB DDR2 RAM oder Max. 32GB Convey Scatter-Gather RAM 5

Was ist ein Co-Prozessor? Mikroprozessor der den Hauptprozessor bei speziellen Aufgaben unterstützt Bsp.: Floating-point Co-Prozessor für Motorola 68k Spezielle OpCodes im Instructionset des Hosts (0xF...) Host steuert Instruction Issue, TRAP falls kein Co-Prozessor vorhanden Co-Prozessor ist mit System Bus verbunden Quelle: [5] 6

Was ist ein Device? Quelle: [4] Programmed I/O (PIO) Standard Load/Store Befehle Mindestens 4 Register Command Register Status Register Data Read Register Data Write Register Register werden memory-mapped 7

Convey HC-1 Quelle: [1] 8

HC-1 Co-Prozessor Host Interface 2 V5LX110 Application Engine 4 V5LX330 Memory Controller 8 V5LX155 Quelle: [1] V5LX330 550MHz (eher ~300 MHz) 330.000 logic cells bis zu 207.360 FFs 9

HC-1 Co-Prozessor 10

Shared Memory CPU0 Cache FSB Intel Chipsatz FSB Co- CPU1 Prozessor Cache Cache Logik Memory Controller Speicher am Co- Prozessor aus Sicht der Host CPU im Prinzip wie ein großer Cache Memory Controller RAM RAM Zugriff über Cache Consistency Logik ein Adressraum 11

Application Engine Hub (AEH) Host Interface Verbindung zum FSB Bearbeitet Data Requests der Host CPU Überwacht Cache Consistency Instruction Fetch/Decode für Application Engines Implementiert das Canonical Instruction Set 12

Personalities (1/2) Anwendungsspezifisches Instruction Set Canonical Instruction Set : Skalare Integer und Floating Point Operationen Adressberechnungen, Branches Implementiert im Host Interface Extended Instruction Set z.b. Vektorverarbeitung, State Machines Eigene Anpassung, eigene Instruktionen möglich Implementiert in den Application Engines 13

Personalities (2/2) Bestehen aus: FPGA Bitfiles für Application Engines Informationen für den Compiler und Debugger Können im Betrieb gewechselt werden Jede Anwendung kann ein speziell auf eigene Anforderungen optimiertes Instruction Set nutzen 4 Application Engines Viele parallele Verarbeitungseinheiten möglich 14

Beispiel: Vector Personality Quelle: [1] Implementiert einen Vektorrechner Single Precision (32bit) Floatingpoint Units Für Double Precision die Hälfte der Units 15

Beispiel: InsPect Personality Implementiert einen anwendungsspezifischen Feldrechner für Protein Sequencing 100x schneller als ein Nehalem Kern Quelle: [1] 16

Memory System Convey HC-1 8 Controller mit je 2 Kanälen (80 GB/s) Optimiert für 8 Byte Zugriffe Optimiert für verteilte Zugriffe Quelle: [3] (Intel Xeon) 17

Memory Interleaving char matrix[4][4]; 1 2 3 4 5 6 7 8........ Speichermodule: Adresse Daten 00 00 00 01 00 10 00 11 01 00 01 01 01 10 01 11 10 00 1 2 3 4 5 6 7 8 9 1 5 9 2 6 10 3 7 11 4 8 12 bank select Bank 0 (00) Bank 1 (01) Bank 2 (10) Bank 3 (11) 18

Skewed Storage char matrix[4][4]; i/j 0 1 2 3 0 1 2 1 2 3 4 5 6 7 8 9 101112 Speichermodule: Adresse Daten 00 00 00 01 00 10 00 11 01 00 01 01 01 10 01 11 10 00 1 2 3 4 5 6 7 8 9 1 8 11 2 5 12 3 6 9 4 7 10 (i, j) i+j mod B Adresse mod B (Bsp.: B = 4) Bank 0 (00) Bank 1 (01) Bank 2 (10) Bank 3 (11) 19

Burstmode Access Adressierung von SDRAM erfolgt in Zeilen (RAS) und Spalten (CAS) Oft sequenzielle Zugriffe Burstmode Access Ein Burst holt mehrere Wörter der selben Zeile Für jedes Wort nur noch CAS erforderlich Standard DIMMs holen meist eine 64 Byte Cacheline pro Burst Convey Scatter/Gather DIMMs sind optimiert für 8 Byte Bursts 20

Memory System Convey HC-1 Application Engines Memory Controller Memory Controller Memory Controller Memory Controller Optimiert für kleine (64 bit), verteilte Zugriffe. Convey SG Convey S/G modulo 31 skewed storage 21

Programmierumgebung Standard C/C++ oder Fortran Standard Linux System Executable auf jedem Linux ausführbar runtime test ermittelt auszuführenden Code je nach Performance und System Bestehender Code kann weitgehend übernommen werden Einfaches Programmiermodell durch Single Thread und Shared Memory Quelle: [1] 22

Compiler Vektorisierender Compiler erkennt automatisch optimierbare Bereiche (Abhängigkeitsanalyse!) Bereiche die auf dem Co-Prozessor ausführbar sind werden erkannt und entsprechende Aufrufe generiert Coderegion wird geklont Eine Kopie für x86_64 optimiert, eine für Convey Laufzeitentscheidung über Ausführung Compiler generiert Dispatcher Anweisungen für Co-Prozessor 23

Startsequenz Co-Prozessor Quelle: [1] 24

Vektorisierung Codebeispiel: for (i=0; i <= 63; i++) Y[i] = a * X[i] + Y[i]; Skalare Verarbeitung L.D F0, a ; Skalar a laden DADDIU R4, Rx, #512 Loop: L.D F2, 0(Rx) ; X(i) laden MUL.D F2, F2, F0 ; a * X(i) L.D F4, 0(Ry) ; Y(i) laden ADD.D F4, F4, F2 ; a * X(i) + Y(i) S.D 0(Ry), F4 ; Y(i) speichern DADDIU Rx, Rx, #8 DADDIU Ry, Ry, #8 DSUBU R20, R4, Rx BNEZ R20, Loop ; wenn 0, dann fertig Vektor Verarbeitung L.D F0, a ; Skalar a laden LV V1, Rx ; Vector X laden MULVS.D V2, V1, F0 ; Vector-Skalar Multiplikation LV V3, Ry ; Vector Y laden ADDV.D V4, V2, V3 ; Vektor Addition SV Ry, V4 ; Resultat speichern Quelle: [7] 6 Befehle vs. 578 Befehle (2 + (64*9)) 25

Vector Personality Benchmark Quelle: [1] 26

CPU vs. FPGA (1/3) Codebeispiel einer 4-Input Logikoperation uint32 Log4(uint32 F, uint32 A, uint32 B, uint32 C, uint32 D) { uint32 R = 0; for (int i = 0; i < 32; i++) { uint32 a = (A >> i) & 1; uint32 b = (B >> i) & 1; uint32 c = (C >> i) & 1; uint32 d = (D >> i) & 1; uint32 e = (a << 3) (b << 2) (c << 1) d; R = ((F >> e) & 1) << i; } return R; } A,B,C,D sind Eingänge, F dient als Bitmaske 27

CPU vs. FPGA (2/3) CPU Umsetzung 00401006 xoredx,edx 00401008 movecx,esi 0040100A shredx,cl 0040100C and edx,1 0040100F lea edi,[edx+edx] 00401012 or edi,edx 00401014 add edi,edi 00401016 or edi,edx 00401018 movedx,1 0040101D shredx,cl 0040101F add edi,edi 00401021 and edx,1 00401024 or edi,edx 00401026 movecx,edi 00401028 movedx,5 0040102D shredx,cl 0040102F movecx,esi 00401031 add esi,1 00401034 and edx,1 00401037 shledx,cl 00401039 or eax,edx 0040103B cmpesi,20h 0040103E jllog4+6 (401006h) 00401040 pop edi 00401041 pop esi 23 * 32 = 736 Instruktionen FPGA Umsetzung Direkte Implementierung 128 Logikzellen 28

CPU vs. FPGA (3/3) CPU Umsetzung FPGA Umsetzung 736 Instruktionen @ 3 GHz ~ 245ns Ausführungszeit 128 Zellen von 207.000 (~ 2ns Ausführungszeit) Bei 100 Watt für 4 Cores Bei 25 Watt für 207.000 Zellen 25 Watt * 245ns 128/207.000 * 25 Watt = 0,01 Watt = 6,1 * 10-9 Joule = 5,6 * 10-15 Joule 29

Fazit Einfaches Programmiermodell durch Shared Memory, Single Thread Standard Entwicklungsumgebung (gcc,gdb,...) Energieersparnis durch effizientere Verarbeitung auf FPGAs Performancegewinn stark abhängig von: Compilerqualität Spezifischer Anwendung 30

Danke für Ihre Aufmerksamkeit. 31

Quellenangaben [1] Convey Computer Hot Chips Präsentation http://www.conveycomputer.com/convey.hot%20chips.brewer.pdf [2] Convey's Energy-Efficient Computers http://www.conveycomputer.com/resources/energy-efficient%20hybrid [3] HP CAST 12 Vortrag [4] Vorlesungsskript Rechnerarchitektur 1 [5] Motorola MC68881 Datasheet [6] Wikipedia http://de.wikipedia.org/wiki/simd [7] Wikipedia http://de.wikipedia.org/wiki/vektorrechner 32