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
AMD Developer Central: Technischer Überblick über OpenCL. Folge 2: Was ist OpenCL™? (Fortsetzung)
AMD Developer Central: Technischer Überblick über OpenCL. Folge 2: Was ist OpenCL™? (Fortsetzung)
In diesem Video erläutert Justin Hensley die Plattform- und Speichermodelle von OpenCL, die bei der Verwendung von OpenCL zur Beschleunigung von Anwendungen unbedingt zu verstehen sind. Er erklärt, dass ein Host mit einem oder mehreren OpenCL-Geräten wie GPUs oder Mehrkernprozessoren verbunden ist, die über Recheneinheiten verfügen, die Code in einem Datenmodell mit einer einzigen Anweisung und mehreren Daten ausführen. Arbeitselemente verfügen über privaten Speicher, während Arbeitsgruppen über gemeinsam genutzten lokalen Speicher verfügen, jedes Gerät über globalen und konstanten Speicher verfügt und Entwickler die Speichersynchronisierung und Daten explizit verwalten müssen, um eine maximale Leistung zu erzielen. Darüber hinaus erörtert Hensley OpenCL-Objekte wie Geräte, Kontexte, Warteschlangen, Puffer, Bilder, Programme, Kernel und Ereignisse, die verwendet werden, um Arbeit an Geräte zu senden, Daten zu synchronisieren und zu profilieren. Schließlich skizziert er, wie ein OpenCL-Programm in drei einfachen Schritten ausgeführt wird: Erstellen von Programm- und Kernel-Objekten, Erstellen von Speicherobjekten und Erstellen von Befehlswarteschlangen mit Ereignissen, um die richtige Kernel-Ausführungsreihenfolge sicherzustellen.
AMD Developer Central: Technischer Überblick über OpenCL. Folge 3: Ressourceneinrichtung
AMD Developer Central: Technischer Überblick über OpenCL. Folge 3: Ressourceneinrichtung
In Episode 3 der OpenCL-Tutorialreihe vertieft sich der Referent in die Einrichtung und Verwaltung von Ressourcen in OpenCL und behandelt Themen wie Speicherobjekte, Kontext, Geräte und Befehlswarteschlangen. Der Prozess des Zugreifens und Zuordnens von Speicher für Bilder wird ebenfalls besprochen, wobei der Schwerpunkt auf den Aufrufen zum Lesen und Schreiben von Bildern und den unterstützten Formaten liegt. Die Eigenschaften von synchronen und asynchronen Speicheroperationen werden untersucht, mit einer Erläuterung, wie das OpenCL-Ereignisverwaltungssystem verwendet werden kann, um den Abschluss der Datenübertragung zu garantieren. Schließlich wird den Benutzern empfohlen, Geräteinformationen mit dem Aufruf CL get device info abzufragen, um das beste Gerät für ihren Algorithmus auszuwählen.
zum Host-Adressraum wird der CL im Warteschlangenabbildungspuffer verwendet. Schließlich wird der CLN-Warteschlangen-Kopierpuffer verwendet, um Speicher zwischen zwei Speicherobjekten zu kopieren.
AMD Developer Central: Technischer Überblick über OpenCL. Folge 4: Kernel-Ausführung
AMD Developer Central: Technischer Überblick über OpenCL. Folge 4: Kernel-Ausführung
In diesem Abschnitt behandelt Justin Hensley das Thema Kernel-Ausführung in OpenCL und erklärt, dass Kernel-Objekte eine bestimmte Kernel-Funktion enthalten und mit dem Kernel-Qualifizierer deklariert werden. Er schlüsselt die Schritte zum Ausführen eines Kernels auf, darunter das Setzen von Kernel-Argumenten und das Einreihen des Kernels in die Warteschlange. Hensley betont, wie wichtig es ist, Ereignisse zu verwenden, um mehrere Kernel zu verwalten und Synchronisierungsprobleme zu vermeiden, und er schlägt vor, CL-Warten auf Ereignisse zu verwenden, um zu warten, bis sie abgeschlossen sind, bevor fortgefahren wird. Das Video geht auch detailliert auf die Profilerstellung der Anwendung ein, um Kernel zu optimieren, deren Ausführung die meiste Zeit in Anspruch nimmt.
AMD Developer Central: Technischer Überblick über OpenCL. Folge 5: Programmieren mit OpenCL™ C
AMD Developer Central: Technischer Überblick über OpenCL. Folge 5: Programmieren mit OpenCL™ C
In diesem Video werden verschiedene Funktionen der OpenCL™ C-Sprache erläutert, darunter Arbeitselementfunktionen, Arbeitsgruppenfunktionen, Vektortypen und integrierte Synchronisierungsfunktionen. Das Video betont die Bedeutung der Verwendung korrekter Adressraumqualifizierer für effizientes paralleles Schreiben von Code und die gemeinsame Nutzung von Speicher zwischen Arbeitsgruppen. Das Konzept der Vektortypen wird zusammen mit der Verwendung des richtigen Speicherplatzes für Kernel-Zeigerargumente, lokale Variablen und programmglobale Variablen ausführlich besprochen. Darüber hinaus werden integrierte mathematische Funktionen und Arbeitsgruppenfunktionen wie Barrieren und Memfences behandelt, mit einem Vorschlag, diese Funktionen zur Laufzeit zu überprüfen.
So verwenden Sie OpenCL für GPU-Arbeiten
So verwenden Sie OpenCL für GPU-Arbeiten
Das Video stellt OpenCL als offenes Standardtool vor, das auf den meisten neuen Grafikkarten unter Windows funktioniert, wobei je nach Karte entweder CUDA oder spezifische Grafiktreiber installiert werden müssen. Der Referent beschreibt ein einfaches Programm, den Prozess der Erstellung eines Kernels, Puffer für Daten, das Festlegen von Kernel-Argumenten und der globalen Arbeitsgröße und das Ausführen der Arbeitslast auf dem Gerät in OpenCL, wobei er es mit CUDA vergleicht. Die Parameter beim Erstellen eines Kernels in OpenCL für GPU-Arbeit, Enqueue-Lesepuffer, Freigeben von Speicher wurden mit Beispielcodes zur Überprüfung der Berechnungen erläutert. Durch die Präsentation eines kleinen Programms, das mithilfe von OpenCL eine subtile Unschärfe auf Graustufenbilder anwendet, hebt der Moderator hervor, dass OpenCL mehr Boilerplate-Code als CUDA hat, aber eine offene und standardisierte Lösung ist, die auf verschiedene Grafikkarten anwendbar ist und unabhängig vom Hersteller auf verschiedenen Systemen wiederverwendet werden kann.
EECE.6540 Heterogenes Computing (University of Massachusetts Lowell)
1. Kurze Einführung in die Parallelverarbeitung mit Beispielen
Dieses Video bietet eine kurze Einführung in die Parallelverarbeitung mit Beispielen. Der Referent erklärt, dass beim parallelen Rechnen eine größere Aufgabe in kleinere Teilaufgaben zerlegt wird, die parallel ausgeführt werden. Zwei Hauptstrategien, um dies zu erreichen, sind „Divide and Conquer“ und „Scatter and Collect“. Das Video zeigt Beispiele für natürliche und künstliche Anwendungen, die von Natur aus viele Parallelen aufweisen, wie menschliche Sinne, selbstfahrende Autos und Zellwachstum. Das Video erörtert auch die Vorteile der parallelen Verarbeitung und zeigt, wie sie zum Sortieren, zur Vektormultiplikation, zur Bildverarbeitung und zum Ermitteln der Anzahl der Vorkommen einer Zeichenkette in einem Textkörper angewendet werden kann. Abschließend stellt das Video den Reduktionsprozess vor, der auch als Summierungsprozess bekannt ist, um die Ergebnisse aus parallelen Ressourcen zu sammeln und zu verarbeiten.
2. Gleichzeitigkeit, Parallelität, Daten- und Aufgabenzerlegung
2. Gleichzeitigkeit, Parallelität, Daten- und Aufgabenzerlegung
Das Video befasst sich mit den Konzepten der Gleichzeitigkeit und Parallelität sowie mit der Verwendung von Aufgaben- und Datenzerlegungen und den Techniken zur Datenzerlegung für Parallelität und Parallelität. Das Gesetz von Amdahl wird als Mittel zur Berechnung der theoretischen Beschleunigung untersucht, wenn Aufgaben auf mehreren Prozessoren ausgeführt werden. Die Bedeutung von Aufgabenabhängigkeitsdiagrammen wird bei der Identifizierung der Abhängigkeiten zwischen Aufgaben hervorgehoben, wenn ein Problem in Teilaufgaben zerlegt wird. Verfahren zur Datenzerlegung, wie Eingabedaten und Reihenvektorpartitionierung, werden als nützlich zum Ausführen von Berechnungen angegeben. Atomare Operationen und Synchronisierung werden als entscheidend beschrieben, um das richtige Ergebnis zu generieren, nachdem alle Teilaufgaben abgeschlossen sind.
3. Paralleles Rechnen: Software und Hardware
3. Paralleles Rechnen: Software und Hardware
Das Video diskutiert verschiedene Ansätze, um ein hohes Maß an Parallelität bei der Datenverarbeitung zu erreichen. Der Referent beschreibt die Hardware- und Softwaretechniken, die zur Durchführung paralleler Berechnungen verwendet werden, einschließlich Parallelität auf Befehlsebene (ILP), Software-Threads, Mehrkern-CPUs, SIMD- und SPMD-Prozessoren. Das Video erklärt auch die Bedeutung der Parallelitätsdichte und das Konzept der Rechen-/Verarbeitungseinheiten, die ein effizientes paralleles Rechnen ermöglichen. Darüber hinaus erörtert der Referent die Herausforderungen bei der Erstellung atomarer Operationen für Synchronisationszwecke und die Notwendigkeit, Probleme für eine effiziente Ausführung auf GPUs neu zu strukturieren.
4. Zwei wichtige Artikel über heterogene Prozessoren
4. Zwei wichtige Artikel über heterogene Prozessoren
Das Video behandelt verschiedene Artikel zum heterogenen Computing, darunter Trends im Prozessordesign und in der Energieeffizienz, die Vorteile der Verwendung kundenspezifischer Hardware und spezialisierter Beschleuniger, die Bedeutung des Ausgleichs von großen und kleinen Kernen sowie die Herausforderungen der Datenbewegung und der effizienten Kommunikation zwischen den Kernen. Die Papiere diskutieren auch die Notwendigkeit, Planung und Workload-Aufteilung bei der Arbeit mit heterogenen Prozessoren und die Verwendung von Programmiersprachen und Frameworks wie OpenCL, CUDA und OpenMP zu verstehen. Insgesamt heben die Papiere die potenziellen Vorteile der Verwendung mehrerer Kerne und Beschleuniger hervor, um die Leistung und Energieeffizienz in heterogenen Computerumgebungen zu maximieren.
5. Übersicht über Computerhardware
5. Übersicht über Computerhardware
Das Video bietet einen Überblick über Computerhardware und behandelt Themen wie Prozessorarchitekturen, Designüberlegungen, Multithreading, Caching, Speicherhierarchie und das Design von Steuerlogik. Es erklärt auch, warum ein Programm eine Reihe von Anweisungen ist, denen ein Computer folgt, um eine Aufgabe auszuführen, und die verschiedenen Arten von Programmen, einschließlich Systemsoftware und Anwendungen. Das Video betont die Bedeutung der Hardwarekomponenten eines Computers, wie CPU und Arbeitsspeicher, die zusammenarbeiten, um Programme auszuführen und Aufgaben auszuführen.