-
Und OpenCL
Autor: minnime 21.02.24 - 00:23
Das ist doch das Komplement zu CUDA wie OpenGL zu DirectX oder ist das eine andere Abstraktionsebene? Wie sieht es denn damit aus, wie ist dessen Qualität und Benutzbarkeit?
-
Re: Und OpenCL
Autor: jonasz 21.02.24 - 09:40
minnime schrieb:
--------------------------------------------------------------------------------
> Das ist doch das Komplement zu CUDA wie OpenGL zu DirectX oder ist das eine
> andere Abstraktionsebene? Wie sieht es denn damit aus, wie ist dessen
> Qualität und Benutzbarkeit?
Im Grunde genommen sind sie ziemlich ähnlich in ihrer Funktionalität. Immerhin handelt es sich dabei einfach um ein Framework, das auf eine bestimmte Architektur optimiert ist und hauptsächlich Decodierungsbibliotheken sowie mathematische Optimierungen für Vektor/Matrix- und Fourier-Operationen beinhaltet. Daneben gibt es noch viele andere Funktionen. OpenCL ist unabhängig von der Architektur, was Ineffizienzen mit sich bringt. Es gab jedoch auch Projekte wie Coriander, um aus OpenCL CUDA-Code zu generieren, also bis zu einem bestimmten Grad müssen der Code interkompatibel sein und nur die Architektur Eigenheiten werden Hindernisse darstellen. -
Re: Und OpenCL
Autor: nille02 22.02.24 - 10:32
minnime schrieb:
--------------------------------------------------------------------------------
> Wie sieht es denn damit aus, wie ist dessen Qualität und Benutzbarkeit?
Prinzipiell sind beide ähnlich. OpenCL krankt an allem wie Khronos Projekte an der Fragmentation der Implementierungen. Nur weil etwas mit Implementierung A korrekt funktioniert kann es auf Implementierung B komplett scheitern. Das Blender Projekt musste das immer wieder feststellen wenn der OpenCL Code Path je nach Plattform einfach nicht funktioniert.
Dann sind da noch sprachliche Unterschiedene. Für OpenCL hast du einen C Dialekt. Für CUDA kannst du C, C++ oder Fortan einfach benutzen.
Dann eins der Killer Features für CUDA ist wohl die einfache Speicherverwaltung. CUDA Abstrahiert hier ganz gut die darunter liegende Hardware und du musst dich nicht wirklich damit beschäftigen und bekommst dennoch etwas heraus was schnell funktioniert.



