Description

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

Intervenants

  • Joël Falcou (LRI - Université Paris-Saclay)
  • Jules Pénuchot (LRI - Université Paris-Saclay)

Lieux

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

Programme

lundi 04/12

09:15 09:35 Pas de support disponible Pas de résumé disponible

Accueil

09:35 10:00 Pas de support disponible

Introduction à oneAPI

Vladimir Kostarev

  • Hardware Evolution: From CPUs to heterogenous HW (GPUs, FPGAs) programming
  • Concept and purpose for the oneAPI Standardization initiative
10:00 10:15 Pas de support disponible

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
10:15 11:00 Pas de support disponible

Présentation de DPC++/SYCL [1ere partie]

Jules Pénuchot

  • Intro to heterogenous programming model with SYCL 2020
  • SYCL features and examples.
  • “Hello World” Example
11:00 11:15 Pas de support disponible Pas de résumé disponible

Pause café

11:15 12:00 Pas de support disponible

Présentation de DPC++/SYCL [2nd partie]

Joël Falcou

SYCL features and examples. • Device Selection • Execution Model • Compilation and Execution Flow • Memory Model; Buffers, Unified Shared Memory (USM) • Performance optimizations with SYCL features
12:00 12:45 Pas de support disponible

Comment migrer votre code CUDA vers SYCL

Jules Pénuchot

Open-Source Compatibility tool for porting purposes (SYCLomatic) Using Codeplay SYCL-based NVIDIA and AMD plugins
12:45 14:00 Pas de support disponible Pas de résumé disponible

Déjeuner

14:00 15:15 Pas de support disponible

Travaux pratiques sur programmation CPU/GPU avec SYCL

Joël Falcou, Jules Pénuchot

  • 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
15:15 15:45 Pas de support disponible Pas de résumé disponible

Pause café

15:45 16:30 Pas de support disponible

Travaux pratiques sur programmation CPU/GPU avec SYCL (cont)

Joël Falcou, Jules Pénuchot

Continue your learning journey and use CPU/GPU

Organisation

  • Loïc Gouarin
  • Nicolas Rannou