OpenCL é um framework para escrever programas que permitirão sua execução em CPU's (Unidade Central de Processamento) e GPGPU's (Geral). Unidade de Processamento Gráfico de Propósito). Quando executado no GPGPU, o computador pode descarregar o trabalho na placa gráfica, liberando a CPU para outros trabalhos.
Isso é especialmente útil em fluxos únicos de dados que exigem cálculos repetitivos, como codificação / decodificação de vídeo; Criptografia; Computação como R etc.
A versão curta é:
- A maioria das GPUs nos últimos anos suportam o OpenCL
- O Tensorflow é uma biblioteca de computação, portanto, o suporte a OpenCL pode acelerar o processo se você tiver uma placa gráfica suportada e configurá-la adequadamente
- Você NÃO PRECISA de uma placa gráfica para executar aplicativos OpenCL, pois eles serão executados em uma CPU (embora muito mais lenta)
Existe algum debate atualmente sobre a validade do uso do OpenCL / CUDA para esse tipo de coisa, já que é quase tão fácil de fabricar um chip dedicado ( NVENC por exemplo, às vezes chamado de ASIC ).
Aumentos de velocidade usando o OpenCL podem variar de excelentes, até abaixo das expectativas. Se você tem uma placa sobressalente que suporta o OpenCL, vale a pena tentar. Pode (em algumas circunstâncias) aumentar a velocidade computacional dramaticamente.
Quando não funciona, pode ser um pesadelo de configuração e configuração para ganho mínimo.