Entrar em Contato

Programa do Curso

Computação em GPU e Arquitetura CUDA

  • Diferenças arquiteturais entre CPU e GPU
  • Modelo de streaming multiprocessor da NVIDIA GPU
  • Noções básicas do modelo de programação CUDA
  • Computação heterogênea e o paradigma host-dispositivo

Configuração do Ambiente de Desenvolvimento CUDA

  • Instalação do CUDA Toolkit 13.x
  • Compilador NVCC e fluxo de construção
  • Verificação do ambiente com consultas de dispositivo
  • Integração com IDE e ferramentas de desenvolvimento

Criação e Inicialização de Kernels CUDA

  • Sintaxe e qualificadores de funções kernel
  • Configuração de inicialização e execução
  • Adição de vetores e padrões básicos de paralelismo de dados
  • Macros de verificação de erros CUDA

Hierarquia de Threads CUDA e Modelo de Execução

  • Organização de grid, bloco e thread
  • Indexação de threads e cálculo do ID global
  • Execução de warps e modelo SIMT
  • Ocupação e utilização de recursos

Arquitetura e Gerenciamento de Memória da GPU

  • Tipos de memória: global, compartilhada, constante, registradores
  • Alocação e liberação de memória do dispositivo
  • Transferências host-para-dispositivo e dispositivo-para-host
  • Memória compartilhada para colaboração intra-bloco

Memória Unificada e Migração de Dados

  • Modelo de memória unificada e alocações gerenciadas
  • Migração de páginas e paginação sob demanda
  • Prefetching assíncrono com cudaMemPrefetchAsync
  • Dicas de aconselhamento de memória para padrões de acesso

Profiling de Sistema Inteiro com Nsight Systems

  • Análise de linha do tempo do Nsight Systems
  • Identificação de pontos de sincronização CPU-GPU
  • Visualização da execução do kernel e transferências de memória
  • Interpretação de dados de desempenho em nível de sistema

Otimização de Kernels com Nsight Compute

  • Profiling interativo de kernels no Nsight Compute
  • Análise de throughput e largura de banda de memória
  • Estatísticas de utilização de computação e estado de warp
  • Análise guiada e regras de otimização

Streams Concorrentes e Operações Assíncronas

  • Streams CUDA e a stream padrão
  • Sobreposição da execução do kernel com transferências de dados
  • Sincronização de streams e eventos CUDA
  • Padrões de design de pipeline multi-stream

Tratamento de Erros e Ferramentas de Depuração

  • Códigos de erro da API CUDA e estratégias de recuperação
  • Compute-sanitizer para verificação de acesso à memória
  • cuda-gdb para depuração de kernels
  • Asserções e detecção síncrona de erros

Fluxo de Trabalho de Otimização Baseado em Profiling

  • Metodologia iterativa de profiling
  • Identificação e priorização de gargalos
  • Testes de regressão de desempenho
  • Documentação das decisões de otimização

Projeto de Aplicação Acelerada End-to-End

  • Predimensionamento de uma solução completa acelerada por GPU
  • Integração do profiling durante todo o desenvolvimento
  • Testes de desempenho (benchmarking) e relatórios
  • Considerações de implantação para produção

Requisitos

  • Competência básica em programação C/C++, incluindo tipos de variáveis, loops, instruções condicionais, funções e manipulação de arrays
  • Familiaridade com a compilação e execução de programas da linha de comando
  • Não é necessária experiência prévia com GPU ou programação CUDA

Público-Alvo

  • Desenvolvedores de software e engenheiros que buscam acelerar aplicações C/C++ com GPUs
  • Pesquisadores científicos e profissionais de HPC fazendo a transição de CPU exclusivo para computação heterogênea
  • Líderes técnicos avaliando a aceleração por GPU para cargas de trabalho em produção
 8 Horas

Número de participantes


Preço por participante

Próximas Formações Provisórias

Categorias Relacionadas