fpga gpu co-design - swisst.net...fpga gpu co-design philipp huber zhaw, institute ofembedded...

20
FPGA GPU Co-Design Philipp Huber ZHAW, Institute of Embedded Systems [email protected]

Upload: others

Post on 29-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

FPGA GPU Co-Design

Philipp HuberZHAW, Institute of Embedded Systems

[email protected]

Page 2: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

n Moderne Computer sind Heterogene Systeme• Verwendung von verschiedenen Prozessor-Architekturen, z.B. CPU, GPU,

FPGA• Höhere Rechenleistung durch spezialisierte Prozessoren• Reduzierter Stromverbrauch pro Operation

n Partitionierung von Aufgaben auf Heterogenen Systemenn Kommunikation und Synchronisation zwischen Chips

2019-09-022

Um was geht es

Einleitung Konzept Implementierung Resultate Fazit Schluss

Page 3: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

n Implementierung eines effizienten FPGA-GPU Co-Design• Datenaustausch über PCIe• Synchronisation zwischen FPGA und GPU• Minimale Host-Interaktion

n Beispielanwendung

2019-09-023

Ziel

Einleitung Konzept Implementierung Resultate Fazit Schluss

Resultat an CPUGPU Verarbeitung

FPGA Vorverarbeitung

Kamera 0

Kamera 1

PC

PCIe PCIe

Page 4: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

n PCIe (Peripheral Component Interconnect Express)• Standard zum verbinden von Peripherie-Devices mit dem Chipset• Punkt zu Punkt Verbindungen• 1 bis 16 Data Lanes• Verschiedene Symbolraten möglich• Typische Datenraten: Gen2x4 (16GBit), Gen3x16 (126GBit)

2019-09-024

PCIe

Einleitung Konzept Implementierung Resultate Fazit Schluss

https://en.wikipedia.org/wiki/PCI_Express#/media/File:PCI_Express_logo.svg

Page 5: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-025

Direkter und Indirekter Datentransfer

Einleitung Konzept Implementierung Resultate Fazit Schluss

Page 6: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-026

Linux Memory Management

Einleitung Konzept Implementierung Resultate Fazit Schluss

Linux Memory typische Page-Size: 4kB

MMU

Page 7: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

MMU IOMMU IOMMU MMU

MMU IOMMU IOMMU MMU

2019-09-027

Linux Memory Management

Einleitung Konzept Implementierung Resultate Fazit Schluss

Page 8: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-028

FPGA oder GPU Master Ansatz

Einleitung Konzept Implementierung Resultate Fazit Schluss

n FPGA Master Ansatz• Die DMA Engine ist im FPGA• Die GPU mappt Memory mit GPUDirect RDMA in den IO-Memory Bereich• Das FPGA kann das gemappte GPU RAM lesen und schreiben• Nvidia unterstützt das nur mit Quadro und Tesla GPUs

n GPU Master Ansatz• Das FPGA mappt Memory in den IO-Memory• Die DMA Engine ist in der GPU• Die GPU kann das gemappte FPGA RAM lesen und schreiben

n à FPGA Master bietet bessere Kontrolle über DMA Enginen à FPGA Master erlaubt Systeme ohne CPU Interaktion

Page 9: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-029

FPGA oder GPU Master Ansatz

Einleitung Konzept Implementierung Resultate Fazit Schluss

n FPGA Master Konzepte: • XDMA: Xilinx DMA IP• FDMA: Framebasierte DMA Engine an der ZHAW, InES entwickelt

Page 10: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-0210

XDMA Konzept

Einleitung Konzept Implementierung Resultate Fazit Schluss

n Host synchronisiert FPGA und GPU Prozesse• Jeder Datentransfer wird vom Host initialisiert

Page 11: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-0211

FDMA Konzept

Einleitung Konzept Implementierung Resultate Fazit Schluss

n ZHAW FDMA IP und AXI to PCIe Bridge IP von Xilinx• Unterstützt bis zu 4 RX und 4 TX Buffer

n Host konfiguriert zu Beginn FPGA und GPU • Nach Konfiguration ist keine Host-Interaktion mehr nötig• Synchronisation zwischen FPGA und GPU über Flags im GPU RAM

ZHAW

Page 12: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-0212

Linux Device Treiber und Libraries

Einleitung Konzept Implementierung Resultate Fazit Schluss

n RDMA Device Treiber• Spiegeln von GPU Memory in den IO-Memory

n XDMA Ansatz• XDMA Device Treiber

- Konfiguriert XDMA IP und initialisiert Datentransfer• XMDA-API

- Library für die Verwendung von XDMA und RDMA Funktionalitäten

n FDMA Ansatz• FDMA Device Treiber

- Konfiguriert FDMA IP• FDMA-API

- Library für die Verwendung von FDMA und RDMA Funktionalitäten

Page 13: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-0213

Verwendete Hardware

Einleitung Konzept Implementierung Resultate Fazit Schluss

n Linux Host Computer• Dell Precision Tower 5820• CPU: Intel Xeon quad core E5-1620 v3 @ 3.5GHz• Chipset: Intel C610/X99• PCIe: 2x Gen3x16, 1x Gen3x8, 1x Gen2x4 1x Gen2x1

n GPU• Nvidia Quadro P2000• Cores: 1204 Pascal• Memory: 5GB GDDR5• PCIe: Gen3x16 à 126.03 GBit/s

n FPGA Modul• Enclustra KX1 mit Baseboard PE1• FPGA: Xilinx XC7K325T-2FFG676I• RAM: 2.5GB DDR3• PCIe: Gen2x4à 16 GBit/s

Page 14: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-0214

RDMA und cudaMemcpy

Einleitung Konzept Implementierung Resultate Fazit Schluss

Busauslastung:(Link Speed 126.03 GBit/s)

• cudaMemcpy_gpu2host:Bis 83.5%

• cudaMemcpy_host2gpu:Bis 78.8%

• Direct_cpy_gpu2host:Bis 5.9%

• Direct_cpy_host2gpu:Bis 19.1%

Page 15: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-0215

XDMA und FDMA

Einleitung Konzept Implementierung Resultate Fazit Schluss

Busauslastung:(Link Speed 16 GBit/s)

• xdma_fpga2gpu:Bis 74.6%

• xdma_gpu2fpga:Bis 86.1%

• fdma_fpga2gpu:Bis 72.1%

• fdma_gpu2fpga:Bis 42.7%

Page 16: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

n Gründe für tiefere maximale Busauslastung mit FDMA• AXI to PCIe Bridge IP von Xilinx ist der Flaschenhals• Vermutung: zu wenige Ausstehende Leseanfragen sind unterstütz

n Verbesserungsmöglichkeiten:• AXI to PCIe Bridge IP in UltraScale+ FPGAs testen• Eigene PCIe Implementierung

2019-09-0216

XDMA und FDMA

Einleitung Konzept Implementierung Resultate Fazit Schluss

Busauslastung:(Link Speed 16 GBit/s)

• xdma_fpga2gpu:Bis 74.6%

• xdma_gpu2fpga:Bis 86.1%

• fdma_fpga2gpu:Bis 72.1%

• fdma_gpu2fpga:Bis 42.7%

Page 17: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-0217

XDMA Transfer Jitter

Einleitung Konzept Implementierung Resultate Fazit Schluss

Page 18: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-0218

FDMA Transfer Jitter mit und ohne X11

Einleitung Konzept Implementierung Resultate Fazit Schluss

Page 19: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-0219

Fazit

Einleitung Konzept Implementierung Resultate Fazit Schluss

n XDMA+ Flexible Source, Destination und Transfergrösse+ Effiziente PCIe Implementierung mit Xilinx XDMA IP- Abhängig von Host Reaktivität (nicht Echtzeit tauglich)

n ZHAW FDMA+ Nach Setup keine Host-Interaktion nötig+ Stabile Ausführungszeit, besonders ohne X11 (Echtzeit tauglich)- Nur statische Start- und Ziel-Adressen und Länge möglich, für Stream Verarbeitung aber kein Problem- Langsamerer Lesetransfer (nicht relevant für typische Pipelines)

Page 20: FPGA GPU Co-Design - SwissT.net...FPGA GPU Co-Design Philipp Huber ZHAW, Institute ofEmbedded Systems hubp@zhaw.ch nModerne Computer sind Heterogene Systeme •Verwendung von verschiedenen

2019-09-0220

Anwendung am InES

Einleitung Konzept Implementierung Resultate Fazit Schluss

n Neue ZHAW FPDLink-III Grabber-Karte• 6x1080p@60FPS oder 3x2160p@30FPS über FPDLink-III• 2x2Lane CSI-2 mit max 1.5GHz (Z.B. Raspberry pi Cam)• Enclustra Mercury+ XU8 mit Xilinx Zynq UltraScale+ xczu7ev-2DBVB900I• PCIe Generation 3 mit bis zu 16 Lanes