Le GPU bénéficie d’une large diffusion favorisée par le marché important des jeux vidéos, ce qui a permis d’en réduire considérablement les couts par rapport à une architecture trop spécialisée. Pour comprendre les différences fondamentales entre un CPU et un GPU, il suffit de comparer leur manière de traiter chaque opération. Les CPU incluent un nombre restreint de cœurs optimisés pour le traitement en série, alors que les GPU intègrent des milliers de cœurs conçus pour traiter efficacement de nombreuses tâches simultanées.
Les constructeurs ont décidé donc de mettre en place des langages permettant de tirer profit des possibilités offertes par les processeurs graphiques. Au début, ATI a développé Close to Metal, une librairie très bas niveau suppléée par la suite par Stream. Ensuite vient NVIDIA, avec CUDA, une technologie disponible sur toutes les cartes graphiques grand public depuis la série des GeForce 8000. Cependant, la programmation des GPUs peut s’avérer délicate. C++ est rarement disponible dans une forme non modifiée et il existe peu d’approches portables et open source. L’une des plateformes les plus populaires, CUDA, n’a pratiquement aucune implémentation open source de qualité. Par conséquent, son support pour C++ est resté à la traine et n’a pas constitué un attrait pour les chercheurs et tous ceux qui n’ont pas été convaincus par les outils de NVIDIA.
Néanmoins, les choses commencent à changer aujourd’hui. Clang est maintenant un compilateur GPU open source et entièrement fonctionnel. Il fournit un modèle de programmation compatible avec CUDA et peut compiler la plupart des bibliothèques de cette technologie allant de Thrust à Eigen et TensorFlow.
Dans cette conférence, Justin Lebar qui est un ingénieur de Google, va donner un aperçu sur comment LLVM et Clang supportent C++ sur GPU, comment ils sont compatibles avec un code existant de CUDA et comment il est possible aujourd’hui d’écrire du code pour l’exécuter sur des GPU à l’aide de ce compilateur open source.
Source : YouTube
Et vous ?
Qu'en pensez-vous ?
Voir aussi :
La rubrique C++ : forum C++, cours et tutoriels C++, FAQ C++…
CppCon 2016 : Bjarne Stroustrup parle de l'évolution de C++ et s'intéresse à son passé, à son présent mais aussi à son futur
CppCon 2016 : Persuader les programmeurs de C de migrer vers C++, par Dan Saks
[HPC] Google contribue à un compilateur libre pour CUDA, leurs passes d'optimisation dans LLVM peuvent battre le compilateur de NVIDIA