Entrar em Contato
 Duração 21 horas

Programa do Curso

Introdução

  • O que é a programação de GPU?
  • Por que utilizar a programação de GPU?
  • Quais são os desafios e compensações (trade-offs) da programação de GPU?
  • Quais são os frameworks e ferramentas para a programação de GPU?
  • Escolhendo o framework e a ferramenta adequados para a sua aplicação

OpenCL

  • O que é o OpenCL?
  • Quais são as vantagens e desvantagens do OpenCL?
  • Configuração do ambiente de desenvolvimento para OpenCL
  • Criação de um programa OpenCL básico que realize a adição de vetores
  • Utilização da API OpenCL para consultar informações do dispositivo, alocar e desalocar memória de dispositivo, copiar dados entre o anfitrião (host) e o dispositivo, iniciar kernels e sincronizar threads
  • Utilização da linguagem OpenCL C para escrever kernels que são executados no dispositivo e manipulam dados
  • Utilização de funções, variáveis e bibliotecas incorporadas do OpenCL para executar tarefas e operações comuns
  • Utilização dos espaços de memória do OpenCL, como global, local, constante e privado, para otimizar as transferências de dados e os acessos à memória
  • Utilização do modelo de execução do OpenCL para controlar work-items, work-groups e ND-ranges que definem o paralelismo
  • Depuração e teste de programas OpenCL utilizando ferramentas como CodeXL
  • Otimização de programas OpenCL utilizando técnicas como coalescing, cache, prefetching e profiling

CUDA

  • O que é o CUDA?
  • Quais são as vantagens e desvantagens do CUDA?
  • Configuração do ambiente de desenvolvimento para CUDA
  • Criação de um programa CUDA básico que realize a adição de vetores
  • Utilização da API CUDA para consultar informações do dispositivo, alocar e desalocar memória de dispositivo, copiar dados entre o anfitrião (host) e o dispositivo, iniciar kernels e sincronizar threads
  • Utilização da linguagem CUDA C/C++ para escrever kernels que são executados no dispositivo e manipulam dados
  • Utilização de funções, variáveis e bibliotecas incorporadas do CUDA para executar tarefas e operações comuns
  • Utilização dos espaços de memória do CUDA, como global, partilhado (shared), constante e local, para otimizar as transferências de dados e os acessos à memória
  • Utilização do modelo de execução do CUDA para controlar threads, blocos e grelhas (grids) que definem o paralelismo
  • Depuração e teste de programas CUDA utilizando ferramentas como CUDA-GDB, CUDA-MEMCHECK e NVIDIA Nsight
  • Otimização de programas CUDA utilizando técnicas como coalescing, cache, prefetching e profiling

ROCm

  • O que é o ROCm?
  • Quais são as vantagens e desvantagens do ROCm?
  • Configuração do ambiente de desenvolvimento para ROCm
  • Criação de um programa ROCm básico que realize a adição de vetores
  • Utilização da API ROCm para consultar informações do dispositivo, alocar e desalocar memória de dispositivo, copiar dados entre o anfitrião (host) e o dispositivo, iniciar kernels e sincronizar threads
  • Utilização da linguagem ROCm C/C++ para escrever kernels que são executados no dispositivo e manipulam dados
  • Utilização de funções, variáveis e bibliotecas incorporadas do ROCm para executar tarefas e operações comuns
  • Utilização dos espaços de memória do ROCm, como global, local, constante e privado, para otimizar as transferências de dados e os acessos à memória
  • Utilização do modelo de execução do ROCm para controlar threads, blocos e grelhas (grids) que definem o paralelismo
  • Depuração e teste de programas ROCm utilizando ferramentas como ROCm Debugger e ROCm Profiler
  • Otimização de programas ROCm utilizando técnicas como coalescing, cache, prefetching e profiling

HIP

  • O que é o HIP?
  • Quais são as vantagens e desvantagens do HIP?
  • Configuração do ambiente de desenvolvimento para HIP
  • Criação de um programa HIP básico que realize a adição de vetores
  • Utilização da linguagem HIP para escrever kernels que são executados no dispositivo e manipulam dados
  • Utilização de funções, variáveis e bibliotecas incorporadas do HIP para executar tarefas e operações comuns
  • Utilização dos espaços de memória do HIP, como global, partilhado (shared), constante e local, para otimizar as transferências de dados e os acessos à memória
  • Utilização do modelo de execução do HIP para controlar threads, blocos e grelhas (grids) que definem o paralelismo
  • Depuração e teste de programas HIP utilizando ferramentas como ROCm Debugger e ROCm Profiler
  • Otimização de programas HIP utilizando técnicas como coalescing, cache, prefetching e profiling

Comparação

  • Comparação das funcionalidades, desempenho e compatibilidade de OpenCL, CUDA, ROCm e HIP
  • Avaliação de programas GPU utilizando benchmarks e métricas
  • Aprendizagem das melhores práticas e dicas para a programação de GPU
  • Exploração das tendências atuais e futuras e desafios da programação de GPU

Resumo e Próximos Passos

Requisitos

  • Compreensão da linguagem C/C++ e dos conceitos de programação paralela
  • Conhecimento básico da arquitetura de computadores e da hierarquia de memória
  • Experiência com ferramentas de linha de comandos e editores de código

Público-Alvo

  • Desenvolvedores que desejam aprender as noções fundamentais da programação de GPU e os principais frameworks e ferramentas para o desenvolvimento de aplicações GPU
  • Desenvolvedores que desejam escrever código portável e escalável que possa ser executado em diferentes plataformas e dispositivos
  • Programadores que desejam explorar as vantagens e desafios da programação e otimização de GPU

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.
Investimento

Preço por grupo privado, formação online em direto, a partir de 3900 € + VAT*

Entre em contato conosco para obter um orçamento preciso e conhecer nossas promoções mais recentes

Próximas Formações Provisórias

Categorias Relacionadas