Obrigado por enviar sua consulta! Um dos membros da nossa equipe entrará em contato com você em breve.
Obrigado por enviar sua reserva! Um dos membros da nossa equipe entrará em contato com você em breve.
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