Glossário IA
O dicionário completo da Inteligência Artificial
Divergência de Threads
Fenômeno onde threads de um mesmo warp seguem caminhos de execução diferentes, causando uma serialização dos branches e reduzindo consideravelmente o desempenho paralelo na GPU.
Conflitos de Banco de Memória Compartilhada
Contenção que ocorre quando múltiplos threads do mesmo warp tentam acessar simultaneamente o mesmo banco de memória da shared memory, provocando uma serialização dos acessos.
Agendamento de Warps
Mecanismo do agendador da GPU que otimiza o ordenamento dos warps para maximizar a utilização das unidades de computação e mascarar a latência da memória.
Derramamento de Registradores
Fenômeno onde o compilador precisa mover dados dos registradores para a memória local (lenta) quando os registradores são insuficientes, degradando significativamente o desempenho.
Vazão de Instruções
Medida do número de instruções que podem ser executadas por ciclo de clock, otimizada favorecendo operações aritméticas nativas e evitando instruções complexas.
Loop com Passo de Grade
Padrão de loop onde cada thread processa múltiplos elementos espaçados pelo tamanho total da grid, permitindo processar conjuntos de dados maiores que a grade de threads.
Desenrolamento de Loop
Técnica de otimização que elimina iterações de loop duplicando o corpo, reduzindo a sobrecarga de controle de loop e aumentando o paralelismo ao nível de instrução.
Ocultação de Latência de Memória
Estratégia que consiste em lançar warps suficientes para que a GPU possa alternar para warps prontos enquanto outros aguardam acessos à memória.
Operações de Memória Vetorial
Instruções que transferem múltiplos dados simultaneamente (float2, float4) entre a memória global e os registradores, melhorando a largura de banda efetiva.
Grupos Cooperativos
API CUDA que permite uma sincronização flexível e coletiva entre threads além dos limites tradicionais de bloco, otimizando padrões de comunicação complexos.
Cache de Memória de Textura
Utilização da memória de textura com seu cache otimizado para acessos espaciais, particularmente eficaz para padrões de acesso com localidade 2D.
Otimização de Operações Atômicas
Técnicas para reduzir a contenção em operações atômicas, notadamente pelo uso da shared memory para agregação local antes da atualização global.
Sobrecarga de Lançamento de Kernel
Custo temporal associado ao início de um kernel GPU, minimizado ao fundir vários kernels pequenos em um único maior ou usando paralelismo dinâmico.
Balanceamento da Distribuição de Trabalho
Otimização da distribuição do trabalho entre threads para evitar o desequilíbrio de carga onde alguns threads terminam muito mais cedo que outros.
Estratégia de Prefetching
Técnica antecipatória de carregamento de dados na shared memory antes de sua utilização, mascarando assim a latência dos acessos à memória global.