Articles

O que é OpenCL?

O padrão OpenCL para programação paralela foi desenvolvido pelo consórcio industrial do Grupo Khronos para enfrentar os desafios da programação de plataformas de computação multi-core e heterogêneas. A especificação OpenCL define um modelo único de programação e um conjunto de abstrações em nível de sistema que são suportadas por todas as plataformas de hardware em conformidade com o padrão. Isso significa que um engenheiro de software pode aprender um único modelo de programação e usá-lo diretamente em dispositivos de vários fornecedores.

OpenCL fornece uma linguagem de programação e API de tempo de execução para suportar o desenvolvimento de software próximo ao metal, que é eficiente e portátil. Além disso, OpenCL fornece abstrações de hardware de baixo nível que permitem que implementações OpenCL exponham muitos detalhes do hardware subjacente. Essas abstrações de baixo nível são a plataforma, memória e modelos de execução descritos na especificação do OpenCL. Entender como esses conceitos se traduzem em implementações físicas em uma FPGA é necessário para otimização de aplicações.

Este capítulo fornece uma revisão do modelo da plataforma OpenCL e suas extensões para dispositivos FPGA. Ele explica o mapeamento da plataforma OpenCL e do modelo de memória em uma implementação gerada por SDAccel. Este capítulo também mencionará como FPGAs contemporâneos podem ser alavancados para alcançar altos níveis de desempenho usando a ferramenta Xilinx® SDAccel.