Programa do Curso

Introdução

  • O que é programação de GPU?
  • Por que usar CUDA com Python?
  • Conceitos principais: Threads, Blocos, Grades

Visão geral das funcionalidades e arquitetura do CUDA

  • Arquitetura de GPU vs CPU
  • Entendendo SIMT (Single Instruction, Multiple Threads)
  • Modelo de programação CUDA

Configurando o Ambiente de Desenvolvimento

  • Instalando a CUDA Toolkit e drivers
  • Instalando Python e Numba
  • Configurando e verificando o ambiente

Fundamentos da Programação Paralela

  • Introdução à execução paralela
  • Entendendo threads e hierarquias de threads
  • Trabalhando com warps e sincronização

Trabalhando com o Compilador Numba

  • Introdução ao Numba
  • Escrevendo kernels CUDA com Numba
  • Entendendo os decoradores @cuda.jit

Criando um Kernel Personalizado CUDA

  • Escrevendo e lançando um kernel básico
  • Usando threads para operações elementares
  • Gestionando dimensões de grade e bloco

Gestão de Memória

  • Tipos de memória da GPU (global, compartilhada, local, constante)
  • Transferência de memória entre host e dispositivo
  • Otimizando o uso de memória e evitando gargalos

Tópicos Avançados em Aceleração por GPU

  • Memória compartilhada e sincronização
  • Usando streams para execução assíncrona
  • Noções básicas de programação multi-GPU

Convertendo Aplicações Baseadas em CPU para GPU

  • Perfis de código CPU
  • Identificando seções paralelizáveis
  • Portando lógica para kernels CUDA

Solução de Problemas

  • Depurando aplicações CUDA
  • Erros comuns e como resolvê-los
  • Ferramentas e técnicas para testes e validação

Resumo e Próximos Passos

  • Revisão de conceitos principais
  • Melhores práticas em programação de GPU
  • Recursos para aprendizado contínuo

Requisitos

  • Experiência com programação Python
  • Experiência com NumPy (ndarrays, ufuncs, etc.)

Público-alvo

  • Desenvolvedores
 14 Horas

Declaração de Clientes (1)

Próximas Formações Provisórias

Categorias Relacionadas