Vitor Pamplona

Innovation on Vision: Imaging , Enhancement and Simulation

OpenCL: O padrão para programação paralela de propósito geral (GPGPU)

A OpenCL (Open Computing Language) é uma linguagem de programação, baseada em C99, para ambientes paralelos com dados heterogêneos. Concorrente direto da nVidia Cuda e da ATI Stream SDK, a OpenCL foi idealizada pela Apple e tornou-se padrão através do Khronos Group, o grupo que especificou a OpenGL, OpenAL, OpenGL ES e a GLSL. O objetivo da linguagem é padronizar o modo de acesso e os recursos das placas gráficas, possibilitando a construção de algoritmos de propósito geral (GPGPU) independentes de hardware.  

A Apple pretende incluir a OpenCL no Snow Leopard (MacOS 10.6), ampliando o poder computacional de seus computadores que já possuem placas gráficas com recursos e abertura suficientes para a GPGPU. A AMD / ATI já anunciou suporte a OpenCL, assim como a nVidia. IBM, Intel, Nokia, Motorola, Samsung, EA, Blizzard, 3D Labs e outros grandes players assinaram a especificação, que foi lançada no dia 5 de dezembro de 2008: Versão 1.0 final. Sim, esta linguagem irá rodar nos celulares, PDAs e pockets também.

A linguagem e a plataforma definidas são muito parecidas com o Cuda, o bytecode das duas é o mesmo: Cuda PTX. Assim como no cuda, defini-se um grid computacional para a execução de um kernel, há vários tipos de memória, primitivas especiais e anotações para os métodos que irão rodar na CPU e na GPU. A plataforma tem restrições em termos de recursão, stack e ponteiros para funções. O OpenCL deve se manter atrás do Cuda e da Stream SDK em termos de features, da mesma forma que ocorre com o OpenGL e o DirectX.

Vale a pena ficar de olho nesta tecnologia. Até agora nenhuma empresa se posicionou contra ela. Aqui, a apresentação de lançamento e aqui a apresentação que ganhou o público no Siggraph 2008, o maior evento de computação gráfica do mundo.

Posted in Dec 14, 2008 by Vitor Pamplona - Edit - History

Add New Comment

Your Name:


Write the code showed above on the text below.