Jul 8 – 25, 2024 ONLINE
Porto & Évora, Portugal
Europe/Lisbon timezone

Programa

Sessão 1: Introdução à Computação Paralela e Configuração do Ambiente

  1. Visão geral do SYCL: Um modelo de programação C++ de alto nível para plataformas heterogéneas.
  2. Pequena introdução ao C++
  3. Configuração do Ambiente de programação

Sessão 2: Descoberta de Dispositivos no SYCL

  1. Consulta de informações sobre dispositivos usando get_info
  2. Utilização de seletores de dispositivos padrão e personalizados
  3. Técnicas de descoberta de dispositivos para portabilidade de código
  4. Utilização de aspectos para consultar características dos dispositivos

Sessão 3: Filas, Grupos de Comando e Kernels

  1. Organização do trabalho em aplicações SYCL
  2. Compreensão de filas, grupos de comando e gráficos de tarefas
  3. Ações: Single task, parallel for, parallel for work group
  4. Operações de memória: copy, update host, fill
  5. Sincronização e dependências com eventos e wait()

Sessão 4: Gestão de Dados com Buffers, Acessores e Memória Partilhada Unificada no SYCL

  1. Buffers: Criação, inicialização e gestão de ciclo de vida
  2. Acessors: Acessar dados dos buffers em kernels
  3. Movimento de dados implícito e explícito entre host e dispositivo
  4. Acessors de host para dados de buffers
  5. Memória Partilhada Unificada (USM): Gestão de memória baseada em ponteiros
  6. Comparação entre o modelo de buffer-acessor e USM

Sessão 5: Expressão de Paralelismo com SYCL: Kernels Básicos de Dados-Paralelos

  1. Compreensão de conceito de work-items, work-groups e ND-ranges
  2. Kernels básicos: parallel for
  3. Kernels: ND-range
  4. Multiplicação de matrizes: Abordagem básica e otimizada

Sessõ 6: Projeto Final

  1. Desenvolvimento de um projeto final em grupo.