Kernels de ordem superior para GPUs compatíveis com OpenCL utilizando metaprogramação em Elixir - Rodrigues, Henrique Gabriel; Du Bois, André Rauber; Cavalheiro, Gerson Geraldo H. (Anais do Seminário Integrado de Software e Hardware (SEMISH), 2026)
A programação de GPUs exige o uso de APIs de baixo nível, como CUDA e OpenCL, que dificultam a criação de abstrações como funções de ordem superior. Linguagens de Domínio Específico (DSLs) atenuam esse problema, mas apresentam limitações de portabilidade ou expressividade. Este artigo apresenta a OCL-PolyHok, uma DSL embutida em Elixir que permite a execução de kernels de ordem superior em OpenCL, contornando a ausência de suporte a ponteiros de função por meio de geração de código e especialização em tempo de execução. Experimentos com seis benchmarks indicam, com 95% de confiança estatística, desempenho superior à versão baseada em CUDA, com menor overhead de compilação JIT, mantendo portabilidade e expressividade.