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.
Duração 28 horas
Programa do Curso
Introdução
- O que é o CUDA?
- CUDA vs OpenCL vs SYCL
- Visão geral das funcionalidades e arquitetura do CUDA
- Configuração do Ambiente de Desenvolvimento
Início
- Criação de um novo projeto CUDA utilizando o Visual Studio Code
- Exploração da estrutura do projeto e ficheiros
- Compilação e execução do programa
- Exibição da saída utilizando printf e fprintf
API do CUDA
- Compreensão do papel da API do CUDA no programa anfitrião (host)
- Utilização da API do CUDA para consultar informações e capacidades do dispositivo
- Utilização da API do CUDA para alocar e desalocar memória do dispositivo
- Utilização da API do CUDA para copiar dados entre anfitrião (host) e dispositivo
- Utilização da API do CUDA para lançar kernels e sincronizar threads
- Utilização da API do CUDA para lidar com erros e exceções
CUDA C/C++
- Compreensão do papel do CUDA C/C++ no programa do dispositivo
- Utilização do CUDA C/C++ para escrever kernels que são executados na GPU e manipulam dados
- Utilização de tipos de dados, qualificadores, operadores e expressões do CUDA C/C++
- Utilização de funções integradas do CUDA C/C++, como matemática, atómicas, warp, etc.
- Utilização de variáveis integradas do CUDA C/C++, como threadIdx, blockIdx, blockDim, etc.
- Utilização de bibliotecas do CUDA C/C++, como cuBLAS, cuFFT, cuRAND, etc.
Modelo de Memória do CUDA
- Compreensão da diferença entre os modelos de memória do anfitrião (host) e do dispositivo
- Utilização de espaços de memória do CUDA, como global, partilhado (shared), constante e local
- Utilização de objetos de memória do CUDA, como ponteiros, arrays, texturas e superfícies
- Utilização de modos de acesso à memória do CUDA, como somente leitura, somente escrita, leitura-escrita, etc.
- Utilização do modelo de consistência de memória do CUDA e mecanismos de sincronização
Modelo de Execução do CUDA
- Compreensão da diferença entre os modelos de execução do anfitrião (host) e do dispositivo
- Utilização de threads, blocos e grelhas (grids) do CUDA para definir a paralelização
- Utilização de funções de thread do CUDA, como threadIdx, blockIdx, blockDim, etc.
- Utilização de funções de bloco do CUDA, como __syncthreads, __threadfence_block, etc.
- Utilização de funções de grelha (grid) do CUDA, como gridDim, gridSync, cooperative groups, etc.
Depuração
- Compreensão dos erros e bugs comuns em programas CUDA
- Utilização do depurador do Visual Studio Code para inspecionar variáveis, pontos de interrupção (breakpoints), pilha de chamadas (call stack), etc.
- Utilização do CUDA-GDB para depurar programas CUDA no Linux
- Utilização do CUDA-MEMCHECK para detetar erros e fugas de memória
- Utilização do NVIDIA Nsight para depurar e analisar programas CUDA no Windows
Otimização
- Compreensão dos fatores que afetam o desempenho dos programas CUDA
- Utilização de técnicas de coalescing do CUDA para melhorar o débito (throughput) de memória
- Utilização de técnicas de cache e prefetching do CUDA para reduzir a latência de memória
- Utilização de técnicas de memória partilhada (shared) e memória local do CUDA para otimizar acessos à memória e largura de banda
- Utilização de ferramentas de profiling do CUDA para medir e melhorar o tempo de execução e a utilização de recursos
Requisitos
- Compreensão da linguagem C/C++ e conceitos de programação paralela
- Conhecimentos básicos de arquitetura de computador e hierarquia de memória
- Experiência com ferramentas de linha de comandos e editores de código
Público-Alvo
- Developers que desejam aprender a utilizar o CUDA para programar GPUs NVIDIA e explorar a sua paralelização
- Developers que desejam escrever código de alto desempenho e escalável que possa ser executado em diferentes dispositivos CUDA
- Programadores que desejam explorar os aspetos de baixo nível da programação de GPU e otimizar o desempenho do seu código
Formação Empresarial Personalizada
Soluções de formação concebidas 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, formação online em direto, a partir de 5200 € + VAT*
Entre em contato conosco para obter um orçamento preciso e conhecer nossas promoções mais recentes