Glossário IA
O dicionário completo da Inteligência Artificial
Work-item
Unidade elementar de execução no OpenCL, análoga a uma thread em outros modelos de paralelismo. Cada work-item executa uma instância do kernel com identificadores únicos para acessar diferentes porções dos dados.
Work-group
Coleção de work-items que compartilham recursos específicos e podem sincronizar sua execução via barreiras. Os work-groups constituem a unidade de agendamento para as unidades de computação OpenCL e otimizam o uso da memória local.
NDRange
Espaço de indexação N-dimensional que define a grade completa de work-items a serem executados para um kernel. O NDRange determina como os dados são particionados em work-groups e work-items para o cálculo paralelo.
Contexto
Ambiente de execução OpenCL contendo os dispositivos, os objetos de memória e os comandos associados. O contexto garante a coerência dos recursos compartilhados entre os dispositivos de uma mesma plataforma OpenCL.
Fila de Comandos
Mecanismo que ordena as operações OpenCL (transferências de memória, execução de kernels) para um dispositivo específico. Os comandos podem ser executados em ordem ou fora de ordem, dependendo dos parâmetros de criação da fila.
Modelo de Memória
Estrutura hierárquica de memória OpenCL que compreende os espaços global, local, privado e constante. Este modelo otimiza o acesso aos dados de acordo com sua localização e frequência de uso pelos work-items.
Memória Local
Memória compartilhada entre os work-items de um mesmo work-group, oferecendo acessos muito rápidos para a cooperação. Ela permite implementar algoritmos eficientes como reduções e padrões de acesso irregulares.
Memória Privada
Espaço de memória exclusivo para cada work-item, geralmente implementado com registradores ou pilha local. Ele armazena variáveis temporárias e garante o isolamento entre work-items concorrentes.
Objetos de Evento
Sincronização granular de comandos OpenCL que permite definir dependências entre operações. Os eventos facilitam a otimização do paralelismo ao criar grafos de execução complexos.
Modelo de Plataforma
Abstração OpenCL que define um host conectado a um ou mais dispositivos através de um driver. O modelo de plataforma padroniza a interação entre a CPU host e os aceleradores para garantir a portabilidade do código.
Objeto Buffer
Contêiner de memória OpenCL para armazenar dados lineares acessíveis pelos kernels. Os buffers suportam diversas estratégias de alocação e transferência entre host e dispositivo para otimizar o desempenho.
SVM (Memória Virtual Compartilhada)
Extensão OpenCL 2.0 que permite o compartilhamento de ponteiros entre host e dispositivo com um espaço de endereçamento virtual único. SVM elimina transferências explícitas e simplifica a programação para arquiteturas integradas.
SPIR (Representação Intermediária Portátil Padrão)
Formato intermediário binário OpenCL que permite a distribuição de kernels sem código-fonte. SPIR garante a portabilidade entre diferentes implementações OpenCL, preservando as otimizações específicas dos dispositivos.
Tipos Vetoriais
Tipos de dados SIMD nativos do OpenCL (float4, int8, etc.) que otimizam as operações vetoriais em arquiteturas paralelas. Os tipos vetoriais exploram nativamente as unidades SIMD das GPUs para maximizar a taxa de transferência de cálculo.
Sincronização por Barreira
Primitiva de sincronização que força todos os work-items de um work-group a atingir um ponto antes de continuar. As barreiras garantem a consistência dos dados compartilhados na memória local durante algoritmos cooperativos.