LLVM est une bibliothèque aidant à réaliser des compilateurs, le plus connu étant probablement Clang. Ce dernier est notamment utilisé dans un certain nombre d’applications scientifiques, de par sa compatibilité avec OpenMP ou encore OpenACC. La famille comprend aussi Flang, un compilateur Fortran — un langage encore roi dans le domaine du calcul scientifique. LLVM est aussi utilisé par AMD pour développer HIP, un transpilateur de code CUDA (spécifique à NVIDIA et très utilisé) afin de l’exécuter sur les processeurs graphiques d’AMD.
Justement, ce travail est sur le point d’être intégré à Clang, afin d’exécuter du code CUDA sur les processeurs graphiques AMD sans étape extérieure (surtout que le compilateur officiel de NVIDIA est aussi maintenant basé sur Clang). Une des premières étapes est de marquer les GPU AMD comme compatibles avec CUDA, ce qui a été fait il y a deux semaines, après un certain temps de discussion. D’autres modifications sont toujours en discussion avant une intégration à Clang pour gérer le code généré par HIP.
Côté OpenCL, la version 2.2 de la norme commence à infuser dans Clang. Cela signifie principalement qu’il deviendra très bientôt possible d’utiliser du code C++14 dans du code prévu pour être déchargé sur un accélérateur (comme une carte graphique). La première étape est déjà franchie : l’option -std=c++ est comprise par Clang pour du code OpenCL. Le code actuel pour le reste de l’implémentation est déjà assez vieux (il date de 2016) et son intégration débute — il est en même temps retravaillé au niveau de l’intégration avec SPIR-V, la représentation intermédiaire de code prévue tant pour les applications graphiques (Vulkan) que de calcul (OpenCL).
LLVM et Clang s'apprêtent à faire un bond en avant avec OpenCL et CUDA
Avec l'intégration d'AMD HIP et d'OpenCL C++
LLVM et Clang s'apprêtent à faire un bond en avant avec OpenCL et CUDA
Avec l'intégration d'AMD HIP et d'OpenCL C++
Le , par dourouc05
Une erreur dans cette actualité ? Signalez-nous-la !