Voltar aos Cursos
AI021 Professional

Guia de Programação CUDA

O recurso oficial e abrangente para desenvolvedores aprenderem o modelo de programação CUDA e como escrever código de alto desempenho que execute em GPUs da NVIDIA. Este guia abrange a arquitetura da plataforma, a interface de programação, recursos avançados de hardware e especificações técnicas.

5.0
30.0h
1762 estudantes
1 curtidas
Inteligência Artificial
Começar a Aprender

Visão Geral do Curso

📚 Resumo do Conteúdo

O recurso oficial e abrangente para desenvolvedores aprenderem o modelo de programação CUDA e como escrever código de alto desempenho que execute em GPUs da NVIDIA. Este guia abrange a arquitetura da plataforma, a interface de programação, recursos avançados de hardware e especificações técnicas.

Domine a arte do cálculo paralelo com o guia padrão da indústria para o NVIDIA CUDA.

Autor: NVIDIA Corporation

Agradecimentos: Copyright © 2007-2024 NVIDIA Corporation & afiliadas. Todos os direitos reservados.

🎯 Objetivos de Aprendizagem

  1. Definir os papéis do host (CPU) e do dispositivo (GPU) em um sistema heterogêneo.
  2. Explicar o modelo de programação SIMT e a organização hierárquica de threads, blocos e grids.
  3. Diferenciar entre PTX (Parallel Thread Execution) e código binário (cubins) e explicar como a compilação Just-in-Time (JIT) facilita a compatibilidade.
  4. Desenvolver e Compilar Kernels CUDA: escrever funções global, configurar execução com notação de triplas setas e gerenciar o fluxo de compilação NVCC.
  5. Otimizar Memória e Movimentação de Dados: distinguir entre modelos de memória Unificada, Explícita e Mapeada, e implementar memória host bloqueada por página para transferências eficientes.
  6. Gerenciar Execução Paralela: utilizar Streams CUDA, Events e Grupos Cooperativos para gerenciar tarefas assíncronas e sincronizar operações CPU-GPU.
  7. Realizar aritmética de ponteiros complexa e identificar gargalos arquitetônicos (von Neumann vs. Harvard).
  8. Implementar padrões avançados de execução CUDA, incluindo Lançamentos Dependentes Programáticos de Kernels e Transferências de Memória em Lotes Heterogêneas.
  9. Utilizar recursos específicos de hardware como Escopos de Thread, Proxies Assíncronos e Pipelines para maximizar a concorrência.
  10. Configurar e otimizar o desempenho da Memória Unificada usando pré-carregamento, dicas de uso e gerenciamento de tamanho de página.

Aulas