Le Khronos Group fait évoluer le standard de programmation parallèle SYCL et l’aligne avec l’ISO C++

[EDITION ABONNES] L’organisme de standardisation Khronos Group, focalisé sur les spécifications liées à la programmation logicielle, annonce la ratification et la publication de la spécification finale SYCL 2020, un modèle de programmation de haut niveau, destiné aux programmeurs qui utilisent le langage C++... et qui développent sur des architectures matérielles parallèles et hétérogènes.

La spécification SYCL 2020 s'appuie sur les fonctionnalités de la version 1.2.1 du standard SYCL (publié en 2015) et sur la version C++ 17 du langage de programmation éponyme, publiée par l’ISO, afin d'accélérer l’exécution d’applications C++ dans des domaines comme le calcul haute performance (HPC), l'apprentissage automatique, l'informatique embarquée, et ce sur un large éventail d'architectures de processeurs CPU, GPU, FPGA et blocs d’accélération matérielle.

Parmi les ajouts clés de la version SYCL 2020 jugée majeure par le Khronos Group, ce dernier met notamment en avant le principe de mémoire partagée unifiée (USM, Unified Shared Memory) qui permet au code avec ses pointeurs de fonctionner naturellement sans tampons ni accesseurs (fonctions renvoyant la valeur d'une propriété d'un objet). SYCL 2020 intègre aussi un mécanisme de réduction de code afin d’obtenir des performances optimisées sur le matériel, des algorithmes pour des opérations parallèles efficaces entre différents éléments de travail (work items), une simplification de l'instanciation de modèle de classe (CTAD, Class Template Argument Deduction), une interopérabilité étendue liée à diverses API d'accélération backend et enfin l’alignement des opérations atomiques SYCL sur les les opérations atomiques C++ standard pour améliorer la programmation parallèle.

« L’objectif principal de SYCL 2020 est de parvenir à une convergence plus étroite avec le langage ISO C++ et d’amener la programmation hétérogène parallèle au C++ moderne grâce à des normes ouvertes, explique Michael Wong, ingénieur chez Codeplay et président du groupe de travail SYCL au sein du Khronos Group. SYCL peut tirer parti de divers processeurs pour accélérer des applications dans de nombreux domaines comme le calcul hautes performances, l'automobile et l'apprentissage automatique. »

Parallèlement à la publication de la spécification SYCL 2020, le Khronos Group indique que l'écosystème SYCL continue de croître avec le développement de compilateurs, de bibliothèques logicielles et d'outils de programmation, comme par exemple oneAPI Data Parallel C++ (DPC++) d'Intel qui intègre déjà de nombreuses fonctionnalités SYCL 2020, ou encore l’implantation de SYCL dans l’environnement ComputeCpp SYCL 1.2.1 de Codeplay qui inclut certaines fonctionnalités de SYCL 2020 en tant qu'extensions, y compris la prise en charge des DSP et des cœurs RISC-V.