Politecnico di Milano
Entwicklung von FPGA-beschleunigten Cloud-Anwendungen mit SDAccel: Theorie
Politecnico di Milano

Entwicklung von FPGA-beschleunigten Cloud-Anwendungen mit SDAccel: Theorie

4.029 bereits angemeldet

Bei Coursera Plus enthalten

Verschaffen Sie sich einen Einblick in ein Thema und lernen Sie die Grundlagen.
4.7

(76 Bewertungen)

Stufe Mittel

Empfohlene Erfahrung

Es dauert 19 Stunden
3 Wochen bei 6 Stunden pro Woche
Flexibler Zeitplan
In Ihrem eigenen Lerntempo lernen
Verschaffen Sie sich einen Einblick in ein Thema und lernen Sie die Grundlagen.
4.7

(76 Bewertungen)

Stufe Mittel

Empfohlene Erfahrung

Es dauert 19 Stunden
3 Wochen bei 6 Stunden pro Woche
Flexibler Zeitplan
In Ihrem eigenen Lerntempo lernen

Was Sie lernen werden

  • Die Theorie, wie man FPGA-beschleunigte Anwendungen mit SDAccel entwickelt.

Kompetenzen, die Sie erwerben

  • Kategorie: Grundsätze der Programmierung
  • Kategorie: Computer Architektur
  • Kategorie: Konzepte der Programmiersprache

Wichtige Details

Zertifikat zur Vorlage

Zu Ihrem LinkedIn-Profil hinzufügen

Bewertungen

7 Aufgaben

Unterrichtet in Englisch

Erfahren Sie, wie Mitarbeiter führender Unternehmen gefragte Kompetenzen erwerben.

Platzhalter
Platzhalter

Erwerben Sie ein Karrierezertifikat.

Fügen Sie diese Qualifikation zur Ihrem LinkedIn-Profil oder Ihrem Lebenslauf hinzu.

Teilen Sie es in den sozialen Medien und in Ihrer Leistungsbeurteilung.

Platzhalter

In diesem Kurs gibt es 6 Module

Seit Mitte der 1980er Jahre hat sich das rekonfigurierbare Computing dank der Fortschritte in der FPGA-Technologie zu einem beliebten Bereich entwickelt. Ein FPGA ist ein Halbleiterbaustein, der programmierbare Logikkomponenten und programmierbare Verbindungen enthält, aber keine Befehle zur Laufzeit abruft, d.h. FPGAs haben keinen Programmzähler. In den meisten FPGAs können die Logikkomponenten so programmiert werden, dass sie die Funktionalität von grundlegenden Logikgattern oder funktionalen Intellectual Properties (IPs) duplizieren. FPGAs enthalten auch Speicherelemente, die aus einfachen Flip-Flops oder komplexeren Speicherblöcken bestehen. FPGAs ermöglichen also die dynamische Ausführung und Konfiguration von Hardware und Software auf einem einzigen Chip. Dieses Modul bietet eine detaillierte Beschreibung der FPGA-Technologien, angefangen von einer allgemeinen Beschreibung bis hin zur Diskussion der Low-Level-Konfigurationsdetails dieser Bausteine, der Bitstream-Zusammensetzung und der Beschreibung der Konfigurationsregister.

Das ist alles enthalten

9 Videos2 Aufgaben

Die Xilinx SDAccel Entwicklungsumgebung ermöglicht es dem Benutzer, Kernel in OpenCL C, C++ und RTL (als Beispiel können wir an SystemVerilog, Verilog oder VHDL denken) zu formulieren, die auf den programmierbaren Plattformen von Xilinx laufen. Die programmierbare Plattform besteht aus (1) dem SDAccel Xilinx Open Code Compiler (XOCC), (2) einem Device Support Archive (DSA), das die Hardwareplattform beschreibt, (3) einer Softwareplattform, (4) einem Accelerator Board und5. nicht zuletzt der SDAccel OpenCL Laufzeitumgebung. In diesem Modul werden wir nach einer Einführung in OpenCL sehen, wie diese Sprache in SDAccel eingesetzt wurde und welche Hauptkomponenten diese Toolchain hat.

Das ist alles enthalten

7 Videos1 Lektüre1 Aufgabe

In diesem Modul werden wir, bevor wir uns mit der Optimierung befassen, zunächst verstehen, wie ein FPGA funktioniert, auch vom rechnerischen Standpunkt aus gesehen. Obwohl der traditionelle FPGA-Designablauf eher einem regulären IC als einem Prozessor ähnelt, bietet ein FPGA erhebliche Kostenvorteile im Vergleich zu einem IC-Entwicklungsaufwand und bietet in den meisten Fällen das gleiche Leistungsniveau. Ein weiterer Vorteil von FPGAs gegenüber ICs ist ihre Fähigkeit, dynamisch rekonfiguriert zu werden. Dieser Prozess, der dem Laden eines Programms in einen Prozessor entspricht, kann einen Teil oder die Gesamtheit der in der FPGA-Fabric verfügbaren Ressourcen betreffen. Im Vergleich zu Prozessorarchitekturen ermöglichen die Strukturen, aus denen die FPGA-Fabric besteht, ein hohes Maß an Parallelität bei der Anwendungsausführung. Die benutzerdefinierte Verarbeitungsarchitektur, die von SDAccel für einen OpenCL-Kernel erzeugt wird, stellt ein anderes Ausführungsparadigma dar. Dies muss bei der Entscheidung, eine Anwendung von einem Prozessor auf ein FPGA zu portieren, berücksichtigt werden. Um ein solches Szenario besser zu verstehen, werden wir kurz die sequentielle Ausführung auf einem Prozessor mit der inhärenten Parallelität einer FPGA-Implementierung vergleichen. Darüber hinaus werden wir uns in diesem Modul mit dem Ablauf der Anwendungsoptimierung vertraut machen. Die Xilinx SDAccel-Umgebung ist eine vollständige Software-Entwicklungsumgebung zum Erstellen, Kompilieren und Optimieren von OpenCL-Anwendungen, die auf Xilinx FPGAs beschleunigt werden sollen. Aus der Perspektive eines Entwicklers können wir den Ablauf der Optimierung einer Anwendung in der SDAccel-Umgebung in drei Phasen einteilen. Diese drei Phasen sind: (1) Baselining der Funktionalitäten und der Leistung, (2) Optimierung der Datenbewegung und (3) Optimierung der Kernel-Berechnungen

Das ist alles enthalten

5 Videos1 Lektüre1 Aufgabe

In diesem Modul werden wir die verfügbaren SDAccel-Optimierungen aus der Vogelperspektive betrachten. Die vorgestellten Optimierungen sind nicht die einzigen verfügbaren, sondern stellen eher eine Liste von Empfehlungen zur Optimierung der Leistung einer OpenCL-Anwendung dar, die als Ausgangspunkt für weitere Überlegungen oder Untersuchungen dienen sollen. In diesem Zusammenhang werden wir diese "Empfehlungen" in drei Gruppen von Optimierungen einteilen: (1) arithmetische Optimierungen, (2) datenbezogene Optimierungen und schließlich (3) speicherbezogene Optimierungen.

Das ist alles enthalten

6 Videos2 Lektüren1 Aufgabe

Nach einer allgemeinen Beschreibung der möglichen Optimierungen werden wir uns in diesem Modul auf vier spezifische Optimierungen konzentrieren (1) Schleifenabrollung, (2) Schleifen-Pipelining, (3) Array-Partitionierung und (4) die Host-Optimierungen. Zunächst werden wir das Abrollen von Schleifen beschreiben, d.h. das Abrollen der Schleifeniterationen, so dass die Anzahl der Iterationen der Schleife reduziert wird und der Schleifenkörper zusätzliche Berechnungen durchführt. Diese Technik ermöglicht es, zusätzliche Parallelität auf Anweisungsebene freizulegen, die Vivado HLS zur Implementierung des endgültigen Hardwaredesigns nutzen kann. Danach stellen wir die Schleifen-Pipelining-Optimierung vor, bei der wir von einer sequentiellen Ausführung der Schleifeniterationen zu einer Pipelining-Ausführung übergehen, bei der sich die Schleifeniterationen zeitlich überlappen. Danach stellen wir die Optimierung der Array-Partitionierung vor, mit der die Nutzung der BRAM-Ressourcen optimiert werden kann, um die Leistung des Kernels zu verbessern. Am Ende dieses Moduls werden wir Optimierungen im Zusammenhang mit dem Hostsystem besprechen, das für die Übertragung der Daten zum und vom FPGA-Board sowie für das Senden des Befehls zum Starten der Ausführung eines Kernels verantwortlich ist.

Das ist alles enthalten

6 Videos2 Lektüren1 Aufgabe

Das ist alles enthalten

3 Videos1 Lektüre1 Aufgabe

Dozent

Lehrkraftbewertungen
4.5 (15 Bewertungen)
Marco Domenico Santambrogio
Politecnico di Milano
5 Kurse21.921 Lernende

von

Empfohlen, wenn Sie sich für Design und Produkt interessieren

Warum entscheiden sich Menschen für Coursera für ihre Karriere?

Felipe M.
Lernender seit 2018
„Es ist eine großartige Erfahrung, in meinem eigenen Tempo zu lernen. Ich kann lernen, wenn ich Zeit und Nerven dazu habe.“
Jennifer J.
Lernender seit 2020
„Bei einem spannenden neuen Projekt konnte ich die neuen Kenntnisse und Kompetenzen aus den Kursen direkt bei der Arbeit anwenden.“
Larry W.
Lernender seit 2021
„Wenn mir Kurse zu Themen fehlen, die meine Universität nicht anbietet, ist Coursera mit die beste Alternative.“
Chaitanya A.
„Man lernt nicht nur, um bei der Arbeit besser zu werden. Es geht noch um viel mehr. Bei Coursera kann ich ohne Grenzen lernen.“

Bewertungen von Lernenden

Zeigt 3 von 76

4.7

76 Bewertungen

  • 5 stars

    76,31 %

  • 4 stars

    22,36 %

  • 3 stars

    0 %

  • 2 stars

    1,31 %

  • 1 star

    0 %

MM
5

Geprüft am 16. Jan. 2020

TK
5

Geprüft am 20. Juni 2020

YI
4

Geprüft am 23. März 2020

Platzhalter

Neue Karrieremöglichkeiten mit Coursera Plus

Unbegrenzter Zugang zu über 7.000 erstklassigen Kursen, praktischen Projekten und Zertifikatsprogrammen, die Sie auf den Beruf vorbereiten – alles in Ihrem Abonnement enthalten

Bringen Sie Ihre Karriere mit einem Online-Abschluss voran.

Erwerben Sie einen Abschluss von erstklassigen Universitäten – 100 % online

Schließen Sie sich mehr als 3.400 Unternehmen in aller Welt an, die sich für Coursera for Business entschieden haben.

Schulen Sie Ihre Mitarbeiter*innen, um sich in der digitalen Wirtschaft zu behaupten.

Häufig gestellte Fragen