Entrar em Contato

Programa do Curso

Introdução

  • O que é o OpenACC?
  • OpenACC versus OpenCL versus CUDA versus 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 e dos arquivos do projeto
  • Compilação e execução do programa
  • Exibição de saída usando printf e fprintf

Diretrizes e Clausulas do OpenACC

  • Compreensão das diretrizes e clausulas do OpenACC
  • Uso de diretrizes de paralelismo para criar regiões paralelas
  • Uso de diretrizes de kernels para paralelismo gerenciado pelo compilador
  • Uso de diretrizes de loop para paralelizar loops
  • Gestão do movimento de dados com diretrizes de dados
  • Sincronização de dados com diretrizes de atualização
  • Melhoria da reutilização de dados com diretrizes de cache
  • Criação de funções de dispositivo com diretrizes de rotina
  • Sincronização de eventos com diretrizes de espera

API do OpenACC

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

Bibliotecas do OpenACC e Interoperabilidade

  • Compreensão das bibliotecas e da interoperabilidade do OpenACC
  • Uso de bibliotecas matemáticas, aleatórias e complexas
  • Integração com outros modelos (CUDA, OpenMP, MPI)
  • Integração com bibliotecas de GPU (cuBLAS, cuFFT)

Ferramentas do OpenACC

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

Otimização

  • Fatores que afetam o desempenho de programas em OpenACC
  • Otimização da localidade de dados e redução de transferências
  • Otimização do paralelismo de loops e fusão
  • Otimização do paralelismo de kernels e fusão
  • Otimização da vetorização e ajuste automático (auto-tuning)

Resumo e Próximos Passos

Requisitos

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

Público-Alvo

  • Desenvolvedores que desejam aprender a usar o OpenACC para programar dispositivos heterogêneos e explorar seu paralelismo.
  • Desenvolvedores que desejam escrever código portátil e escalável, capaz de executar em diferentes plataformas e dispositivos.
  • Programadores que desejam explorar os aspectos de alto nível da programação heterogênea e otimizar a produtividade do seu código.
 28 Horas

Número de participantes


Preço por participante

Próximas Formações Provisórias

Categorias Relacionadas