Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
36. Führe Anweisungen auf dem CPU-Datenpfad aus
36. Führe Anweisungen auf dem CPU-Datenpfad aus
Das Video erklärt anhand eines Beispiels für die Durchführung von Akkumulationsoperationen, wie Berechnungen auf einem CPU-Datenpfad ausgeführt werden. Der Datenpfad enthält Lade- und Speichereinheiten zum Laden und Speichern von Daten in den Speicher unter Verwendung von Adressen und Funktionseinheiten wie ALUs zum Ausführen von Operationen. Das Video veranschaulicht den Prozess Schritt für Schritt, einschließlich des Ladens von Daten aus dem Speicher, des Ausführens von Operationen und des Zurückspeicherns der Ergebnisse in den Speicher. Der Referent erklärt auch, wie FPGA verwendet werden kann, um dieselbe Funktion zu implementieren und die verfügbaren Ressourcen in der Hardware optimal zu nutzen.
37. Angepasster Datenpfad auf FPGA
37. Angepasster Datenpfad auf FPGA
Das Video erläutert die Verwendung eines FPGA zur Implementierung der Kernel-Funktion für eine verbesserte Leistung durch Entrollen der CPU-Hardware und Anpassen des Datenpfads auf dem FPGA. Durch Entfernen ungenutzter Einheiten, Laden von Konstanten und Verbindungen und Umplanen einiger Operationen können Ladeoperationen gleichzeitig ausgeführt werden, um die Leistung zu steigern. Das Design angepasster Datenpfade kann den Durchsatz verbessern, die Latenz und den Stromverbrauch reduzieren, indem notwendige Operationen und Daten für eine bestimmte Funktion ausgewählt werden. Das Video zeigt ein Beispiel für eine bedarfsgerechte Addition auf zwei Vektoren, wobei das Ergebnis mithilfe von Registern zwischen den Stufen wieder im Speicher gespeichert wird, um eine effiziente Pipeline und den Start von acht Arbeitselementen für aufeinanderfolgende Additionen zu ermöglichen.
38. OpenCL für FPGA und Data Parallel Kernel
38. OpenCL für FPGA und Data Parallel Kernel
Das Video erklärt, wie OpenCL es FPGA-Ingenieuren ermöglicht, Software-Engineering-Ressourcen zu nutzen, um die Anzahl der FPGA-Anwendungsentwickler zu erweitern, indem sie die parallelen Rechenressourcen auf FPGAs nutzen. Das Programmiermodell von OpenCL ermöglicht die Spezifikation von Parallelität durch die Verwendung von Datenparallelfunktionen, die als Kernel bezeichnet werden, und jeder Kernel verlässt sich auf Kennungen, die durch „Get Global ID“ angegeben werden, um parallele Berechnungen an unabhängigen Datensegmenten durchzuführen. Das Konzept von Threads und Arbeitsgruppen wird eingeführt, bei dem Threads auf verschiedene Teile des Datensatzes zugreifen, die in Arbeitsgruppen unterteilt sind, wobei nur Threads innerhalb derselben Arbeitsgruppe lokalen Speicher gemeinsam nutzen können. Mit diesem Programmiermodell ermöglicht OpenCL eine effiziente Datenparallelverarbeitung.
39. Hostseitige OpenCL-Programmierung: Kontext, Warteschlangen, Speicherobjekte usw.
39. Hostseitige OpenCL-Programmierung: Kontext, Warteschlangen, Speicherobjekte usw.
Dieses Video-Tutorial untersucht verschiedene hostseitige Programmierkonzepte in OpenCL mit Schwerpunkt auf Kontext, Warteschlangen und Speicherobjekten. Es behandelt die beiden neuen APIs in OpenCL, clCreateKernelsInProgram und clSetKernelArg, die verwendet werden, um Kernel-Objekte zu erstellen und Argumente an Kernel-Funktionen zu übergeben. Das Tutorial erläutert auch die Verwendung der clCreateImage-API zum Erstellen von Bildobjekten und wie Bildpixel mithilfe der Kanalreihenfolge und des Kanaltyps im Speicher gespeichert werden. Es erklärt, wie OpenCL mit 2D- und 3D-Bildern umgeht, wie Entwickler Informationen über Speicherobjekte mithilfe von APIs wie clGetMemoryObjectInfo sammeln können und wie Speicherobjektoperationen wie Lesen und Schreiben von Pufferaufzeichnungen, Zuordnen von Speicherobjekten und Kopieren von Daten zwischen Speicherobjekten ausgeführt werden.
40. HDL-Entwurfsfluss für FPGA
40. HDL-Entwurfsfluss für FPGA
Dieses Video erklärt den Entwicklungsprozess von Field Programmable Gate Arrays (FPGAs) mit der Designsoftware Quartus.
Die Designmethodik und Softwaretools für die FPGA-Entwicklung werden erläutert. Der typische Entwurfsablauf für programmierbare Logik beginnt mit einer Entwurfsspezifikation, geht weiter zur RTL-Codierung und dann zur RTL-Funktionssimulation, auf die dann eine Synthese folgt, um das Design in gerätespezifische Grundelemente zu übersetzen. Ingenieure ordnen diese Grundelemente dann bestimmten Stellen innerhalb eines bestimmten FPGAs zu und verifizieren die Leistungsspezifikationen durch Timing-Analyse. Schließlich wird das Design in eine FPGA-Karte geladen und Debugging-Tools können verwendet werden, um es auf Hardware zu testen. Für Intel FPGAs wird die Quartus-Designsoftware verwendet, um den Designablauf durchzuführen, beginnend mit einer Systembeschreibung und weiter zu Logiksynthese, Platzierung und Route, Timing- und Leistungsanalyse und Programmierung des Designs in die eigentlichen FPGAs.
41. OpenCL-Datentypen und Gerätespeicher
41. OpenCL-Datentypen und Gerätespeicher
Das Video behandelt OpenCL-Datentypen und Gerätespeicher. Es behandelt boolesche, ganzzahlige und Gleitkommatypen und erläutert spezifische Datentypen, die verwendet werden, um mit Speicheradressen zu arbeiten, wie z. B. int-ptr, uint-ptr und ptrdiff-t. Außerdem werden Vektordatentypen erläutert, bei denen es sich um Arrays handelt, die mehrere Elemente desselben Typs enthalten, mit denen Operatoren gleichzeitig auf alle Elemente angewendet werden können, und wie sie verwendet werden. Das Video bietet verschiedene Beispiele für die Initialisierung und den Zugriff auf Elemente in einem Vektor, einschließlich der Verwendung von Buchstaben und numerischen Indizes, hoch-niedrig und gerade-ungerade. Es erklärt auch die Speicherausrichtung und die Verwendung von Set-Kernel-Argumenten und privaten Kernel-Argumenten.
42. Relationale OpenCL-Vektoroperationen
42. Relationale OpenCL-Vektoroperationen
Das Video behandelt die OpenCL-Kernel-Programmierung und ihre Operatoren und integrierten Funktionen. Der Fokus liegt auf Vergleichsoperatoren und wie sie mit Skalar- und Vektorwerten arbeiten. Eine beispielhafte Kernelfunktion, "op test", wird vorgestellt, die eine elementweise UND-Operation zwischen einer Konstante und einem privaten Vektor durchführt. Das Video erklärt, wie Sie einen Vektor mit relationalen Operationen in OpenCL implementieren, indem Sie bestimmte Vektorelemente mithilfe logischer Operationen mit einem Skalar vergleichen. Der resultierende Vektor kann in einer While-Schleife verwendet werden, um einen endgültigen Ausgabevektor zu erstellen, der dem Ausgabespeicherobjekt zugewiesen wird.
43. Integrierte OpenCL-Funktionen: vloadn, select
43. Integrierte OpenCL-Funktionen: vloadn, select
Das Video behandelt zwei wichtige integrierte OpenCL-Funktionen: vloadn und select. Vloadn ermöglicht es Ihnen, Stapel mit Werten aus einem skalaren Array zu initialisieren und nimmt zwei Argumente entgegen: Offset und einen Zeiger auf das skalare Array. Mit Auswählen hingegen können Sie bestimmte Elemente aus zwei Stapeln auswählen und diese zum Erstellen eines neuen Vektors verwenden. Es kann ganzzahlige Werte mit oder ohne Vorzeichen enthalten, und nur das höchstwertige Bit in den Maskenelementen zählt. Das Tutorial zeigt, wie diese Funktionen in der Praxis funktionieren.
44. Einführung in DPC++
44. Einführung in DPC++
Dieses Video stellt DPC++ vor, eine Hochsprache für parallele Datenprogrammierung, die komplexe Berechnungen an Beschleuniger wie FPGAs und GPUs auslagert und Teil des OneAPI-Frameworks ist. DPC++ zielt darauf ab, datenparallele Workloads mithilfe von modernem C++ und architekturorientierter Leistungsoptimierung zu beschleunigen. Der Dozent stellt ein einfaches DPC++-Beispiel vor, das demonstriert, wie man Datenverwaltungsvariablen deklariert und eine Kernel-Funktion auf einem Gerät mit einem Befehl und Accessor ausführt. Das Video erklärt auch, wie die Lambda-Funktion Argumente und Referenzen von den außerhalb deklarierten Variablen übernehmen kann.
45. Wie kann man parallel denken?
45. Wie kann man parallel denken?
Das Video lehrt die parallele Programmierung am Beispiel der Matrixmultiplikation. Es hebt die Parallelität in dieser Berechnung hervor, bei der mehrere Zeilen und Spalten unabhängig voneinander berechnet werden können. Die Implementierung einer Einzelelementberechnung in Matrix C wird unter Verwendung einer Kernfunktion gezeigt, die eine parallele Berechnung ermöglicht. Die Verwendung von Accessoren, Bereich und parallelen Kernel-Funktionen wird im Detail erklärt. Die Schritte, die zum Übergeben des Bereichswerts an die Kernelfunktion erforderlich sind, werden erörtert. Eine Demo der Matrixmultiplikation mit der Intel FPGA Dev Cloud wird ebenfalls demonstriert.