Professor: Amanda Sabatini (LBNL) e Douglas Adriano Augusto (Fiocruz)
Horarios: Quarta 20/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:
- 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.
- SYCL Overview - The Khronos Group Inc, https://www.khronos.org/sycl