Quais são as diferenças entre OpenCL e OpenGL?
I tenho usado OpenGL em aplicações de Computação Gráfica há quase 10 anos.
OpenGL é usado principalmente para computação gráfica, é uma API gráfica. OpenCL é usado principalmente para computação paralela, é uma API de computação.
Você pode usar OpenGL para resolver alguns problemas que você normalmente resolve com OpenCL, mas você terá que mapear o seu problema para o contexto gráfico, a fim de fazer com que seu cálculo funcione.
Eu acho que a principal razão para você escolher OpenGL para tarefas sem renderização é para suportar hardware mais antigo que pode't executar OpenCL.
Open Graphics Library (OpenGL) é uma interface de programação de aplicativos (API) multi-idioma e multi-plataforma para renderizar gráficos vetoriais 2D e 3D. A API é tipicamente usada para interagir com uma unidade de processamento gráfico (GPU), para alcançar renderização acelerada por hardware.
Silicon Graphics Inc., (SGI) começou a desenvolver a OpenGL em 1991 e a lançou em janeiro de 1992; aplicativos a usam extensivamente nos campos de design assistido por computador (CAD), realidade virtual, visualização científica, visualização de informações, simulação de vôo e jogos de vídeo. OpenGL é administrado pelo consórcio de tecnologia sem fins lucrativosKhronos Group. (da Wikipedia OpenGL )
Open Computing Language (OpenCL) é uma estrutura para escrever programas que executam através de plataformas heterogêneas que consistem em unidades centrais de processamento (CPUs), unidades de processamento gráfico (GPUs), processadores de sinais digitais (DSPs), matrizes de portas programáveis em campo (FPGAs) e outros processadores ou aceleradores de hardware. O OpenCL especifica uma linguagem (baseada em C99) para programação destes dispositivos e interfaces de programação de aplicativos (APIs) para controlar a plataforma e executar programas nos dispositivos de computação. O OpenCL fornece uma interface padrão para computação paralela usando paralelismo baseado em tarefas e dados. O OpenCL é um padrão aberto mantido pelo consórcio de tecnologia sem fins lucrativos Khronos Group. (da Wikipedia OpenCL )