OpenCL

OpenCL é uma estrutura para escrever programas que podem ser executados em plataformas heterogêneas, consistindo de CPUs, GPUs e outros processadores. Ele foi originalmente desenvolvido pela Apple Inc. e agora é mantido pelo Grupo Khronos.
O OpenCL consiste em uma linguagem de programação e um conjunto de APIs que permitem que os programadores tenham como alvo diferentes tipos de processadores. A linguagem de programação é baseada em C99 e é estendida para suportar o paralelismo e o paralelismo de dados. As APIs permitem aos programadores aceder à funcionalidade dos vários processadores de uma forma independente da plataforma.

Os programas OpenCL podem ser executados nas CPUs, GPUs e outros processadores de uma plataforma em paralelo. Isto permite velocidades significativas em relação aos programas sequenciais tradicionais. O que significa CUDA? CUDA é um acrônimo para "Compute Unified Device Architecture" (Arquitetura de Dispositivos Unificada Computa). CUDA é uma plataforma de computação paralela e modelo de programação desenvolvido pela NVIDIA para computação em geral em sua linha de GPUs (unidades de processamento gráfico).

O OpenCL é um compilador?

O OpenCL não é um compilador. É uma API que permite aos desenvolvedores escrever código que será executado em diferentes dispositivos, incluindo CPUs, GPUs e outros aceleradores. O código que é escrito usando a API do OpenCL é então compilado por um compilador específico do dispositivo.

Como eu programo com OpenCL?

Existem duas formas principais de programar com OpenCL: através de uma unidade de processamento gráfico (GPU) ou CPU com OpenCL ou usando uma biblioteca acelerada por OpenCL.

Se você tem uma GPU ou CPU OpenCL-aware, você pode instalar os drivers OpenCL e usar as APIs OpenCL para desenvolver suas próprias aplicações OpenCL. O driver OpenCL irá permitir que seu dispositivo seja usado como um acelerador OpenCL.

Se você quiser usar uma biblioteca acelerada por OpenCL, há muitas disponíveis. Alguns exemplos populares incluem a biblioteca Intel Threading Building Blocks (TBB), o framework Apple Accelerate e a Parallel Numerics Library (PNL). Estas bibliotecas fornecem funções de alto nível que podem ser aceleradas por um dispositivo OpenCL.

Como eu habilito o OpenCL?

OpenCL (Open Computing Language) é um framework para escrever programas que podem ser executados em plataformas heterogêneas que consistem em unidades centrais de processamento (CPUs), unidades de processamento gráfico (GPUs), matrizes de portas programáveis em campo (FPGAs), e outros processadores. Trata-se de um padrão aberto mantido pelo Grupo Khronos.

Há duas formas principais de ativar o OpenCL em um sistema:

1. Fazer o download e instalar um driver compatível com OpenCL para a plataforma de hardware relevante.

2. Use uma plataforma que já tenha suporte a OpenCL integrado, como o MacOS da Apple ou o Windows 10 da Microsoft.
Uma vez que o OpenCL esteja ativado, os programas podem ser escritos na linguagem de programação OpenCL C e executados na plataforma alvo.

O que é OpenCL vs OpenGL?

OpenCL (Open Computing Language) é um framework para escrever programas que podem ser executados em plataformas heterogêneas, ou seja, plataformas que consistem de diferentes tipos de processadores. Ele foi originalmente desenvolvido pela Apple Inc. e agora é mantido pelo Grupo Khronos.
A OpenGL (Open Graphics Library) é uma API de renderização gráfica acelerada por hardware e multi-plataforma. É amplamente utilizada em jogos de computador e outras aplicações gráficas intensivas.