Intel a publié un outil open source pour migrer le code vers SYCL1 par le biais d'un projet appelé SYCLomatic, qui aide les développeurs à porter plus facilement le code CUDA vers SYCL et C++ afin d'accélérer la programmation inter-architecture pour les architectures hétérogènes. Ce projet open source permet la collaboration de la communauté pour faire progresser l'adoption de la norme SYCL, une étape clé pour libérer les développeurs d'un écosystème propriétaire à fournisseur unique. Alors que l'innovation matérielle a conduit à un paysage architectural hétérogène diversifié pour l'informatique, le développement logiciel est devenu de plus en plus complexe, ce qui rend difficile de tirer pleinement parti des CPU et des accélérateurs.

Les développeurs d'aujourd'hui et leurs équipes sont à court de temps, d'argent et de ressources pour permettre la réécriture et le test du code afin d'améliorer les performances des applications pour ces différentes architectures. Les développeurs recherchent des alternatives ouvertes qui améliorent le time-to-value, et Intel offre une voie plus facile et plus courte pour permettre le choix du matériel. SYCL, un standard du Khronos Group basé sur C++, étend les capacités de C++ pour prendre en charge les configurations à architecture multiple et à mémoire disjointe.

Pour lancer ce projet, Intel a mis en libre accès la technologie derrière son outil de compatibilité DPC++ afin de faire progresser les capacités de migration pour produire davantage d'applications basées sur SYCL. La réutilisation du code sur plusieurs architectures simplifie le développement, réduisant ainsi le temps et les coûts de maintenance du code. Utilisant la licence Apache 2.0 avec l'exception LLVM, le projet SYCLomatic hébergé sur GitHub propose une communauté de développeurs pour contribuer et fournir des commentaires afin de poursuivre le développement hétérogène ouvert sur les CPU, GPU et FPGA.

Comment fonctionne l'outil SYCLomatic : SYCLomatic aide les développeurs à porter le code CUDA vers SYCL, en migrant généralement 90 à 95 % du code CUDA automatiquement vers le code SYCL2. Pour terminer le processus, les développeurs effectuent le reste du codage manuellement, puis effectuent un réglage personnalisé pour atteindre le niveau de performance souhaité pour l'architecture. Comment fonctionne l'utilisation de la migration de code : Les organismes de recherche et les clients d'Intel ont utilisé avec succès l'outil de compatibilité Intel® DPC++, qui possède les mêmes technologies que SYCLomatic,pour migrer le code CUDA vers SYCL (ou Data Parallel C++, l'implémentation de SYCL par oneAPI) sur les architectures de plusieurs fournisseurs.

Parmi les exemples, citons l'Université de Stockholm avec GROMACS 20223, le Zuse Institute Berlin (ZIB) avec easyWave, Samsung Medison et Bittware (voir le contenu du DevSummit de oneAPI pour plus d'exemples). De nombreux clients testent également du code sur les GPU actuels et futurs basés sur l'architecture Intel® Xe, notamment le supercalculateur Aurora de l'Argonne National Laboratory, le Leibniz Supercomputing Centre (LRZ) et GE Healthcare.