Programa do Curso

Introdução

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

Visão Geral das Funcionalidades e Arquitetura do CUDA

  • Arquitetura de GPU vs CPU
  • Noções sobre 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
  • Noções sobre 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
  • Noções sobre decoradores @cuda.jit

Criando um Kernel Personalizado CUDA

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

Gestão de Memória

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

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

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

Convertendo Aplicativos Baseados em CPU para GPU

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

Troubleshooting

  • Depurando aplicativos CUDA
  • Erros comuns e como resolvê-los
  • Ferramentas e técnicas para teste e validação

Resumo e Próximos Passos

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

Requisitos

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

Público-alvo

  • Desenvolvedores
 14 Horas

Número de participantes


Preço por Participante

Declaração de Clientes (1)

Próximas Formações Provisórias

Categorias Relacionadas