Glossário IA
O dicionário completo da Inteligência Artificial
Kernel
Função CUDA executada na GPU por um grande número de threads simultaneamente. O kernel é lançado da CPU e executado em paralelo no dispositivo GPU com uma configuração específica de grade e blocos.
Thread
Unidade básica de execução em CUDA, representando uma única sequência de instruções executada em um núcleo de processador GPU. Os threads são organizados em blocos e executam o mesmo código em diferentes dados.
Bloco
Coleção de threads que podem se comunicar entre si através de uma memória compartilhada e sincronizar sua execução. Os blocos são organizados em uma grade e são executados em um mesmo Streaming Multiprocessor (SM).
Grade
Conjunto de blocos de threads que constituem a configuração de execução completa de um kernel CUDA. A grade representa a estrutura hierárquica superior da organização dos threads em CUDA.
Warp
Grupo de 32 threads que são executados simultaneamente no modo SIMT (Single Instruction Multiple Thread) em um SM CUDA. Todos os threads de um warp executam a mesma instrução no mesmo ciclo de clock.
Memória Compartilhada
Memória rápida e de pequeno tamanho compartilhada por todos os threads de um mesmo bloco, permitindo uma comunicação eficiente entre threads. A memória compartilhada é muito mais rápida que a memória global, mas limitada em tamanho por bloco.
Memória Global
Memória principal acessível por todos os threads e pela CPU, com grande capacidade, mas alta latência. A memória global é persistente entre os lançamentos de kernels e constitui a principal área de armazenamento de dados.
API de Tempo de Execução CUDA
Interface de programação de alto nível que simplifica o desenvolvimento de aplicações CUDA, gerenciando automaticamente a inicialização, o carregamento de módulos e o gerenciamento de memória. Ela fornece funções como cudaMalloc, cudaMemcpy e cudaLaunchKernel.
Stream
Sequência de operações executadas na GPU em uma ordem determinada, permitindo alcançar o paralelismo entre operações de cálculo e transferências de memória. Os streams permitem a execução concorrente de kernels e a sobreposição de transferências.
Execução Assíncrona
Modo de execução CUDA onde as operações retornam imediatamente à CPU sem esperar sua conclusão na GPU. A execução assíncrona permite sobrepor cálculos e transferências para maximizar a utilização da GPU.
Memória de Textura
Memória otimizada para acessos com localidade espacial 2D ou 3D, com cache automático de dados. A memória de textura é particularmente eficiente para processamento de imagens e acessos com pouca coerência.
Memória Constante
Memória somente leitura otimizada para acessos broadcast onde todos os threads leem o mesmo valor simultaneamente. É particularmente eficiente quando todos os threads de um warp acessam o mesmo endereço.
Ocupação
Medida da razão entre o número de warps ativos e o número máximo de warps que podem ser residentes em um Streaming Multiprocessor. Uma alta ocupação não garante necessariamente melhor desempenho, mas ajuda a mascarar a latência.
Operações Atômicas
Operações de leitura-modificação-escrita executadas atomicamente na memória global ou compartilhada, garantindo a ausência de conflitos entre threads. Elas são essenciais para reduções e atualizações concorrentes de dados.
cuBLAS
Biblioteca CUDA Basic Linear Algebra Subroutines que fornece implementações otimizadas para GPU de operações básicas de álgebra linear. cuBLAS acelera significativamente os cálculos matriciais e vetoriais em arquiteturas NVIDIA.
cuFFT
Biblioteca CUDA Fast Fourier Transform que oferece implementações de alta performance para GPU de transformadas de Fourier discretas. cuFFT suporta transformadas 1D, 2D e 3D com diferentes precisões e tamanhos.