Entrar em Contato
 Duração 28 horas

Programa do Curso

Introdução

  • O que é o OpenACC?
  • OpenACC vs OpenCL vs CUDA vs SYCL
  • Visão geral das funcionalidades e arquitetura do OpenACC
  • Configuração do ambiente de desenvolvimento

Primeiros Passos

  • Criação de um projeto OpenACC no Visual Studio Code
  • Exploração da estrutura do projeto e ficheiros
  • Compilação e execução do programa
  • Exibição de saída com printf e fprintf

Diretrizes e Cláusulas OpenACC

  • Compreensão das diretrizes e cláusulas OpenACC
  • Utilização de diretrizes parallel para criar regiões paralelas
  • Utilização de diretrizes kernels para paralelismo gerido pelo compilador
  • Utilização de diretrizes loop para paralelizar ciclos
  • Gestão do movimento de dados com diretrizes data
  • Sincronização de dados com diretrizes update
  • Melhoria da reutilização de dados com diretrizes cache
  • Criação de funções de dispositivo com diretrizes routine
  • Sincronização de eventos com diretrizes wait

API OpenACC

  • Compreensão do papel da API OpenACC
  • Consulta de informações e capacidades do dispositivo
  • Definição do número e tipo de dispositivo
  • Tratamento de erros e exceções
  • Criação e sincronização de eventos

Bibliotecas OpenACC e Interoperabilidade

  • Compreensão das bibliotecas OpenACC e interoperabilidade
  • Utilização de bibliotecas de matemática, números aleatórios e complexos
  • Integração com outros modelos (CUDA, OpenMP, MPI)
  • Integração com bibliotecas de GPU (cuBLAS, cuFFT)

Ferramentas OpenACC

  • Compreensão das ferramentas OpenACC no desenvolvimento
  • Perfil e depuração de programas OpenACC
  • Análise de desempenho com PGI Compiler, NVIDIA Nsight Systems, Allinea Forge

Otimização

  • Fatores que afetam o desempenho dos programas OpenACC
  • Otimização da localidade de dados e redução de transferências
  • Otimização do paralelismo e fusão de ciclos
  • Otimização do paralelismo e fusão de kernels
  • Otimização da vetorização e auto-tuning

Resumo e Próximos Passos

Requisitos

  • Conhecimento da linguagem C/C++ ou Fortran e conceitos de programação paralela
  • Conhecimento básico 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

  • Desenvolvedores que pretendem aprender a utilizar o OpenACC para programar dispositivos heterogéneos e explorar o seu paralelismo
  • Desenvolvedores que pretendem escrever código portátil e escalável, capaz de executar em diferentes plataformas e dispositivos
  • Programadores que pretendem explorar os aspetos de alto nível da programação heterogénea e otimizar a produtividade 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.
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