MC-SD03-VI
Programação avançada em SYCL

Professor: Amanda Sabatini (LBNL) e Douglas Adriano Augusto (Fiocruz)

Horarios: Quarta 21/01 de 13:30h às 17:30h

Objetivo: O SYCL é um modelo de programação paralela heterogênea baseado em C++ moderno e OpenCL. Os códigos implementados em SYCL seguem estritamente a sintaxe C++ e são compatíveis, sem modificação, com virtualmente todos os tipos de processadores (CPUs) e aceleradores (GPUs, FPGAs, etc.). O SYCL une a vantagem da implementação incremental do paralelismo em códigos C++ sequenciais com o desempenho de linguagens de mais baixo nível, como o OpenCL e CUDA, resultando em códigos bem mais enxutos. Além disso, o SYCL é um padrão com especificação aberta, gerido pelo grupo Khronos, onde diversas entidades envolvidas com computação de alto desempenho participam conjuntamente no seu desenvolvimento.

Ementa: O curso é dividido em dois módulos, o introdutório e avançado. O primeiro módulo abordará os principais conceitos do SYCL e apresentará alguns exemplos bastante simples que ilustrem o uso da linguagem. Já o segundo módulo trará exemplos mais complexos juntamente com alguns conceitos avançados e práticas recomendadas para otimização de desempenho.
Pré-requisitos: Espera-se que o aluno possua noções de C++ e conceitos de computação paralela.

Bibliografia:
  1. Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL (2021), Reinders, J., Ashbaugh, B., Brodman, J., Kinsner, M., Pennycook, J., Tian, X.
  2. SYCL Overview - The Khronos Group Inc, https://www.khronos.org/sycl