Entrar em Contato
 Duração 28 horas

Programa do Curso

Introdução

  • O que é a programação de GPU?
  • Porquê utilizar a programação de GPU?
  • Quais são os desafios e trade-offs da programação de GPU?
  • Quais são os frameworks para programação de GPU?
  • Escolhendo o framework certo 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 o OpenCL
  • Criação de um programa básico em OpenCL que realize a soma de vetores
  • Utilização da API do OpenCL para consultar informações do dispositivo, alocar e desalocar memória do dispositivo, copiar dados entre 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 manipular dados
  • Utilização das funções, variáveis e bibliotecas integradas 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 os work-items, work-groups e ND-ranges que definem o paralelismo
  • Depuração e teste de programas em OpenCL utilizando ferramentas como o CodeXL
  • Otimização de programas em OpenCL utilizando técnicas como coalescing, caching, prefetching e profiling

CUDA

  • O que é o CUDA?
  • Quais são as vantagens e desvantagens do CUDA?
  • Configuração do ambiente de desenvolvimento para o CUDA
  • Criação de um programa básico em CUDA que realize a soma de vetores
  • Utilização da API do CUDA para consultar informações do dispositivo, alocar e desalocar memória do dispositivo, copiar dados entre 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 manipular dados
  • Utilização das funções, variáveis e bibliotecas integradas do CUDA para executar tarefas e operações comuns
  • Utilização dos espaços de memória do CUDA, como global, 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 as threads, blocos e grelhas que definem o paralelismo
  • Depuração e teste de programas em CUDA utilizando ferramentas como CUDA-GDB, CUDA-MEMCHECK e NVIDIA Nsight
  • Otimização de programas em CUDA utilizando técnicas como coalescing, caching, prefetching e profiling

ROCm

  • O que é o ROCm?
  • Quais são as vantagens e desvantagens do ROCm?
  • Configuração do ambiente de desenvolvimento para o ROCm
  • Criação de um programa básico em ROCm que realize a soma de vetores
  • Utilização da API do ROCm para consultar informações do dispositivo, alocar e desalocar memória do dispositivo, copiar dados entre 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 manipular dados
  • Utilização das funções, variáveis e bibliotecas integradas 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 as threads, blocos e grelhas que definem o paralelismo
  • Depuração e teste de programas em ROCm utilizando ferramentas como ROCm Debugger e ROCm Profiler
  • Otimização de programas em ROCm utilizando técnicas como coalescing, caching, prefetching e profiling

Comparação

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

Resumo e Próximos Passos

Requisitos

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

Público-Alvo

  • Programadores que desejam aprender a utilizar diferentes frameworks para programação de GPUs e comparar as suas funcionalidades, desempenho e compatibilidade
  • Programadores que desejam escrever código portátil e escalável que possa ser executado em diferentes plataformas e dispositivos
  • Programadores que desejam explorar os trade-offs e os desafios da programação e otimização de GPUs

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 5200 € + 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