CppCon 2016 : "Clang et C++ sur GPU : un compilateur C++ open source et compatible avec CUDA"
Par Justin Lebar
Le CPU a toujours constitu� le principal levier de traitement de l�ensemble des op�rations lourdes de calcul comme les simulations physiques, le rendu hors-ligne pour les films, les calculs de risques pour les institutions financi�res, la pr�vision m�t�orologique, l'encodage de fichier vid�o et son, etc. V�ritable chef d�orchestre de l�ordinateur, le CPU a permis � Intel de dominer largement tous les besoins de calcul et d�engranger de substantielles marges avec ses 80% de parts de march�. Certains de ces calculs lourds sont cependant facilement parall�lisables et peuvent donc b�n�ficier d'une architecture pens�e pour le calcul parall�le. La plupart des architectures parall�les �taient lourdes, ch�res et s'adressaient � un march� de niche jusqu'� ce que le GPU s'impose comme un acteur important du calcul parall�le.
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
Partager