ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath

Ähnliche Dokumente
Rechnernetze I. Rechnernetze I. 1 Einführung SS Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Die Thunderbolt Schnittstelle

IO Performance in virtualisierten Umgebungen

Theorie und Einsatz von Verbindungseinrichtungen in parallelen Rechnersystemen

Advanced DAQ System Development Using NI-DAQmx and Intelligent DAQ (FPGA)

Multiuser Client/Server Systeme

TCP/UDP. Transport Layer

Leistungsanalyse von Rechnersystemen

Die Marvel, ein gedrosselter Supercomputer

5. PC-Architekturen und Bussysteme

Are you ready for web.care? Seite ASC Momentum 2013 F+L System AG, CH-Altstätten ASC Automotive Solution Center AG, D- Böblingen

T est of 1GBit/s Fiber optical communication interfaces based on FlexRIO R Series

High Performance Datenerfassung Tests am Beispiel WEGA

Analyse verschiedener HLS-Systeme in Hinblick auf ihren Umgang mit der Hochsprachenabstraktion Speicher. Sascha Kath

Seminar Moderne Konzepte für weitverteilte Systeme SS 02

Fakultät Informatik, Institut für Technische Informatik, Professur für VLSI - EDA. Implementierung eines UDP/IP-Stacks in Hardware.

Protected User-Level DMA in SCI Shared Memory Umgebungen

Grundlagen der Rechnerarchitektur

Netzwerkperformance 2.0

Client: min. Intel Pentium IV oder höher bzw. vergleichbares Produkt

InfiniBand Low Level Protocol

PCI VME Interface SIS1100/SIS3100

Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme

carekundenforum 2013 Virtualisieren spart Geld

Übersicht aktueller heterogener FPGA-SOCs

Untersuchungen zur Genauigkeit von Flow- Erfassungsmechanismen

Performance-Vergleich zwischen dem Open-E NAS Enterprise Server und dem Microsoft Windows Storage Server 2003

Untersuchung zur hardwareunterstützten Entwurfsverifikation von Stream-basierten Kommunikations- und Verarbeitungsalgorithmen

Webserver Performance Tuning

DCCP Datagram Congestion Control Protocol

Parastation3. Design und Implementierung. ALiCE-Seminar 13. November Thomas Moschny

Entwicklung mit Xilinx-FPGAs

Picosafe. Open Source USB-Sticks für Sicherheitsanwendungen. Michael Hartmann 17. März 2013

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

Realisierung eines fernsteuerbaren Testcontrollers für FPGA-basierte Systeme. Kolloquium zum Mastermodul INF-PM-FPG

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

Internetanwendungstechnik (Übung)

Messmethoden zur Eignung von Gigabit-Ethernet für Echtzeit-Anwendungen

Lehrveranstaltung Speichersysteme Sommersemester 2009

Einführung in Peer-To-Peer (P2P) Datenstreaming mit NI FlexRIO

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

IT Performance. Martin Klier Klug GmbH integrierte Systeme, Teunz

HW/SW Codesign 5 - Performance

Vortrag zur Diplomarbeit

UTE - UnternehmerinnenTreff Espelkamp. Herzlich Willkommen. Info-Vortrag: Fragen rund um den PC

User Level Device Driver am Beispiel von TCP

RAID-Optimierungen. ...oder auch nicht... Dirk Geschke. Linux User Group Erding. 28. November 2012

Stud.IP Performance Testing

Grundlagen und Anwendungsgebiete von Chipkarten

Chapter 11 TCP. CCNA 1 version 3.0 Wolfgang Riggert,, FH Flensburg auf der Grundlage von

VS3 Slide 1. Verteilte Systeme. Vorlesung 3 vom Dr. Sebastian Iwanowski FH Wedel

EyeCheck Smart Cameras

Adressauflösung. IP Adresse Physikalische Adresse :FF:AA:36:AB: :48:A4:28:AA:18

Realisierung einer 32'768-Punkt-FFT für 2 GBytes/s Datenrate auf einem FPGA

Storage Area Networks im Enterprise Bereich

Smart Metering im Haushalt. Softwarelösungen Matthias Aebi, futurelab AG / digitalstrom Allianz

Multimedia-Streams: Client-Puffer

ISIS MED Systemanforderungen. Die innovative Software-Lösung für die Arbeitsmedizin und Sozialarbeit

32-Bit Microcontroller based, passive and intelligent UHF RFID Gen2 Tag. Zürcher Fachhochschule

Fachhochschule Augsburg Fachbereich Informatik. Präsentation der Diplomarbeit. zum Thema

TCP/IP-Protokollfamilie

Chapter 9 TCP/IP-Protokoll Protokoll und IP-Adressierung. CCNA 1 version 3.0 Wolfgang Riggert,, FH Flensburg auf der Grundlage von

PXI-Express für Mess-, Prüf- & Testsysteme!

GinLink Interface 1GHz RISC CPU M-RAM High-Speed Feldbus Controller RISC-CPU, 800MHz... 1GHz Bis zu 256 MByte SDRAM

Hardware-Interfaces für FlexRay und CAN

Paravirtualisierung (2)

Netzwerktechnologie 2 Sommersemester 2004

Generalisierung von großen Datenbeständen am Beispiel der Gebäudegeneralisierung mit CHANGE

Systemvoraussetzungen

ÜBUNGEN ZUR VORLESUNG PERFORMANCE VON KOMMUNIKATIONSSYSTEMEN

Caching. Hintergründe, Patterns &" Best Practices" für Business Anwendungen

Virtualisierung: Neues aus 2010 und Trends 2011

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Current Implementations of the Virtual Interface Architecture (VIA)

Systemvoraussetzungen

Systemanforderungen und unterstützte Software

Mobility Support by HIP

LaCie Little Big Disk

Dell Studio XPS Umfassende technische Daten

Summary of Previous Lecture

FlexiScale - Web Hosting mit Cloud-Computing Hochschule Mannheim

SonicWALL WAN Acceleration (WXA) Appliances. SonicWALL Inc.

Vorlesung "Verteilte Systeme" Wintersemester 2000/2001. Verteilte Systeme. Empfänger Kommunikationssystem. Netzwerk

Systemvoraussetzungen sou.matrixx-produkte

Bericht über das Projekt Server

Neue Produkte der Mess- und Prüftechnik in. Dipl.-Ing. (FH) Marian Marcel Olef Applications Engineering National Instruments Germany GmbH

Microsoft Server 2012 Hyper-V Replica für Oracle Database

Systemvoraussetzungen sou.matrixx-produkte

Chronos Software Option: Betriebssystem Windows 7 Professional 64bit vorinstalliert. Computersysteme im Juni. Seite 1: Mini AMD Pc s!

Kingston Technology WHD. November 30, Andreas Scholz, BDM Integration und Server D-A

Learning Suite Talent Suite Compliance Suite. Systemvoraussetzungen

Peripherie Komplexe serielle Schnittstellen

Behandlung von Performance Problemen

Energieeffiziente Empfänger in Sensornetzwerken

1. Erläutern Sie den Begriff Strukturierte Verkabelung

OpenCL Implementierung von OpenCV Funktionen

Systemvoraussetzungen

SAN versus NAS und die Oracle Datenbank. Datenbanken sind unsere Welt

Transkript:

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS Sascha Kath Dresden,

Gliederung 1. Motivation & Zielstellung 2. Systembeschreibung 3. Implementierung und Messungen 4. Auswertung 5. Zusammenfassung & Ausblick Analyse der Latenzen im Kommunikationsstacks Folie Nr. 2 von 38

1. MOTIVATION & ZIELSTELLUNG Analyse der Latenzen im Kommunikationsstacks Folie Nr. 3 von 38

Motivation Beschleunigung von Anwendungen Parallelisierbare Algorithmen auf Hardwarebeschleuniger ausführen Ausführungszeit und Energiebedarf verringern Effizientere Berechnung Ausreichend schnelle Übertragungsraten nötig Analyse der Latenzen im Kommunikationsstacks Folie Nr. 4 von 38

Zielstellung Kommunikationsstack analysieren Flaschenhals identifizieren Möglichkeiten analysieren, um möglichen Flaschenhals zu umgehen Bandbreite besser ausnutzen Analyse der Latenzen im Kommunikationsstacks Folie Nr. 5 von 38

2. SYSTEMBESCHREIBUNG Analyse der Latenzen im Kommunikationsstacks Folie Nr. 6 von 38

FPGA Board - Übersicht [1] Analyse der Latenzen im Kommunikationsstacks Folie Nr. 7 von 38

Kintex 7K325T Übersicht in Zahlen Block RAM Total Block RAM PCIe Lanes Max. Bandbreite 445 x 36 Kbit 16 020 Kbit Gen 2 4 1 GB/s Gen 2: 5 Gbit/s Je 2 Lanes für Hin- und Rückrichtung LaneWidth = 2 Analyse der Latenzen im Kommunikationsstacks Folie Nr. 8 von 38

Kommunikationsstack Analyse der Latenzen im Kommunikationsstacks Folie Nr. 9 von 38

AETest Software [4] Analyse der Latenzen im Kommunikationsstacks Folie Nr. 10 von 38

PCIe OSI Schichten [2] Analyse der Latenzen im Kommunikationsstacks Folie Nr. 11 von 38

Paket Overhead 256 Byte Payload mit 24 Byte Overhead Maximale Effizienz von 91.4 % [3] Analyse der Latenzen im Kommunikationsstacks Folie Nr. 12 von 38

PCIe - Deskriptoren Deskriptor: Beschreibt Daten-Chunk Dword Länge: (Anzahl der 32-Bit-Worte) Board Adress: Byte-Adresse des Nutzer- Adressraums auf dem FPGA-Board PCI Adresse: physische Adresse im Host- Memory Analyse der Latenzen im Kommunikationsstacks Folie Nr. 13 von 38

PCIe - Deskriptoren Adresse in Deskriptor muss auf kontinuierlichen Speicherbereich zeigen 64-Bit-Wort Alignment wichtig Analyse der Latenzen im Kommunikationsstacks Folie Nr. 14 von 38

3. IMPLEMENTIERUNG UND MESSUNGEN Analyse der Latenzen im Kommunikationsstacks Folie Nr. 15 von 38

Hardware-Design FPGA-Aufteilung: 4 Chips mit je 4 Parts 445 Block RAMs je FPGA / 16 27 Block RAMs / Part Jeder Part hat Ein- und Ausgabepuffer 13 Block RAMs / Puffer * 4,5 KB= 58,5 KB Analyse der Latenzen im Kommunikationsstacks Folie Nr. 16 von 38

Hardware-Design 2 Varianten für Messungen verwendet: 1. Gegebene Implementierung mit 4-KiByte- Puffern 2. Verändertes Design mit 72-KiByte-Puffern: Nutzung von LUT RAMs Senden von 64-KiByte-Daten-Chunks möglich Analyse der Latenzen im Kommunikationsstacks Folie Nr. 17 von 38

Software Java DmaLoop: schreibt Sequenznummer, liest diese zurück und vergleicht 3 Varianten: 1. Synchrones Senden 2. Asynchrones Senden über synchronen Kanal 3. Asynchrones Senden über asynchronen Kanal Java DmaEngine: mit und ohne Flusskontrolle Analyse der Latenzen im Kommunikationsstacks Folie Nr. 18 von 38

Synchrones vs. Asynchrones Senden Höhere Bandbreite durch paralleles Senden Analyse der Latenzen im Kommunikationsstacks Folie Nr. 19 von 38

Messungen Vorgehen: 1. Messungen in C++ (Vergleichswerte / praktische Möglichkeiten) 2. Messungen in Java 3. Quelle der Zeitdifferenzen finden 4. Parameteranpassungen, um Bandbreite besser auszunutzen Analyse der Latenzen im Kommunikationsstacks Folie Nr. 20 von 38

Messungen Messungen C++ Java Hersteller Bibliothek Eigene Implementierung Mit Datenflusskontrolle Ohne Datenflusskontrolle Synchrones Senden Asynchrones Senden Synchrones Senden Asynchrones Senden Synchrones Senden Asynchrones Senden Analyse der Latenzen im Kommunikationsstacks Folie Nr. 21 von 38

4. AUSWERTUNG Analyse der Latenzen im Kommunikationsstacks Folie Nr. 22 von 38

C++ Asynchrones Senden (t CPU ) Synchrones Senden (t CPU ) Synchrones Senden (t WCT ) DmaEngine (t WCT ) Bandbreite 980 MB/s 430 MB/s 100 MB/s 80 MB/s Aetest-Funktionen nutzen CPU-Zeit (t CPU ) Aber Wall-Clock-Time (t WCT ) interessant für Applikation Eigene DmaEngine nutzt Funktionen die const char* zurückgeben Analyse der Latenzen im Kommunikationsstacks Folie Nr. 23 von 38

Java mit Flusskontrolle (je 72-KiByte-Puffer) Buffer-Size Synchrones Senden Asynchron (ByteChannel) Asynchron (Asynchronous ByteChannel) 4 KB 25 MB/s 42 MB/s 46 MB/s 8 KB 50 MB/s 70 MB/s 72 MB/s 16 KB 65 MB/s * * 32 KB 85 MB/s * * 64 KB 130 MB/s * * 128 KB 190 MB/s * * * Momentan maximal 8 KB Chunk-Sizes unterstützt Analyse der Latenzen im Kommunikationsstacks Folie Nr. 24 von 38

Synchrones Senden mit Flusskontrolle Analyse der Latenzen im Kommunikationsstacks Folie Nr. 25 von 38

Synchrones Senden mit Flusskontrolle - Nur synchron in Java-App - DmaEngine sendet asynchron C++ Bandbreite deutlich höher Analyse der Latenzen im Kommunikationsstacks Folie Nr. 26 von 38

Zwischenfazit DMA Initialisierung erzeugt hohe Latenz Größere Chunk-Size = höhere Bandbreite Asynchrones Senden erwartungsgemäß schneller, aber zu kleine Chunk-Sizes Ab jetzt Untersuchung der Möglichkeiten Ohne Flusskontrolle Buffer-Size = Chunk-Size Physischer Speicher ungenügend Richtige Datenmenge, aber falsche Daten Analyse der Latenzen im Kommunikationsstacks Folie Nr. 27 von 38

Asynchrones Senden ohne Flusskontrolle Analyse der Latenzen im Kommunikationsstacks Folie Nr. 28 von 38

Synchrones Senden ohne Flusskontrolle Analyse der Latenzen im Kommunikationsstacks Folie Nr. 29 von 38

Synchrones Senden ohne Flusskontrolle - aufgrund des blockierenden Sendens: maximal 457 MB/s - Ab 4 MB über 90 % des Maximums Analyse der Latenzen im Kommunikationsstacks Folie Nr. 30 von 38

Laufzeitdifferenz Java vs. C++ Analyse der Latenzen im Kommunikationsstacks Folie Nr. 31 von 38

Laufzeitdifferenz Java vs. C++ - Konstant erwartet (direkt allokierter ByteBuffer) - Sehr gering im Verhältnis zur gesamten Laufzeit Analyse der Latenzen im Kommunikationsstacks Folie Nr. 32 von 38

Aufruf-Overhead im Kommunikationsstack Analyse der Latenzen im Kommunikationsstacks Folie Nr. 33 von 38

Aufruf-Overhead im Kommunikationsstack - Ab 256 KB Chunk- Size: Overhead < 5% Analyse der Latenzen im Kommunikationsstacks Folie Nr. 34 von 38

5. ZUSAMMENFASSUNG & AUSBLICK Analyse der Latenzen im Kommunikationsstacks Folie Nr. 35 von 38

5. Zusammenfassung & Ausblick 4 PCIe-Lanes (max. 1 GB/s pro Richtung) Konstanter Paket-Overhead Aufteilung in Daten-Chunks Deskriptoren zur Beschreibung Nach Empfang des Deskriptors DMA Größere Chunks = geringere Latenz = höhere Bandbreite Analyse der Latenzen im Kommunikationsstacks Folie Nr. 36 von 38

5. Zusammenfassung & Ausblick Synchrones Senden Bandbreite maximal 457 MB/s Ab 4-MB-Chunk-Size über 90% des Maximums, aber unter theoretischen Möglichkeiten: Bessere Ausnutzung der Bandbreite durch paralleles (asynchrones) Senden: z.z. nur maximal 8-KB-Chunks unterstützt (auf Java- Ebene) Analyse der Latenzen im Kommunikationsstacks Folie Nr. 37 von 38

5. Zusammenfassung & Ausblick Puffern mehrerer großer Chunks: 256 KB: Bandbreite > 50% Größere Puffer nötig externer Speicher 3 x 4 GB DDR3-1600 verfügbar Analyse der Latenzen im Kommunikationsstacks Folie Nr. 38 von 38

Analyse der Latenzen im Kommunikationsstacks Folie Nr. 39 von 38

Quellen [1] DINI Group. DNK7_F5_PCIe Hardware Manual. 2014. URL: http://www.dinigroup.com/product/data/dnk7_f5pcie/files/hardware _Manual_DNK7_F5_PCIe_REV4.pdf (besucht am 27. 02. 2017). [2] Ravi Budruk, Don Anderson und Tom Shanley. PCI express system architecture. Addison-Wesley Professional, 2004. [3] Verien Design Group, LLC. PCIe Packet Encapsulation. 2012. URL: http://www.verien.com/picts/pcie_packet_encapsulation.png (besucht am 27. 02. 2017). [4] DINI Group. AETest Software Manual. 2017. URL: http://www.dinigroup.com/files/web_packs/aetest.zip (besucht am 27. 02. 2017). Analyse der Latenzen im Kommunikationsstacks Folie Nr. 40 von 38