Programa do Curso
Computação em GPU e Arquitetura CUDA
- Diferenças arquiteturais entre CPU e GPU
- Modelo streaming multiprocessor da NVIDIA GPU
- Visão geral do modelo de programação CUDA
- Computação heterogênea e o paradigma host-dispositivo
Configurando o Ambiente de Desenvolvimento CUDA
- Instalando o CUDA Toolkit 13.x
- Compilador NVCC e fluxo de build
- Verificando o ambiente com consultas de dispositivo
- Integração com IDE e ferramentas de desenvolvimento
Escrevendo e Lançando Kernels CUDA
- Sintaxe e qualificadores de funções kernel
- Lançamento de configuração e execução
- Soma de vetores e padrões básicos de dados paralelos
- Macros de verificação de erros CUDA
Hierarquia de Threads CUDA e Modelo de Execução
- Organização em Grid, bloco e thread
- Indexação de threads e cálculo do ID global
- Execução de WARP e modelo SIMT
- Ocupação e utilização de recursos
Arquitetura e Gerenciamento de Memória GPU
- Tipos de memória: global, compartilhada, constante, registradores
- Alocação e liberação de memória do dispositivo
- Transferências host-dispositivo e dispositivo-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 sugestão de acesso para padrões de leitura/escrita
Perfilagem Sistêmica 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 de kernels e transferências de memória
- Interpretação de dados de desempenho em nível de sistema
Otimização de Kernels com Nsight Compute
- Perfilagem interativa de kernels do Nsight Compute
- Análise de throughput e largura de banda de memória
- Utilização de computação e estatísticas de estado de WARP
- Análise guiada e regras de otimização
Fluxos Concorrentes e Operações Assíncronas
- Fluxos CUDA e o fluxo padrão
- Sobreposição de execução de kernels com transferências de dados
- Sincronização de fluxos e eventos CUDA
- Padrões de design de pipelines multi-fluxo
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
- Assegurações e detecção síncrona de erros
Fluxo de Trabalho de Otimização Orientado por Perfilagem
- Metodologia iterativa de perfilagem
- Identificação e priorização de gargalos
- Testes de regressão de desempenho
- Documentação das decisões de otimização
Projeto Final de Aplicativo Acelerado Extremo a Extremo
- Projeto de uma solução completa acelerada por GPU
- Integração da perfilagem durante todo o desenvolvimento
- Avaliação de desempenho 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, laços, declarações condicionais, funções e manipulação de arrays
- Conhecimento prévio sobre compilar e executar programas pela linha de comando
- Não é necessária experiência prévia com GPU ou programação CUDA
Público-Alvo
- Desenvolvedores e engenheiros de software que buscam acelerar aplicativos C/C++ com GPUs
- Pesquisadores científicos e profissionais de HPC migrando de computação exclusiva em CPU para computação heterogênea
- Líderes técnicos avaliando a aceleração por GPU para cargas de trabalho de produção
Treinamento Corporativo Personalizado
Soluções de treinamento projetadas exclusivamente para empresas.
- Conteúdo Personalizado: Adaptamos o programa e os exercícios práticos aos objetivos e necessidades reais do seu projeto.
- Horário Flexível: Datas e horários adaptados à agenda da sua equipe.
- Formato: Online (ao vivo), In-Company (em suas instalações) ou Híbrido.
Preço por grupo privado, treinamento online ao vivo, a partir de 2600 € + VAT*
Entre em contato conosco para obter um orçamento preciso e conhecer nossas promoções mais recentes