La plupart des systèmes HPC actuels sont hétérogènes et utilisent des accélérateurs. oneAPI est un modèle de programmation standardisé et portable adapté au calcul hétérogène. Dans cet atelier, nous présenterons l'implémentation de oneAPI d'Intel pour le calcul hétérogène et portable sur multiples architectures : Data Parallel C++ (DPC) avec SYCL. Le cours donnera une introduction à cette méthode de programmation, ainsi qu’une introduction à l'outil de compatibilité DPC++ pour faciliter la migration de code CUDA vers SYCL. Les présentations seront suivies de travaux pratiques en utilisant la nouvelle infrastructure Intel Developer Cloud (IDC) avec accès aux processeurs Intel CPU et GPU Max Series.
Pourquoi participer à cet atelier ?
- Développer les meilleures pratiques de programmation hétérogène grâce à des tutoriels pratiques et des conférences techniques présentés par des spécialistes des outils de développement logiciel oneAPI.
- Comprendre comment utiliser le compilateur SYCL basé sur le C++ pour développer des applications hétérogènes fonctionnant sur des CPU et des accélérateurs HW de plusieurs fournisseurs.
- Apprendre à migrer les codes CUDA vers SYCL
- Bénéficier de la plateforme de développement Intel Developer Cloud.
Pré-requis et niveaux de contenu
Bonne connaissance de C/C++. Pour Data Parallel C++/SYCL, la connaissance de C++11 ou plus récent est recommandée (C++17 facilite grandement la programmation de SYCL2020).
Résultats de l'apprentissage
A l'issue de ce cours, les participants
- seront familiarisés avec le modèle de programmation oneAPI,
- auront une vue d'ensemble de la programmation DPC++/SYCL,
- sauront comment l'outil de compatibilité d'Intel peut aider à migrer le code CUDA vers SYCL.
Nombre de participants : 30
- Joël Falcou (LRI - Université Paris-Saclay)
- Jules Pénuchot (LRI - Université Paris-Saclay)
Salle 209, deuxième étage, couloir 16-26, Campus Pierre et Marie Curie de Sorbonne Université Sciences, 4, place Jussieu 75005, métro Jussieu.
Nombre de participants : 15
- Hardware Evolution: From CPUs to heterogenous HW (GPUs, FPGAs) programming
- Concept and purpose for the oneAPI Standardization initiative
Introduction à Intel oneAPI Toolkits et l'infrastructure Intel Developer Cloud (IDC)
Joël Falcou
- Intel’s oneAPI Solutions – Toolkits with Compilers, libs, analysis and migration tools
- IDC public available development Sandbox
- Intro to heterogenous programming model with SYCL 2020
- SYCL features and examples.
- “Hello World” Example
SYCL features and examples. • Device Selection • Execution Model • Compilation and Execution Flow • Memory Model; Buffers, Unified Shared Memory (USM) • Performance optimizations with SYCL featuresOpen-Source Compatibility tool for porting purposes (SYCLomatic) Using Codeplay SYCL-based NVIDIA and AMD plugins
- Start Working with IDC, explore SYCL,
- Understand the SYCL* language and programming model.
- Use device selection to offload kernel workloads.
- Decide when to use basic parallel kernels and ND Range Kernels.
- Create a host accessor.
- Build your first SYCL application
Travaux pratiques sur programmation CPU/GPU avec SYCL (cont)
Joël Falcou, Jules Pénuchot
Continue your learning journey and use CPU/GPU
- Loïc Gouarin
- Nicolas Rannou