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
EECE.6540 Heterogene Computing (University of Massachusetts Lowell) - 46. Grundlegende FPGA-Konzepte
46. Grundlegende FPGA-Konzepte
Dieses Video behandelt grundlegende Konzepte von feldprogrammierbaren Gate-Arrays (FPGAs). Im Gegensatz zu CPUs können FPGAs so programmiert werden, dass sie zu bestimmten Hardwareressourcen passen, was bedeutet, dass sie in hohem Maße anpassbar sind. Das Video diskutiert die Bedeutung der Latenz beim Schaltungsdesign und wie sie durch Maximieren von f max ausgeglichen werden kann. Es führt das Konzept des Pipeline-Designs ein, um die Häufigkeit zu erhöhen, mit der eine Berechnung durchgeführt werden kann, und diskutiert Datenpfade und Steuerpfade in einer Schaltung. Schließlich diskutiert das Video die Schaltungsbelegung in einem FPGA und wie abnehmende Blasen und zunehmende Belegung f max erhöhen können.
47. Entwurfsanalyse (I): Analysieren von frühen FPGA-Bildern
47. Entwurfsanalyse (I): Analysieren von frühen FPGA-Bildern
Dieser Abschnitt des Videos konzentriert sich auf den Prozess der Analyse früher FPGA-Images für ein DPC++-Design. Der Referent erklärt die erforderlichen Schritte, wie das Kompilieren des Programms, das Generieren der FPGA-Binärdatei und das Ausführen der Profilerstellung. Das Video enthält eine Demo zur Generierung von Berichten und zur Interpretation der verschiedenen in den Berichten bereitgestellten Informationstafeln. Der Referent analysiert auch die frühen FPGA-Bilder eines b2-Moduls und diskutiert die verschiedenen Logikblöcke, Schleifen, Lasteinheiten und Unroll-Faktoren. Sie diskutieren auch, wie das Design einer Kernel-Funktion das interne Design auf FPGA erheblich beeinflussen kann, und liefern Beispiele dafür, wie die inneren und äußeren Schleifen entrollt werden können, um den Durchsatz zu erhöhen. Die Beispiele veranschaulichen die Flexibilität der Hochsprachenprogrammierung bei der Beeinflussung der Hardware-Ressourcen des FPGA.
48. DPC++ FPGA-Entwurfsanalyse (II): Laufzeitprofilierung
48. DPC++ FPGA-Entwurfsanalyse (II): Laufzeitprofilierung
In diesem Video erläutert der Moderator den Prozess der Analyse der Laufzeitleistung eines Programms mithilfe von Tools, die Leistungsdaten sammeln, indem sie Profiling-Instrumentenregister zu den FPGA-Bitströmen hinzufügen. Sie demonstrieren, wie man für die Profilerstellung kompiliert und die kollektiven Profilerstellungsergebnisse mit dem dynamischen Intel FPGA-Profiler mit vom Benutzer hinzugefügten Leistungsindikatoren interpretiert. Sie zeigen, wie der V2-Profiler Kernelfunktionen und ausführbare Dateien anzeigt, die zum Analysieren von Laufzeit-Profiling-Ergebnissen verwendet werden, und wie Partitionsengpässe identifiziert und optimiert werden können. Das verwendete Beispiel ist ein Matrix-Modifikations-Kernel, der viele Speicherzugriffe auf den globalen Speicher hatte, der durch Verwendung des lokalen Speichers optimiert wurde, um die Kommunikation mit dem globalen Speicher zu reduzieren und die Entwurfseffizienz zu verbessern.
EECE.6540 Heterogene Datenverarbeitung (University of Massachusetts Lowell) – 49. OpenCL-Beispiele
49. OpenCL-Beispiele (I)
Das YouTube-Video „OpenCL-Beispiele (I)“ behandelt die Implementierung der Matrixmultiplikation mit verschachtelten Schleifen in der C-Programmierung und ihre Implementierung als OpenCL-Kernel. Der Dozent erklärt, wie zwei Ebenen von verschachtelten Schleifen für die Punktproduktberechnung des resultierenden Elements in der Matrix verwendet werden und wie jedes Ausgabeelement von Matrix C als separates Arbeitselement in OpenCL behandelt wird. Das Video behandelt auch die Schritte, die erforderlich sind, um den OpenCL-Kernel für die Ausführung vorzubereiten und die resultierende Matrix von einem Gerät auf einen Host abzurufen, sowie das Festlegen von Arbeitsgruppengrößen und das Ausführen des Kernels mit modifizierten Kernel-Argumenten. Darüber hinaus wird ein Beispielcode für die Matrixmultiplikation bereitgestellt, und der Referent demonstriert den Prozess zum Abrufen von Geräte- und Plattform-IDs auf einem Mac OS und zum Erstellen eines Programmobjekts auf verschiedenen Plattformen. Schließlich erklärt das Video die Pufferverwaltung, verfolgt die auf der Hostseite zugewiesenen Ressourcen und die verwendeten OpenCL-Ressourcen und bietet ein einfaches Multiplikations-Kernel-Beispiel.
Dieses Video behandelt verschiedene Beispiele für die Verwendung von OpenCL, einschließlich Matrixmultiplikation, Bilddrehung und Bildfilterung. Bei der Bilddrehung erklärt der Referent, wie das Problem mithilfe der Eingabezerlegung gelöst werden kann, und demonstriert die Kernelfunktion, die zum Identifizieren der ursprünglichen und neuen Position jedes Pixels verwendet wird. Für die Bildfilterung erörtert der Referent das Konzept der Erstellung von Bildobjekten auf der Geräteseite und die Verwendung von OpenCL-Sampler, um zu definieren, wie auf das Bild zugegriffen wird. Sie präsentieren auch eine Beispielimplementierung der Bildfaltungsfunktion mit zwei verschachtelten for-Schleifen. Das Video schließt mit einer Demonstration der Verwendung von OpenCL, um einen Faltungsfilter auf ein Bild anzuwenden und die Ergebnisse zu überprüfen.
Ein Vergleich von SYCL, OpenCL, CUDA und OpenMP für die massiv parallele Support-Vektor-Klassifizierung ( WOCL / SYCLcon 2022 )
Ein Vergleich von SYCL, OpenCL, CUDA und OpenMP für die Massively Parallel Support Vector-Klassifizierung
Das Video vergleicht die Leistung von SYCL, OpenCL, CUDA und OpenMP auf verschiedenen Hardwareplattformen für die massiv parallele Support Vector Machine-Klassifizierung. Der Referent erklärt die Parallelisierung der Matrix-Vektor-Multiplikation mit einer Implementierung namens Parallel Fibonacci, die Multigpu-Ausführung unterstützt, aber nur binäre Klassifikation und dichte Berechnungen. Die zum Testen verwendete Hardware umfasst Nvidia A100 und RTX 380 GPUs, AMD Radeon Pro 7 GPU und Intel Core E9-10-09020X CPU. Die Ergebnisse zeigen, dass CUDA das schnellste Backend für Nvidia-GPUs ist, während OpenCL das schnellste Backend für CPUs ist. SYCL ist benutzerfreundlich, während Hipsicle schneller als DPC++ und OpenCL für eine kostengünstige Nutzung ist. Darüber hinaus erörtert der Redner zukünftige Arbeiten, wie z. B. die Untersuchung der Leistung von FPGAs, das Hinzufügen von Unterstützung für verteilte Systeme über MPIs und die Verwendung gemischter Präzisionsberechnungen und spezieller Hardware für maschinelles Lernen wie die Tensorkerne von NVIDIA.
Erreichen von noch reichhaltigerem C++ in OpenCL-Kerneln mit der Verwendung von libclcxx ( WOCL / SYCLcon 2022 )
Erreichen von noch reichhaltigerem C++ in OpenCL-Kernels mit der Verwendung von libclcxx
Das Video behandelt die Verwendung von libclcxx, um die Integration von C++-Bibliotheken in die Open-Source-Kernel-Entwicklung zu ermöglichen. Das Projekt integriert Type Traits, eine wesentliche Bibliothek für die Metaprogrammierung in C++, mit dem Ziel, Entwicklern mehr C++-Funktionalität zur Verfügung zu stellen. Das Video zeigt, wie die Type-Traits-Bibliothek die Leistung von OpenCL-Kernels durch ihre Fähigkeit, Adressraum und Vektortypen zu manipulieren, optimieren kann. Das Video ermutigt Entwickler, mit der Bibliothek zu experimentieren und zur Verkürzung der Entwicklungszyklen beizutragen, während gleichzeitig maximale Kompatibilität mit C++ erreicht wird. Die Bibliothek bietet Oxygen-Dokumentation in einem ähnlichen Stil wie die C++-Referenzseiten, was es Entwicklern erleichtert, durch die neue Funktionalität zu navigieren.
SYCL über OpenCL hinaus: Die Architektur, der aktuelle Stand und die zukünftige Ausrichtung von hipSYCL ( IWOCL / SYCLcon 2020 )
SYCL über OpenCL hinaus: Die Architektur, der aktuelle Stand und die zukünftige Ausrichtung von hipSYCL
Das hipSYCL-Projekt ist eine Open-Source-Implementierung von SYCL, die GPUs über das HIP-Programmiermodell anstelle von OpenCL anspricht. Es besteht aus einer Compiler-Komponente, einer Sichel-Schnittstelle und einer sicheren Laufzeit. Der sichere Compiler identifiziert Kernel, handhabt die lokale Speicherzuweisung und implementiert einen Signalisierungsmechanismus. Die Dispatch-Funktion erstellt spezifische Artikel basierend auf vom Benutzer bereitgestellten Kerneln, und optimierte Funktionen können mit Rock Prim definiert werden. Die zukünftige Richtung besteht darin, mehrere Back-Ends zuzulassen und Einschränkungen des statischen Kompilierungsmodells aufzuheben. Das Operations-Übermittlungsmodell wird für einen höheren Aufgabendurchsatz auf eine Batch-Übermittlung umgestellt, und hipSYCL ist auf Quellcodeebene interoperabel, was das Mischen und Abgleichen mit hip und CUDA ermöglicht. Als Open-Source-Projekt sind Mitwirkende willkommen.
SYCL: Die Zukunft ist offen, parallel und heterogen (Core C++ 2022 )
SYCL: Die Zukunft ist offen, parallel und heterogen
In diesem Video über die SYCL-Programmierung betont der Redner die Notwendigkeit, die Abstraktionsebene zu erhöhen, um die Produktivität zu steigern und mehr Entwickler anzuziehen, da komplexe Modelle eine höhere Rechenleistung erfordern, die von Beschleunigersystemen erfüllt wird. Die Bedeutung von Softwareportabilität und OneAPI wird betont, da Geräte damit auf CPUs, GPUs und anderen Geräten arbeiten können. Die Vorteile von SYCL, einem offenen, parallelen und heterogenen Programmiermodell, werden ebenfalls diskutiert, wobei der Referent die zahlreichen Online-Ressourcen und Tools hervorhebt, die zur Optimierung des Codes und zur Verbesserung der Leistung verfügbar sind. Der Redner ermutigt die Zuschauer, oneapi.io und ihren YouTube-Kanal zu besuchen, um Ressourcen und Unterstützung zu erhalten.
GPU-Beschleunigung in Python
GPU-Beschleunigung in Python
Das Video erklärt, wie Sie eine GPU-Beschleunigung in der Python-Programmierung erreichen, indem Sie die Leistung von Grafikprozessoren nutzen, die eine bis zu 10-fache Beschleunigung mit Datenparallelität bieten können. Die beiden Standards für GPU-Computing, OpenCL und CUDA, werden kurz vorgestellt, und das Video demonstriert die Verwendung von Pi OpenCL und CUDA für die Matrixmultiplikation in Python. Der Referent erklärt die Verwendung des globalen Speichers und des Kernels für die Matrixmultiplikation und erörtert auch den Algorithmus, der zum Berechnen eines Elements im Matrix-Matrix-Produkt verwendet wird. Der Code für die GPU-Beschleunigung in C und Python wird besprochen, wobei der Schwerpunkt auf dem Verständnis der internen Darstellungen von Matrizen und der Speicherzuweisung liegt. Die Übungen in der Vorlesung bilden eine Grundlage für die weitere Erforschung des GPU-Computing.
OpenCL 3.0 Launch-Präsentation (IWOCL / SYCLcon 2020)
OpenCL 3.0 Launch-Präsentation
Die Einführung von OpenCL 3.0 wird in diesem Video besprochen, wobei der Schwerpunkt auf seiner Bedeutung für die Low-Level-Parallelprogrammierung in der Branche liegt. OpenCL 3.0 fügt der API keine neuen Funktionen hinzu, sondern bietet eine Neuausrichtung des Ökosystems, damit OpenCL mehr Entwickler und Geräte erreichen kann. Der Moderator erörtert auch das Hinzufügen von Erweiterungen für DSP-Light-Prozessoren, die Roadmap für zukünftige Funktionen und das wachsende Ökosystem von Open-Source-Kernelsprachen-Compilern, die Spirit-Kernel für OpenCL Vulcan generieren können. Feedback von Benutzern wird ermutigt, um bei der Fertigstellung der Spezifikation zu helfen, während sich die Arbeitsgruppe auf die erste Implementierungswelle in den nächsten Monaten vorbereitet.