Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.)



Ähnliche Dokumente
Lehrer: Einschreibemethoden

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Nutzung von GiS BasePac 8 im Netzwerk

Datenexport aus JS - Software

Benutzerhandbuch - Elterliche Kontrolle

Systemvoraussetzung < zurück weiter >

1. Legen Sie die mitgelieferte CD in ihr Laufwerk des PC, diese startet dann automatisch mit folgenden Fenster, klicken Sie nun English an.

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

Professionelle Seminare im Bereich MS-Office

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Datenbanken Kapitel 2

Kundenspezifische Preise im Shop WyRu Online-Shop

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Einzel- s und unpersönliche Massen-Mails versenden

Autoradio On Off Schaltung

Speicher in der Cloud

ecaros2 - Accountmanager

Dokumentenverwaltung im Internet

Bereich METIS (Texte im Internet) Zählmarkenrecherche

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Internet online Update (Mozilla Firefox)

Mandant in den einzelnen Anwendungen löschen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Kontakte Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Ein neues System für die Allokation von Spenderlungen. LAS Information für Patienten in Deutschland

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Einführung in die technische Informatik

Webalizer HOWTO. Stand:

Zwischenablage (Bilder, Texte,...)

Hilfe zur ekim. Inhalt:

Arbeitsgruppen innerhalb der Website FINSOZ e.v.

Leitfaden: geoport in FlowFact

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

HamburgService Registrierung für die Online-Dienste Gutachterverfahren (GUV) und Gutachterinformationssystem (GIS)

Einführungskurs MOODLE Themen:

Zusammenführen mehrerer Dokumente zu einem PDF In drei Abschnitten erstellen Sie ein Dokument aus mehreren Einzeldokumenten:

II. Daten sichern und wiederherstellen 1. Daten sichern

Terminabgleich mit Mobiltelefonen

Erweiterungen Webportal

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Webseiten mit fragwürdigen Aufrufen von "spy & track" - Unternehmen

CodeSaver. Vorwort. Seite 1 von 6

SMS/ MMS Multimedia Center

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

1 Belastung. 1.1 Standortbestimmung 1.2 Belastungsvorhersage 1.3 Favoriten

Anleitung zum Computercheck So aktualisieren Sie Ihr Microsoft-Betriebssystem

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Anleitung über den Umgang mit Schildern

Mikrocontroller Grundlagen. Markus Koch April 2011

Umzug der abfallwirtschaftlichen Nummern /Kündigung

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Motorsegler Reservierungs-System. Reservierungsplatz

Angebot. UVV-Prüfungen und Wartungen von mobilen Abfallpressen

Vertrag zwischen. der AOK Berlin - Die Gesundheitskasse - und der Kassenärztlichen Vereinigung Berlin (KV)

Der neue persönliche Bereich/die CommSy-Leiste

Scala kann auch faul sein

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Leitfaden zur Moduleinschreibung

Externe Abfrage von für Benutzer der HSA über Mozilla-Thunderbird

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Windows Server 2008 (R2): Anwendungsplattform

Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen

Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.

Installationsanleitung

Klausur in 13.1 Thema: Das Internet (Bearbeitungszeit: 90 Minuten)

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Dann zahlt die Regierung einen Teil der Kosten oder alle Kosten für den Dolmetscher.

Benutzerhandbuch für Hundehalter

Lieferschein Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Synchronisations- Assistent

Information zum Projekt. Mitwirkung von Menschen mit Demenz in ihrem Stadtteil oder Quartier

Erfahrungen mit Hartz IV- Empfängern

Die Statistiken von SiMedia

Feiertage in Marvin hinterlegen

Angebot. UVV-Prüfungen und Wartungen von mobilen Abfallpressen

ICS-Addin. Benutzerhandbuch. Version: 1.0

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Deutsches Rotes Kreuz. Kopfschmerztagebuch von:

Leitfaden Internet-Redaktion kursana.de

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server

Gezielt über Folien hinweg springen

Hinweise in Leichter Sprache zum Vertrag über das Betreute Wohnen

Eingangsseite Umwelt-online

Cisco AnyConnect VPN Client - Anleitung für Windows7

Integrated Services Realtime Remote Network

Drucken aus der Anwendung

104 WebUntis -Dokumentation

Updatehinweise für die Version forma 5.5.5

Code-Rally. Die QR-Code. Rallye. /%194U_%28u&. Wenn Sie eine solche Seite aufrufen wollen, schleichen sich schnell. Seite 1.

Fragebogen zur Diplomarbeit von Thomas Friedrich

Anleitung zum Hochladen von Bilddateien in die Bilderverwaltung des CVJM Mössingen

Navigieren auf dem Desktop

Das neue Tech Data Software Download Portal

Transkript:

Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.) von Martin Stöcker Motivation Geschwindigkeit der Prozessoren verdoppelt sich alle 18 Monate (Moore s Law) Geschwindigkeit des Speichers wird im Jahr um ca. 7 % erhöht Processor-Memory Performance Gap verdoppelt sich alle 21 Monate Seit 20 Jahren werden Caches genutzt, um das Geschwindigkeits-Problem zu überbrücken Trotzdem entstehen bei vielen Applikationen Wartezeiten zwischen Prozessor und Speicher Cache muss effizienter ausgenutzt werden

Cache Prinzip Mehrere Cache-Levels sind vorhanden, wobei jedes Level eine bestimmte Größe und Geschwindigkeit hat. Beispiel: L1 = 16 KB, 1 ns L2 = 256 KB, 10 ns Speicher = 512 MB, 100 ns Optimierungsstrategie Performance-Steigerung durch holen der Daten aus dem Prozessor-Cache anstatt aus dem Hauptspeicher Daten müssen in den Prozessor gebracht werden, bevor sie benötigt werden Unterstützung durch Streaming SIMD Extensions, die sogenannte Prefetch- Instruktionen bereitstellen Durch Prefetch-Operationen soll die Wartezeit des Prozessors auf den Speicher eliminiert werden

Prefetch Instruktionen Einfügen der Prefetch Instruktionen von Compiler oder Programmierer Zugriff auf ein Minimum von einer Cache-Line von Daten (128 byte im Pentium 4), vor den aktuell benötigten Daten Lange, reguläre Datenmuster bearbeitet der automatische Hardware-Prefetcher, Software Prefetching wird nicht benötigt Data Reference Patterns: Temporal Spatial Non-Temporal Software Data Prefetch Prinzip : Wenn du dazu länger brauchst, dann fang früher damit an Bald benötigte Speicherinhalte werden schon früher beim Speichersubsystem angefordert, sodass sie rechtzeitig zur Verfügung stehen, ohne Prozessor zu blockieren Angeforderte Werte werden im Cache Speicher abgelegt Prefetch Instruktion lädt temporäre oder nicht-temporäre Daten in den spezifizierten Cache-Level Datenzugriffstyp und Cache-Level werden von der Instruktion spezifiziert Prefetch Instruktion ist implementierungsspezifisch Prefetch Instruktion geben lediglich einen Hinweis an die Hardware und generieren keine Exceptions oder Fehler Exzessive Implementierung von Prefetches kann Speicherbandbreite vergeuden und führt zu Performaceverlust Prefetches vermindern Overhead in Speichertransaktionen und verbergen Speicherlatenzen in den Hintergrund

Software Data Prefetch Grundvorraussetzungen zur Implementierung: Prozessor muss einen speziellen Prefetch-Befehl bereitstellen Cache muss nicht-blockierend sein Speicherstellen, auf die in Kürze zugegriffen wird, lassen sich im Voraus bestimmen Weitere Charakteristiken: Kann mit irregulären access patterns umgehen Kann weniger Bus Bandbreite nutzen Muss zu neuem Code hinzugefügt werden Hardware Data Prefetch Charakteristiken: Automatischer Prefetcher überwacht data access patterns und prefetcht Daten automatisch ohne Eingriff des Progammierers Hardware Prefetch hilft, wenn Software auf große Speicherblöcke zugreift und diese Blöcke sequentiell und in aufsteigender Reihenfolge durchläuft (Datenlokalität) Hardware Prefetcher versucht 256 bytes oberhalb der aktuellen Datenzugriffs- Locations zu bleiben Arbeitet mit existierenden Applikationen Braucht reguläre access patterns Benötigt einige Cache-Misses, bevor er beginnt zu arbeiten

PREFETCHh Instructions: PREFETCHNTA PREFETCHT0 PREFETCHT1 PREFETCHT2 Pentium 4 Processor Implementation Hints sind: T0 (temporal data) - prefetch data into all levels of the cache hierarchy. T1 (temporal data with respect to first level cache) - prefetch data into level 2 cache and higher. T2 (temporal data with respect to second level cache) - prefetch data into level 2 cache and higher. NTA (non-temporal data) Fetch the data into the second-level cache, minimizing cache pollution. Prefetch Implementation in PIII and P4 Prefetch type Pentium III P4 PrefetchNTA Fetch 32 bytes Fetch 128 bytes Fetch into L1 only Fetch only into 1 way of L2 PrefetchT0 Fetch 32 bytes Fetch 128 bytes Fetch into L1 and L2 Fetch into L2 PrefetchT1, Fetch 32 bytes Fetch 128 bytes PrefetchT2 Fetch into L2 only Fetch into L2 only

Latency Hiding with SW Prefetching Ohne Prefetch: Mit Prefetch: Prefetching Usage Checklist 1. Prefetch Scheduling Distance herausfinden 2. Prefetch Concatenation benutzen 3. Anzahl der Prefetches minimieren 4. Prefetch mit Programmcode mischen 5. Cache blocking Techniken verwenden (z.b. strip mining)

1. Prefetch Scheduling Distance Eingefügte Prefetch-Befehle könnten im Programmcode überflüssig sein und unnötig Overhead produzieren Gründe können sein: Speicherinhalt wird schon vor seiner Verwendung wieder aus Cache geworfen Prefetch-Operation wird zu kurz vor der Verwendung des Datums eingefügt Speicherinhalt ist bereits im Cache, Prefetch-Operation ist überflüssig Ergebnis: 1. Alle Referenzen auf den Hauptspeicher finden 2. Analyse, ob für sie ein Prefetching notwendig oder überflüssig ist 3. Für alle notwendigen Prefetches muss der optimale Zeitpunkt ermittelt werden 1. Prefetch Scheduling Distance Psd = prefetch scheduling distance Nlookup = Anzahl der Takte für Lookup-Latenzen Nxfer = Anzahl der Takte um eine Cache-Line zu übertragen N pref und N st = Anzahl der Cache Lines, die geprefecht und gespeichert werden sollen CPI = Anzahl der Takte pro Instruktion N inst = Anzahl der Instruktionen im Bereich einer Schleifeniteration

1. Prefetch Scheduling Distance Nachteile der Näherungsformel: Gelten nur für einen Prefetch, nicht für mehrere Datenströme gleichzeitig Informationen werden benötigt, die in der Regel nicht verfügbar sind Ergebnis : Durch Ausprobieren eine geeignete Prefetchentfernung finden Als Faustregel gilt, dass die Prefetchdistanz groß genug sein muss um die Daten vor der Bearbeitung im Cache zu haben und klein genug damit die Daten nicht schon wieder ersetzt wurden wenn sie benötigt werden. Ist dies nicht der Fall sind Prefetches eher kontraproduktiv. 2. Prefetch Concatenation Ohne Prefetch Concatenation Mit Prefetch Concatenation und Loop Unrolling for (ii = 0; ii < 100; ii++) { for (ii = 0; ii < 100; ii++) { for (jj = 0; jj < 32; jj+=8) { for (jj = 0; jj < 24; jj+=8) { prefetch a[ii][jj+8]; prefetch a[ii][jj+8]; computation a[ii][jj]; computation a[ii][jj]; } } } prefetch a[ii+1][0]; computation a[ii][jj]; }

3. Minimize Number of Prefetches Prefetch Instruktionen sind nicht komplett frei bezogen auf Buszyklen, Maschinenzyklen und Ressourcen Performanceverlust bei exzessiver Benutzung der Prefetch Operation z.b. in kleinen Schleifen Besser: Loop Unrolling und/oder Software-Pipelining, um Anzahl der Prefetches gering zu halten 4. Mix Prefetch with Computation Instructions Prefetch Instruktionen sollten nicht vor einer Schleife oder am Anfang eines Schleifenrumpfes angehäuft werden Bestmögliche Performance, wenn Prefetch Instruktionen mit Programmcode vermischt werden Nützliche Heuristik beim Pentium 4 ist, Prefetch Instruktionen auf alle 20-25 Takte zu setzen

5. Prefetch and Cache Blocking Techniques Cache Blocking Techniken verbessern die Cache Hit Rate Strip Mining: Datenmengen, die größer sind als der Cache werden in kleinen Gruppen verarbeitet, die in den Cache passen. Dies erlaubt temporären Daten, länger im Cache zu bleiben um somit den Datenverkehr im Bus zu entlasten 5. Prefetch and Cache Blocking Techniques Ohne Strip Mining: Mit Strip Mining: