Introduction to SYCL

Course/Event Essentials

Event/Course Start
Event/Course End
Event/Course Format
Online
Live (synchronous)

Venue Information

Country: Portugal
Venue Details: Click here

Training Content and Scope

Scientific Domain
Technical Domain
Level of Instruction
Beginner
Sector of the Target Audience
Research and Academia
HPC Profile of Target Audience
Application Users
Application Developers
Language of Instruction

Other Information

Supporting Project(s)
EuroCC2/CASTIEL2
Event/Course Description

Sobre o curso

Este curso proporciona uma introdução à computação paralela e ao SYCL. Os participantes aprenderão os conceitos fundamentais da computação paralela, como configurar o ambiente de desenvolvimento e escrever programas eficientes utilizando SYCL.

 

Programa

Sessão 1: Introdução à Computação Paralela e Configuração do Ambiente (11 Novembro)

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

Sessão 2: Descoberta de Dispositivos no SYCL (15 Novembro)

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

Sessão 3: Filas, Grupos de Comando e Kernels (18 Novembro)

  • Organização do trabalho em aplicações SYCL
  • Compreensão de filas, grupos de comando e gráficos de tarefas
  • Ações: Single task, parallel for, parallel for work group
  • Operações de memória: copy, update host, fill
  • 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 (22 Novembro)

  • Buffers: Criação, inicialização e gestão de ciclo de vida
  • Acessors: Acessar dados dos buffers em kernels
  • Movimento de dados implícito e explícito entre host e dispositivo
  • Acessors de host para dados de buffers
  • Memória Partilhada Unificada (USM): Gestão de memória baseada em ponteiros
  • 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 (25 Novembro)

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

Sessão 6: Projeto Final (29 Novembro)

  • Desenvolvimento de um projeto final em grupo.