Was sind die Unterschiede zwischen OpenCL und OpenGL?


Beste Antwort

Ich verwende OpenGL seit fast 10 Jahren in Computergrafikanwendungen.

OpenGL wird hauptsächlich für Computergrafiken verwendet, es ist eine Grafik-API. OpenCL wird hauptsächlich für paralleles Rechnen verwendet, es ist eine Berechnungs-API.

Sie können OpenGL verwenden, um einige Probleme zu lösen, die Sie normalerweise mit OpenCL lösen, aber Sie müssen Ihr Problem dem Grafikkontext zuordnen, um Ihre Berechnung in Gang zu bringen.

Ich denke, das Der Hauptgrund für die Auswahl von OpenGL für Nicht-Rendering-Aufgaben ist die Unterstützung älterer Hardware, auf der OpenCL nicht ausgeführt werden kann.

Open Graphics Library ( OpenGL ) ist eine sprachübergreifende , plattformübergreifend Anwendungsprogrammierschnittstelle (API) zum Rendern von 2D und 3D Vektorgrafiken . Die API wird normalerweise zur Interaktion mit einer Grafikverarbeitungseinheit (GPU), um hardwarebeschleunigt Rendern .

Silicon Graphics Inc., (SGI) begann 1991 mit der Entwicklung von OpenGL und veröffentlichte es im Januar 1992; Anwendungen verwenden es ausgiebig in den Bereichen computergestütztes Design (CAD), virtuelle Realität , wissenschaftliche Visualisierung , Informationsvisualisierung, Flugsimulation und Videospiele . OpenGL wird vom gemeinnützigen Technologie -Konsortium Khronos Group . (aus Wikipedia OpenGL )

Open Computing Language ( OpenCL ) ist ein Framework zum Schreiben von Programmen, die über heterogene Plattformen bestehend aus Zentraleinheiten (CPUs), Grafikprozessoren (GPUs), digitale Signalprozessoren ( DSPs ), feldprogrammierbare Gate-Arrays (FPGAs) und andere Prozessoren oder Hardwarebeschleuniger. OpenCL gibt eine Sprache (basierend auf C99 ) zum Programmieren dieser Geräte und Anwendungsprogrammierschnittstellen ( APIs) zur Steuerung der Plattform und zur Ausführung von Programmen auf den Rechengeräten. OpenCL bietet eine Standardschnittstelle für Parallel Computing mit aufgabenbasierter und datenbasierter Parallelität. OpenCL ist ein offener Standard, der vom gemeinnützigen Technologiekonsortium Khronos Group verwaltet wird. (aus Wikipedia OpenCL )

Antwort

Neben der Namensähnlichkeit handelt es sich um sehr unterschiedliche Bestien. OpenCL steht für Open Computing Language. Mit dieser Sprache können Sie Programmkerne erstellen, die parallel auf der GPU oder CPU ausgeführt werden können. OpenCL wird normalerweise für Bildverarbeitungsalgorithmen, physikalische Simulationen und numerische Ergebnisse verwendet. Mit anderen Worten, die Ausgabe eines OpenCL-Programms ist nicht grafischer Natur.

Im Gegensatz dazu ist OpenGL eine grafische API, mit der Sie Rendering-Befehle an die GPU senden können. In der Regel besteht das Ziel darin, das Rendering auf dem Bildschirm anzuzeigen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.