Benchmark sparc vs. x86 von Axel Schmidt (94416)

Slides:



Advertisements
Ähnliche Präsentationen
Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Advertisements

Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Einführung in die Informatik: Programmierung und Software-Entwicklung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Telefonnummer.
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2012.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
= = = = 47 = 47 = 48 = =
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Internet facts 2008-II Graphiken zu dem Berichtsband AGOF e.V. September 2008.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
AC Analyse.
Differentielles Paar UIN rds gm UIN
1Ausgewählte Themen des analogen Schaltungsentwurfs Zusammenfassung Einführung Teilchendetektore – Sensorstrukturen, Verstärker, Rauschen, Geschwindigkeit.
Prof. Dr. Bernhard Wasmayr
Studienverlauf im Ausländerstudium
1 Der Zusammenbau der Azubirechner des 1. Lehrjahres Von Thomas Kaiser.
Schieferdeckarten Dach.ppt
AMDs Next Generation Die Hammer Familie Eine Kurzpräsentation von Frank Grümmert bei Herrn Prof. Dr.-Ing. Risse für das RST-Labor.
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse.
EPIC, IA-64 und Itanium Eine Kurzpräsentation von Jan Hübbers bei Prof. Dr.-Ing. Risse im Fach Labor Rechnerstrukturen an der Hochschule Bremen
Inhalt Der Cell Prozessor Aufbau des Cells Platine Block Diagramm
Matrix Multiplication on CUDA
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
AWA 2007 Natur und Umwelt Natürlich Leben
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
20:00.
Die Geschichte von Rudi
„Küsse deine Freunde“ – FlexKom-App teilen
Zusatzfolien zu B-Bäumen
Performance-Steigerung durch schnelle Festplatten Ulrich Dinger.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Eine Einführung in die CD-ROM
für Weihnachten oder als Tischdekoration für das ganze Jahr
1 Ein kurzer Sprung in die tiefe Vergangenheit der Erde.
Wir üben die Malsätzchen
Syntaxanalyse Bottom-Up und LR(0)
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
3.4 CPU-Chips und Busse CPU-Chips
PROCAM Score Alter (Jahre)
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Geometrische Aufgaben
Symmetrische Blockchiffren DES – der Data Encryption Standard
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Großer Altersunterschied bei Paaren fällt nicht auf!
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Pigmentierte Läsionen der Haut
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
1 Mathematical Programming Nichtlineare Programmierung.
Linpack Benchmark Dient zur Performance Messung verschiedener Rechnerarchitekturen. Entstammt dem Linpack Projekt von 1979, der Autor Jack Dongarra ist.
Technische Frage Technische Frage Bitte löse die folgende Gleichung:
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Bildergalerie PRESEASON CAMP Juni 2014 Romanshorn Get ready for the Season!
Central Processing Unit von David Kleuker und Thomas Auner
Folie Einzelauswertung der Gemeindedaten
Geschichte der Mikroprozessoren (vom 8086 bis zum Pentium Dual Core
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wie.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
 Präsentation transkript:

Benchmark sparc vs. x86 von Axel Schmidt (94416) Raphael Schlameuß (100753) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Agenda Hardware (Sparc, X86) Prozessor-Features (Sparc, X86) Benchmark Probleme ?! Erwartete Ergebnisse Ergebnisse Zusammenfassung Fragen und Anregungen ? 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Benchmark - Hardware UltraSparc Pentium II SIMBA/SABRE-Chipsatz UltraSparc IIi, 360 MHz, 256 kB L2 2x 128 MB EDO JEDEC DRAM, 75 MHz Bustakt MDMA-IDE-Controller, 16,7 MB/s 40GB HDD, 7200 min-1, 1863kB Cache ATI 3D Rage Pro PCI, 4MB Netzwerkkarte HAPPY MEAL ASUS P3B-F Mainboard Intel 440BX-Chipsatz Pentium II („Deschutes“), 350 MHz, 512 kB L2 2x 128 MB SDRAM, 100 MHz Bustakt UDMA33-IDE-Controller, 33 MB/s 40GB HDD, 7200 min-1, 1719kB Cache ATI 3D Rage Pro AGP, 8MB Netzwerkkarte Realtek 8139 26.11.2006 - Axel Schmidt / Raphael Schlameuß

UltraSparc IIi – Features Highly Integrated Superscalar-Processor SPARC-V9 64-Bit-RISC Architektur VISTM Instruction Set 1 UltraSparc IIi CPU mit 360 MHz Takt externer Bus-Takt 90 MHz 26.11.2006 - Axel Schmidt / Raphael Schlameuß

UltraSparc IIi – Features Je 16 kB D- und I-Cache (L1) 256 kB L2-Cache (extern, halber CPU-Takt) 4 Integer-, 3 Gleitpunkt- und 1 Graphic-Units Block-Load/Store-Unit Registerfile mit 64 Bit Registern 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Architektur UltraSparc IIi 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Pentium II – Features Out-of-Order Superskalar Processor Core CISC mit Dynamic Execution Microarchitecture 1 Intel Pentium II CPU mit 350 MHz Takt externer Bus-Takt 100 MHz 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Pentium II – Features Je 16 kB D- und I-Cache (L1) 512 kB L2-Cache (extern, halber CPU-Takt) 2 Integer- und 2 MMX-Units 1 Gleitpunkt- und 1 Jump-Unit Load/Store-Unit 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Architektur Intel Pentium II 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Benchmark – Probleme ?! Unterschiedliche Hardware (Mainboard, Grafikkarte, Speicher, Prozessor) Betriebssystemwahl (Solaris, Debian, Gentoo, …) Softwareauswahl (BLAS, LAPACK, LINPACK, Cachebench, Whetstone, Dhrystone) Compileroptimierung ??? Benchmarkergebnisse vergleichbar ? 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Betriebssystem Sparc Gentoo Linux (Base 1.6.13) Stage 1 Installation (32-Bit) CFLAGS: -march=ultrasparc -O2 -m32 -mvis Bootstrapping (Installation des Basissystems [32-Bit]) Update auf stable-Packages (32-Bit) Kernel 2.6.13 (mit Gentoo-Patches [64-Bit]) Treiber und Konfigurationen Compiler: gcc-3.4.5 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Betriebssystem x86 Gentoo Linux (Base 1.6.13) Stage 1 Installation (32-Bit) CFLAGS: -march=pentium2 -O2 -m32 -mmmx Bootstrapping (Installation des Basissystems [32-Bit]) Update auf stable-Packages (32-Bit) Kernel 2.6.13 (mit Gentoo-Patches [32-Bit]) Treiber und Konfigurationen Compiler: gcc-3.4.5 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Vorüberlegung Benchmark Whetstone 1972 (Kombination aus Integer-, Gleitpunkt- und Array- Operationen, Ergebnis in MIPS) Dhrystone 1984 (Integer- und Array-Operationen, Ergebnis in Dhrystone- Loops / s) 1000s / 1000d (LINPACK) Benchmarken von CPU / Cache / Speicher durch Messen von Cache-Zugriffen Lösen Linearer Gleichungssysteme (xAXPY, xGEMV, xGEMM) Compileroptimierung durch CFLAGS 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Erwartete Ergebnisse Cache-Zugriff: in etwa identisch (< 256 KByte) Integer: x86 ≈ sparc Single-Präzision: x86 ≈ sparc Double-Präzision: sparc > x86, wegen 64-Bit Architektur, x86 nur wenige 64-Bit Register (MMX) Compileroptimierung: x86 > sparc 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Software für Benchmark Whetstone (floating-point-Operationen) Dhrystone (integer-Operationen) LINPACK veraltet, deshalb LAPACK (für sparc nicht verfügbar,  LAPACK-ATLAS) LLCBench (Cachebench, Blasbench) BLAS (Basic Linear Algebra Subprograms) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Whetstone 1972 Array-Funktionen (Anteil: 28,91%) Bedingte Sprünge (Anteil: 15,53%) Integer-Arithmetik (Anteil: 13,65%) Trigonometrische Funktion (Anteil: 1,44%) Funktionsaufrufe (Anteil: 40,47%) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Dhrystone 1984 Array-Funktionen (Anteil: 12,62%) Bedingte Sprünge (Anteil: 33,01%) Integer-Arithmetik (Anteil: 37,86%) Funktionsaufrufe (Anteil: 16,51%) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Whetstone / Dhrystone 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Whetstone / Dhrystone Whetstone (floating-point-Operationen) ohne Optimierung: Beschleunigung x86  sparc: 1,94 mit Optimierung: Beschleunigung x86  sparc: 1,37 Dhrystone (integer-Operationen) Beschleunigung x86  sparc: 1,63 Beschleunigung x86  sparc: 0,79 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Benchmark LAPACK-ATLAS ATLAS stellt Schnittstellen für C und Fortran zur Nutzung von LAPACK und BLAS zur Verfügung ATLAS - Automatically Tuned Linear Algebra Software BLAS – Basic Linear Algebra Subprograms LAPACK - Linear Algebra PACKage 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Routinen aus LAPACK I Treiber- und Rechen-Routinen Treiber-Routinen zum Lösen von Problemen wie Lineare Gleichungssysteme Eigenwerte von realen symmetrischen Matrizen Rechen-Routinen für einzelne Aufgaben werden von Treiber-Routinen genutzt 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Routinen aus LAPACK II Beispiel einer Routine: SGEMV und DGEMV S Single precision (32-Bit Gleitpunkt) D Double precision (64-Bit Gleitpunkt) GE General MV Matrix-Vektor-Operationen berechnet die Lösungen zu einem realen System linearer Gleichungen der Form y=α*A*x+β*y, wobei α, β Skalare, A Matrix und x, y Vektoren sind. 26.11.2006 - Axel Schmidt / Raphael Schlameuß

LINPACK - SGEFA Pseudocode SGEFA DO k = 1, N find pivot DO j = k+1, N call SAXPY(N-k, -A[k,j], A[k+1,k], A[k+1,j], 1) N=1000 SAXPY – Multiplikation von Skalar und Vektor, Addition von Vektoren DO i = m, N y[i] = a * x[i] + y[i] Skalar a, Vektor x, y 26.11.2006 - Axel Schmidt / Raphael Schlameuß

LINPACK – Auswertung I Die Ergebnisse lassen sich folgendermaßen Interpretieren total: Ausführungszeit in Sekunden mflops: Millionen Gleitpunktoperationen pro Sekunde Gewichtung der Operationen: add, sub und mul 1 flop div und sqr 4 flop exp, sin, ... 8 flop if-Verzweigung 1 flop Berechnung der mflops durch Division von Anzahl flop durch Laufzeit 26.11.2006 - Axel Schmidt / Raphael Schlameuß

1000s / 1000d 26.11.2006 - Axel Schmidt / Raphael Schlameuß

1000s / 1000d 1000s (single-precision) 1000d (double-precision) ohne Optimierung: Beschleunigung x86  sparc: 1,52 mit Optimierung: Beschleunigung x86  sparc: 0,90 1000d (double-precision) Beschleunigung x86  sparc: 1,51 Beschleunigung x86  sparc: 1,28 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Software Suite LLCbench Low Level Architectural Characterization Benchmark Blasbench xAXPY – Vektoraddition mit Skalar xGEMV – Matrix-Vektor-Multiplikation mit Skalar xGEMM – Matrix-Matrix-Multiplikation mit Skalar Cachebench (Performance Cache) Cache read / hand tuned read Cache write / hand tuned write Cache read/modify/write und hand tuned read/modify/write 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Blasbench SAXPY / DAXPY – Vektoraddition mit Skalar y=A*x+y SGEMV / DGEMV – Matrix-Vektor-Multiplikation mit Skalar y=α*A*x+β*y SGEMM / DGEMM – Matrix-Matrix-Multiplikation mit Skalar C=α*op(A)*op(B)+β*C Matrix A, B, C op(A) = mk-Matrix Skalar α, β op(B) = kn-Matrix Vektor x, y C = mn-Matrix 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Blasbench – SAXPY 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Blasbench - SGEMV 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Blasbench – SGEMM 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Blasbench - DAXPY 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Blasbench - DGEMV 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Blasbench - DGEMM 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Software Cachebench for all vector length Funktion Cache read Durchsatzmessung für verschiedene Vektorlängen Pseudo Code: for all vector length timer start for iteration count for I = 0 to vector length register += memory[I] timer stop mit vector length = [256 Byte .. 1024 KByte] 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Software Cachebench for all vector length Funktion Cache write Durchsatzmessung für verschiedene Vektorlängen Pseudo Code: for all vector length timer start for iteration count for I = 0 to vector length memory[I] = register++ timer stop mit vector length = [256 Byte .. 1024 KByte] 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Software Cachebench for all vector length Funktion Cache read / modify / write Durchsatzmessung für verschiedene Vektorlängen Pseudo Code: for all vector length timer start for iteration count for I = 0 to vector length memory[I]++ timer stop mit vector length = [256 Byte .. 1024 KByte] 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Cachebench – read (single / double) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Cachebench – write (single / double) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Cachebench – read/modify/write (single / double) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Software Cachebench Funktionen HandCache read, HandCache read / modify / write und HandCache write Handmodifizierter Code, um die Optimierung des Compilers zu testen Jede Schleife referenziert 8 Memory-Elemente statt einem (Degree Eight Unrolling) Jede Operation ist unabhängig von den vorherigen 7 Operationen (Dependency Analysis) Register sind Speicherstellen zugewiesen und werden so oft wie möglich benutzt (Register Re-Use) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Cachebench – hand read (single / double) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Cachebench – hand write (single / double) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Cachebench – hand read/modify/write (single / double) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Whetstone / Dhrystone 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Compileroptimierung Whetstone / Dhrystone 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Compileroptimierung x86 Whetstone / Dhrystone 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Compileroptimierung sparc Whetstone / Dhrystone gcc-4.0.2 berücksichtigt die 4 Integer-FU nicht ??? 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Compileroptimierung Whetstone / Dhrystone (gcc-3.4.5 – gcc-4.0.2) Whetstone [MIPS], Dhrystone [1000 Dhrystones/s] 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Zusammenfassung 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Zusammenfassung Unterschiedlich gute Unterstützung des Compilers für die Architektur (trotz Optimierung) Compiler selbst liefert je nach Version unterschiedliche Ergebnisse Anwenderprogramme sind unterschiedlich gewichtet Benchmarks nicht zwingend repräsentativ (beeinflussbar) Unterschiedliche Philosophie der Hersteller von Prozessoren zeigen sich in Benchmarks (Anwendungsgebiete  Software) 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Fragen und Anregungen ? 26.11.2006 - Axel Schmidt / Raphael Schlameuß

Quellen http://www.netlib.org/lapack/ http://www.netlib.org/atlas/ bzw. http://math-atlas.sourceforge.net/ http://www.netlib.org/blas/ http://en.wikipedia.org/wiki/SAXPY http://icl.cs.utk.edu/projects/llcbench/index.html http://www.netlib.org/linpack/ http://www.netlib.org/benchmark/ http://en.wikipedia.org/wiki/Whetstone_(benchmark) http://en.wikipedia.org/wiki/Dhrystone http://gcc.gnu.org/onlinedocs/gcc-4.0.3/gcc/SPARC-Options.html#SPARC-Options http://gcc.gnu.org/onlinedocs/gcc-4.0.3/gcc/i386-and-x86_002d64-Options.html#i386- and-x86_002d64-Options 26.11.2006 - Axel Schmidt / Raphael Schlameuß