Najlepsza odpowiedź
Używam OpenGL w aplikacjach grafiki komputerowej od prawie 10 lat.
OpenGL jest głównie używany do grafiki komputerowej, jest to graficzny interfejs API. OpenCL jest najczęściej używany do obliczeń równoległych, jest to obliczeniowy interfejs API.
Możesz użyć OpenGL do rozwiązania niektórych problemów, które zwykle rozwiązujesz w OpenCL, ale będziesz musiał odwzorować swój problem na kontekst graficzny, aby rozpocząć obliczenia.
Myślę, że Głównym powodem wyboru OpenGL do zadań niezwiązanych z renderowaniem jest obsługa starszego sprzętu, na którym nie można uruchomić OpenCL.
Otwórz bibliotekę graficzną ( OpenGL ) jest wielojęzycznym , wieloplatformowy interfejs programowania aplikacji (API) do renderowania 2D i 3D grafika wektorowa . Interfejs API jest zwykle używany do interakcji z procesor graficzny (GPU), aby osiągnąć akcelerację sprzętową rendering .
Silicon Graphics Inc., (SGI) zaczął rozwijać OpenGL w 1991 roku i wydał go w styczniu 1992 roku; aplikacje intensywnie go wykorzystują w dziedzinach projektowania wspomaganego komputerowo (CAD), rzeczywistości wirtualnej , wizualizacja naukowa , wizualizacja informacji, symulacja lotu i gry wideo . OpenGL jest zarządzany przez konsorcjum non-profit Khronos Group . (z Wikipedii OpenGL )
Open Computing Language ( OpenCL ) to framework do pisania programów, które są wykonywane w heterogeniczne platformy składające się z jednostek centralnych (procesorów), jednostek przetwarzania grafiki (GPU), cyfrowe procesory sygnałowe ( DSP ), tablice bramek programowalne przez użytkownika (FPGA) i inne procesory lub akceleratory sprzętowe. OpenCL określa język (na podstawie C99 ) do programowania tych urządzeń i interfejsów programowania aplikacji ( API) do kontrolowania platformy i wykonywania programów na urządzeniach obliczeniowych. OpenCL zapewnia standardowy interfejs dla obliczeń równoległych przy użyciu równoległości opartej na zadaniach i danych. OpenCL to otwarty standard utrzymywany przez konsorcjum technologiczne non-profit Khronos Group . (z Wikipedii OpenCL )
Odpowiedź
Oprócz podobieństwa nazw są to bardzo różne bestie. OpenCL to skrót od Open Computing Language. Jest to język, który pozwala tworzyć jądra programów, które mogą działać równolegle na GPU lub CPU. OpenCL jest zwykle używany do algorytmów przetwarzania obrazu, symulacji fizycznych i zwraca wyniki liczbowe. Innymi słowy, wyjście programu OpenCL nie ma charakteru graficznego.
W przeciwieństwie do OpenGL to graficzny interfejs API, który umożliwia wysyłanie poleceń renderowania do GPU. Zazwyczaj celem jest pokazanie renderowania na ekranie.