Opencl

O que é

A Open Computing Language é uma API padrão para a computação heterogênea. Ela é uma extensão do ISO C99 e define uma API que é comum para CPUs, GPUs e outros equipamentos de computação como DSP realizarem computação.
Há também uma ligação C++ para a programação OpenCL, no entanto, no momento da escrita, somente o ATI Stream suporta tal ligação.

Jeito de se programar

(Falar das Compute Units e Processing Units)

Outros detalhes relevantes

Implementações disponíveis de OpenCL são a da IBM, a da AMD para CPUs (da própria AMD, mas funciona também para Intel) e GPUs ATI (AMD) e a da NVidia para Nvidias GPU.
Recentemente também temos a implemetação OpenCL da Samsung e da Intel.
Caso exista outra que não for citada por favor contribuir aqui :)

Versões

OpenCL 1.x (1.0, 1.1 e 1.2)

** TODO **

Open CL 2.x (2.0, 2.1 e 2.2)

** TODO **

OpenCL 2.0

** TODO **

Livros

Uma coletânea de livros sobre OpenCL pde ser achada em http://www.streamcomputing.eu/education/self-study/books/.

Também há um livro dedicado ao assunti, publicado pela empresa Fixstars, que além de comprado pode ser lido online em:
http://www.fixstars.com/en/opencl/book/OpenCLProgrammingBook/contents.html.

Using OpenCL: Programming Massively Parallel Computers (Advances in Parallel Computing) [Hardcover]. Livro lançado recentemente (março de 2012). Disponível para compra em: http://www.amazon.com/Using-OpenCL-Programming-Massively-Computers/dp/1614990298/khongrou-20

WebCL

Apesar de que ainda não começaram os trabalhos acerca de [WebCL (pelo menos não até a data do presente escrito - 14/03/2011) a Khronos anunciou planos para formar um grupo de trabalho a respeito desta API no momento em que lançou oficalmente a versão 1.0 da API WebGL.

SyCL

Iniciativa opensource da Khronos para fornecer uma implementacao C++17 da STL paralela que usa OpenCL.

Tutoriais

http://www.streamcomputing.eu/education/self-study/tutorials/ Uma página contendo vários links interessantes para quem quer aprender OpenCL.

http://3dgep.com/?p=2192 Um tutorial completo dos básicos de OpenCL com um exemplo de simulação de fluído

https://www.khronos.org/opencl/resources

Links

Bibliotecas

Boost Compute: Biblioteca que fornece uma interface C++ para plataformas de computacao CPU e GPGPU e se baseia na OpenCL.

Recursos (variados)

https://www.khronos.org/opencl/resources: muitos tutoriais, livros e outros links/materiais para auxiliar no aprenidzado e busca de informações em relação a OpenCL

Notícias/Geral

http://developer.amd.com/gpu/ATIStreamSDK/pages/TutorialOpenCL.aspx Introdução a Open CL pela AMD
http://sites.google.com/site/ozvizworkshop/ozviz-2010/ozviz-2010-opencl-workshop-program
http://sa10.idav.ucdavis.edu/ Notas do curso OpenCL By Example - Siggraph Asia 2010. Inclue links para implementações openCL existentes
http://www.streamcomputing.eu/blog/ Site dedicado à GPGPU com ênfase em OpenCL
https://www.khronos.org/adopters/conformant-products/#topencl Fabricantes que passaram pelo teste de conformidade OpenCL
http://www.openclnews.com/apps uma pequena lista de aplicativos que usam OpenCL

Tutoriais

http://opencl.codeplex.com/wikipage?title=OpenCL%20Tutorials%20-%201 Tutorial de OpenCL

http://labs.qt.nokia.com/2010/04/07/using-opencl-with-qt/ Link sobre OpenCL no QT

http://dhruba.name/tag/cookbook/ Ĺivro de leitura rápida e enfiocado na prática sobre como começar a programar em OpenCL

APIs

https://github.com/Computing-Language-Utility/CLU: Computing Language Utility (CLU) é uma biblioteca para minimizar a complexidade de inicializar e utilizar OpenCL nos programas desenvolvidos.

Utilitários

http://clbenchmark.com/: benchmark de implementações OpenCL 1.1
https://www.cs.virginia.edu/~skadron/wiki/rodinia/index.php/Main_Page: Outro benchmark para OpenCL
CompuBench (https://itunes.apple.com/de/app/id880572681?mt=12): Benchmark de implementações OpenCL. Tem a possibilidade de enviar o resultado dos testes OpenCL GPU e CPU no site para fins comparativos.

SDKs

APP-SDK: SDk Da AMD (http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/)

twitter (desenvolvedores OpenCL)

https://twitter.com/#!/StreamComputing/people

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.