Comme Cling est basé sur Clang, l’implémentation de CUDA de ce dernier peut être utilisée pour Cling — et donc profiter de toutes les possibilités de CUDA de manière extrêmement dynamique, sans quitter le C++. Pour le moment, toutes les fonctionnalités de CUDA implémentées par Clang ne sont pas disponibles, notamment les attributs sur les variables.
Ce projet a été développé par un groupe d’étudiants à l’université technique de Dresde, mais le code source ne sera pas perdu (contrairement à la majorité des projets étudiants) : une bonne partie a déjà été incluse dans la version en cours de développement de Cling. L’implémentation est aussi prévue pour être assez flexible : elle ne fonctionne pour le moment qu’avec CUDA car Clang n’implémente rien d’autre, mais elle devrait fonctionner assez facilement avec d’autres technologies de calcul sur GPU (comme HIP ou C++AMP).
Source : présentation de Simeon Ehrig, Axel Naumann et Axel Hübl.