Hardware/Software-Codesign

Slides:



Advertisements
Ähnliche Präsentationen
CPI Der einzelne Befehl braucht immer noch 5 Zyklen (stimmt nicht ganz, einige brauchen weniger!) Was verbessert wird, ist der Durchsatz = #Befehle /
Advertisements

Constantin Timm Informatik 12 TU Dortmund
Kapitel 7 Zu Hause helfen
PC-Cluster.
Peter Marwedel TU Dortmund, Informatik 12
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Kapitel 3 5 Rechnerorganisation
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
Duo- und Quad Prozessor-Architektur
Was passt zusammen? Wie sagt man das auf Deutsch?
Durch die Nacht “through the night” Silbermond
Ich bau eine Stadt für dich “I am building a city for you”
Don`t make me think! A Common Sense Approach to Web Usability
AufwÄrmung A look at the future…..Match the German phrases on the left to the English ones on the right. Do your best; I am grading on participation! Wie.
Damals und Heutzutage By the end of todays lesson you will be able to highlight differences between life now and one hundred years ago. You will also be.
Montag den 16.Dezember Lernziel: To begin stage 2 of preparation for speaking assessment.
You need to use your mouse to see this presentation © Heidi Behrens.
Hardware / Software Codesign Hardware versus Software.
3.4 CPU-Chips und Busse CPU-Chips
CALPER Publications From Handouts to Pedagogical Materials.
Ein Vortrag von Simon Bayer
Ein Projekt des Technischen Jugendfreizeit- und Bildungsvereins (tjfbv) e.V. kommunizieren.de Blended Learning for people with disabilities.
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Multiprozessoren: Herausforderung für die Software
Programmieren in Assembler
Passiv What are these sentences expressing?
EN/FAD Ericsson GmbH EDD/ Information im 21. Jahrundert muss Erwünscht Relevant Erreichbar Schnell Kostenlos!?
Central Processing Unit von David Kleuker und Thomas Auner
Grammy Kritik Projekt Kritik. Hintergrund: You and your partner are Grammy critics talking about the results of the 2014 Grammy’s. This is a 2 – 5 minute.
Trouble with Time Travel Part 2b 2b = to be = sein.
Institut für Angewandte Mikroelektronik und Datentechnik Phase 5 Architectural impact on ASIC and FPGA Nils Büscher Selected Topics in VLSI Design (Module.
Die Fragen Wörter Wer? Was? Wann?.
Der Prozessor Von Stephan Blum.
Institut für Angewandte Mikroelektronik und Datentechnik Course and contest Results of Phase 4 Nils Büscher Selected Topics in VLSI Design (Module 24513)
Literary Machines, zusammengestellt für ::COLLABOR:: von H. Mittendorfer Literary MACHINES 1980 bis 1987, by Theodor Holm NELSON ISBN
Need: paper, coloured pens, glue, dwarf templates, dictionaries, adjective handout, judges hand out, blue tack For gallery – give students blue tack and.
Institut für Angewandte Mikroelektronik und Datentechnik Results of phase 5: Investigations on a specific topic Special Features of the Virtex-6 FPGAs.
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
© Crown copyright 2011, Department for Education These materials have been designed to be reproduced for internal circulation, research and teaching or.
Imperfekt (Simple Past) Irregular or strong verbs
Kapitel 2 Grammar INDEX 1.Subjects & Verbs 2.Conjugation of Verbs 3.Subject Verb Agreement 4.Person and Number 5.Present Tense 6.Word Order: Position of.
Memorisation techniques
Kapitel 8 Grammar INDEX 1.Command Forms: The Du-Command Form & Ihr- Command 2.Sentences & Clauses.
Großvater Großmutter Großvater Großmutter Tante/Onkel Vater Mutter.
Hardware / Software Codesign Hardware versus Software.
© 2014 VMware Inc. All rights reserved. Automatisierung und Verrechnung in einer IoT Cloud am Beispiel von Bosch Private Cloud Costing | Cloud Business.
AMBA AXI4 Aktuelle Trends bei System-on-Chip Bussen.
LLP DE-COMENIUS-CMP Dieses Projekt wurde mit Unterstützung der Europäischen Kommission finanziert. Die Verantwortung für den Inhalt dieser.
Learning Linear Ordering Problems for Better Translation Roy Tromble, Google Pittsburgh Jason Eisner, Johns Hopkins August 7, 2009.
Blowfish mit CUDA Dominik Oepen Inhalt ● Blowfish Grundlagen ● Implementierungsdetails ● Performance ● Fazit.
Interrogatives and Verbs
Die Zukunft The future tense.
Die Umwelt Thema 13 Kapitel 3 (1)
Sentence Structure Connectives
Jetzt machen Venues aufmachen!!! Geh zu
Data Hazards 0x30 sub $6 $0 $1 0x34 add $7 $6 $
Telling Time in German Deutsch 1 Part 1.
THE PERFECT TENSE IN GERMAN
THE PAST TENSE (Part 3) VERBS WHICH TAKE SEIN
Ferrite Material Modeling (1) : Kicker principle
מבוא למערכות מחשב ואסמבלי
Was ist die Verbindung hier?
CSL211 Computer Architecture
THE PAST TENSE (Part 3) VERBS WHICH TAKE SEIN
Practical Exercises and Theory
Niedersächsisches Ministerium
School supplies.
Shared Memory Programmierung: Grundlagen
 Präsentation transkript:

Hardware/Software-Codesign Performance Hardware/Software-Codesign

Bitcoin Mining Bitcoin Transaktionen werden in Blöcken zusammengefasst Miner verifizieren die Blöcke Rate eine Zahl (Nonce) Führe SHA-256 aus auf einen Block mit Nonce Vergleiche ob Ergebnis < Threshold Wiederhole

Bitcoin Mining ArtForz 2010 Mitte Juli: erster Block 25. Juli: 80 MHash/s 4% der Blöcke der letzten 6 Tage 13. Aug: 450 MHash/s 10% der Blöcke 23. Sept: 1.5 GHash/s 15-20% laut Forum 3. Okt: 2 GHash/s 20-30% aller Bitcoins pro Tag 15. Dez: 15,75GHash/s

Bitcoin Mining “We should have a gentleman’s agreement to postpone the GPU arms race as long as we can for the good of the network.” - Satoshi Nakamoto, Dez 2009 “Seriously? What hardware is that?” - Satoshi Nakamoto, Okt 2010

Bitcoin Mining

Bitcoin Mining 2011/12: Problemmigration 2012: ASICs ASIC-Farms Hochleistung-Farms nicht profitabel FPGA-Lösungen bieteten mehr GHash/s zu geringeren Stromkosten Etwa das fünffache an Effizienz 2012: ASICs Drängt alles Andere vom Markt Zehnfache Effizienz zB SC Mini Rig erreichte 1500 GHash/s ASIC-Farms

Was ist besser: CPU, GPU, FPGA oder ASIC? Je nach Anwendung: Kosten Time-to-Market Platz Stromaufnahme Wartbarkeit … Oft ist eine Kombination günstig

Warum liegen GPUs so im Trend? Allgegenwärtigkeit OpenCL, CUDA Aufgabenbereiche Lineare Algebra Partielle Differentialgleichungen Wettervorhersage Quantenmechanik Molekulare Modellierung Kombinatorische Logik …

FPGA vs ASIC FPGA: Time-to-market Designkomplexität Wartbarkeit Upfront-Kosten ASIC: Full-Custom Unitkosten Chipfläche Geschwindigkeit Strombedarf

Wie viel schneller ist eine ASIC? Zuchowski et al. 2003: 250nm bis 90nm Lookup Table Speedup von 12 bis 14 Wilton et al. 2005: Teilbereich in ASIC ersetzt durch FPGA Speedup von 2 Kuon und Rose 2006: 90nm CMOS SRAM-FPGA, 90nm standard-cell ASIC Benchmarks: AES, Raytracer, … Nur Logikelemente: Speedup von 3,2

Was versteht man unter Performance? Geworbene Performance-Steigerung durch Übertaktung des ASUS ROG Rampage V Edition 10

Was versteht man unter Performance? Latenz Response Time CPU Time User vs System CPU Time? MIPS Unterschiedliche Instruktionen Abhängig von CPI Benchmark SPEC: perl, bzip2, gcc, mcf, ... …

Wie beeinflusst man Performance? Intel Core Duo Intel Pentium 4

Wie beeinflusst man Performance? Taktfrequenz Execution Optimization Caching Parallelisierung Abstraktion

Taktfrequenz

Taktfrequenz Critical Path kürzen Kapazitäten verkleinern Physikalische Grenzen? Spannung erhöhen Temperatur? Degradierung?

Wie beeinflusst man Performance? Taktfrequenz Execution Optimization Pipelining Branch Prediction Out-of-Order Execution Effiziente Operationen Caching Parallelisierung Abstraktion

Pipelining Fließband für Instruktionen Throughput, nicht Latenz Taktperiode bestimmt durch aufwändigste Teilaufgabe 1961 IBM Stretch Fetch, Decode, Execute

Pipelining Classic RISC ARM Intel Fetch, Decode, Execute, Memory, Writeback ARM ARM7: Fetch, Decode, Execute Krait: 11 Stages Intel 15+ Stages Dynamisches Scheduling Wert auf Branch Prediction

Pipelining Data Hazards

Wie beeinflusst man Performance? Taktfrequenz Execution Optimization Pipelining Branch Prediction Out-of-Order Execution Effiziente Operationen Caching Parallelisierung Abstraktion

Branch Prediction Instruktionen werden zu jedem Takt geladen Wo werden Branches ausgewertet?

Branch Prediction 2-bit Counter Pattern History Table Nur gut für sehr konsistente branches Pattern History Table Global oder lokal n-bit History (Schieberegister) 2n 2-bit Counter

Branch Prediction Loop Counter Return Stack Buffer Speichert pro Branch: Ob Branch Schleifenverhalten aufweist Periode der Schleife und jetzigen Standpunkt Taken/not taken bei Schleifenende Return Stack Buffer LIFO von return-Adressen Instruktionen können nach CALL geladen werden, bevor RET Instruktion erfolgt Muss gegen return-Adresse am Stack kontrolliert werden

Branch Prediction Beispiel Nehalem: 17 Taktzyklen Misprediction Penalty Loop- und nicht-Loop-Branches separat 32 Loop Counter für Periode bis zu 64 Nested Loops werden richtig predicted Zwei 18-bit History für nicht-Loop-Branches Return Stack Buffer der Größe 16

Wie beeinflusst man Performance? Taktfrequenz Execution Optimization Pipelining Branch Prediction Out-of-Order Execution Effiziente Operationen Caching Parallelisierung Abstraktion

Out-of-Order Execution Instruktionen warten in einem Buffer Ergebnisse von Operationen warten in einem Buffer Chip designers are under so much pressure to deliver ever-faster CPUs that they’ll risk changing the meaning of your program, and possibly break it, in order to make it run faster. - Herb Sutter, The Free Lunch Is Over

Wie beeinflusst man Performance? Taktfrequenz Execution Optimization Pipelining Branch Prediction Out-of-Order Execution Effiziente Operationen Caching Parallelisierung Abstraktion

Effiziente Operationen Optimierte Algorithmen vorhandene Hardware Ergebnismenge Ergebnisfolge int sum = 0; for(int i = 1; i <= n; i++) { sum += i; } return sum; return n*(n+1)/2; return sum_table[n]; sum += n; return sum;

Effiziente Operationen Compileroptimierung Peephole ersetzt mehrere/längere Instruktionen durch einfachere Local strukturiert Basic Blocks um Loop Loop unrolling, invariant code motion, distribution, … Interprocedural Inlining, constant propagation, … Language-dependent Machine-dependent zB XOR a, a um einen Register auf 0 zu setzen

Effiziente Operationen Beispiele aus gcc –O, -O2, -O3 -fomit-frame-pointer -foptimize-strlen -fipa-cp -ftree-loop-distribution -fprefetch-loop-arrays -fguess-branch-probability -funroll-all-loops

Effiziente Operationen Treiberauswahl Benchmarking von nVidia GTX 480 Treibern in Just Cause 2

Effiziente Operationen Realisierung in Hardware AES Verschlüsselung x86 Befehlssatzerweiterung 2008 FPU Library vs Coprozessor vs integriert ARM Jazelle: Hardware-unterstütze JVM

Wie beeinflusst man Performance? Taktfrequenz Execution Optimization Caching Parallelisierung Abstraktion

Caching Optimierung der Speicherzugriffe Hit/Miss Hierarchie Register (~1 ns) L1 Cache (2-8 ns) L2 Cache (5-12 ns) RAM (10-60 ns) HDD (3-10 ms) Write-Through Write-Back

Caching

Caching

Wie beeinflusst man Performance? Taktfrequenz Execution Optimization Caching Parallelisierung Multicore Hardware Software Abstraktion

Multicore “More than Moore” Hyperthreading Multicore Mai 2004 streicht Intel das Tejas-Projekt Hyperthreading Parallelität mehrerer Threads auf einem Kern Multicore Mehrere Kerne Unterstützung von Software/Betriebssystem nötig

Wie beeinflusst man Performance? Taktfrequenz Execution Optimization Caching Parallelisierung Multicore Hardware Software Abstraktion

Hardware Vervielfachung der Einheiten Verteilte Systeme zB Vektorarithmetik (AVX, MMX, SIMD) Verteilte Systeme Overhead durch Message-Passing “Jupiter” TUWien 36x2 8-Core Opteron 6134 Verbunden über Ethernet Switch

Wie beeinflusst man Performance? Taktfrequenz Execution Optimization Caching Parallelisierung Multicore Hardware Software Abstraktion

Software Revolution der Entwicklungsparadgigmen Zunehmend aufwändige Programme; die Hardware kommt nicht mit Abstraktion für Developer: Threads, Fork, … Cilk, pThreads, MPI, … Nachteile: Synchronisierung Race Conditions Deadlocks Amdahl’s Law

Wie beeinflusst man Performance? Taktfrequenz Execution Optimization Caching Parallelisierung Abstraktion

Abstraktion Memory Protection Scheduling Unified Shader Model Verbessert Wall-Clock Execution Time Unified Shader Model Jede Einheit kann alle Befehle ausführen Notwendig durch sich ändernde Anforderungen DX11/DX12 Draw Calls Schlechtes Batching führte zu Stutters

Quellen Preshing.com. A Look Back at Single-Threaded CPU Performance. 2012. http://preshing.com/20120208/a-look-back-at-single-threaded- cpu-performance/ Herb Sutter. The Free Lunch Is Over. 2005. http://www.gotw.ca/publications/concurrency-ddj.htm Joel Hruska. The Death of CPU scaling: From one core to many – and why we’re still stuck. 2012. https://www.extremetech.com/computing/116561-the-death-of- cpu-scaling-from-one-core-to-many-and-why-were-still-stuck Mark Bohr et al. The High-k Solution. 2007. http://spectrum.ieee.org/semiconductors/design/the-highk- solution D. Patterson, J. Hennessey. Computer Architecture and Design. 2012.

Quellen Gnu.org. Options That Control Optimization. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html Arm Architecture Overview. https://web.eecs.umich.edu/~prabal/teaching/eecs373- f11/readings/ARM_Architecture_Overview.pdf UMB.edu. CS641 Class 25 Pipelining. http://www.cs.umb.edu/cs641/notes25.html Jeff Brown. Pipelining: Branch Hazards. 2006. https://cseweb.ucsd.edu/classes/su06/cse141/slides/s11- chazard_adv-1up.pdf Agner Fog. The microarchitecture of Intel, AMD and VIA CPUs. 2016. http://www.agner.org/optimize/microarchitecture.pdf

Quellen cs.Washington.edu. 2006. https://courses.cs.washington.edu/courses/csep548/06au/lectures /introOOO.pdf Jon Stokes. Understanding CPU caching and performance. 2002. http://arstechnica.com/gadgets/2002/07/caching/ J. Palacios, J. Triska. A Comparison of Modern GPU and CPU Architectures: And the Common Convergence of Both. 2011. http://cours.do.am/ParadigmeAgent/final.pdf Scott Michaud. What Exactly is a Draw Call (and What Can It Do)? 2015. https://www.pcper.com/reviews/Editorial/What-Exactly-Draw-Call- and-What-Can-It-Do I. Kuon, J. Rose. Measuring the Gap between FPGAs and ASICs. 2006. http://www.eecg.toronto.edu/~jayar/pubs/kuon/kuonfpga06.pdf

Quellen Xilinx. FPGA vs. ASIC. https://www.xilinx.com/fpga/asic.htm Hilbert Hagedoorn. Radeon HD 5970 Overclocking Guide. 2009. https://www.guru3d.com/articles-pages/radeon-hd-5970- overclocking-guide,1.html Vincent Hindriksen. The 13 application areas where OpenCL can be used. 2013. https://streamcomputing.eu/blog/2013-06-03/the-application- areas-opencl-can-be-used/ Anand Lal Shimpi. Nehalem Part 3: The Cache Debate, LGA-1156 and the 32nm Future. 2008. http://www.anandtech.com/show/2671 Forklog.net. The Brief History of Bitcoin Mining: How It All Started. 2016. http://forklog.net/bitcoin-mining-past-present-and-future/

Quellen Tim Swanson. How ArtForz changed the history of Bitcoin mining. 2014. http://www.ofnumbers.com/about-the-author/