IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Coprocesseurs et calcul hétérogène Discussion :

LLVM et Clang s'apprêtent à faire un bond en avant avec OpenCL et CUDA


Sujet :

Coprocesseurs et calcul hétérogène

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 609
    Points : 188 580
    Points
    188 580
    Par défaut LLVM et Clang s'apprêtent à faire un bond en avant avec OpenCL et CUDA
    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ébuteil 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).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Points : 620
    Points
    620
    Par défaut
    Excitant !

    clang est en train de prendre mon coeur au détriment de gcc surtout que concernant OpenACC, gcc ne prend pas en charge les GPU < GT 720.

    D'autre part, à moins d'un sursaut de l'équipe gcc, je sens que blender 3D va devoir basculer sur clang s'il veut s'épargner des efforts de portage CUDA -> AMD. Cela se fait sans effort sur OS Posix, pour l'avoir fait. Reste à voir sur Windows. Mais étant donné que clang a une interface compatible avec le compilateur C++ de Windows, ça devrai le faire.

    J'aime aussi beaucoup clang à cause de sa librairie libclang d'accès à l' AST C++.

  3. #3
    Membre expert

    Profil pro
    activité : oui
    Inscrit en
    Janvier 2014
    Messages
    1 260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : activité : oui

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1 260
    Points : 3 402
    Points
    3 402
    Par défaut
    Clang n'a t-il pas aussi libtcc (Tiny C Compiler ?) pour de la compilation à la voler de code C ?

    Quels étaient les points critiques (pour ton usage) t'ayant fait adopté GCC plutôt que Clang à l'époque du duo naissant ?
    Les avantage que l'un a sur l'autre ne sont t-il pas éphémères ? (un coup l'un a le dessus, un coup c'est l'autre)... ou bien y a t-il une tendance qui se dégage permettant de penser Clang s'imposera définitivement sur GCC ?

    J'ai très peu suivi l'actualité des compilateurs, mais à te lire, certains points semblent très limitant lors du choix de son outil de production, alors que le but qu'ils servent semble le même. ^^'
    Clang à l'air d'avoir un dynamisme de développement plus fort que GCC. Une simple impression ?
    Pensez à utiliser les pouces d’appréciation, pour participer à la visibilité de l'apport d'un propos, ou l'intérêt que vous y prêtez... qu'il soit positif ou négatif.

Discussions similaires

  1. Sortie de LLVM et Clang 5.0
    Par dourouc05 dans le forum Clang et LLDB
    Réponses: 1
    Dernier message: 12/09/2017, 14h33
  2. Sortie de LLVM et Clang 4.0
    Par dourouc05 dans le forum Clang et LLDB
    Réponses: 0
    Dernier message: 13/03/2017, 20h54
  3. [Data] Faire des requêtes en dur avec des DAO
    Par hocinema dans le forum Spring
    Réponses: 8
    Dernier message: 22/04/2010, 10h50
  4. [Débutant] Faire un graph ss lib avec une boucle
    Par Darkenshin dans le forum C
    Réponses: 5
    Dernier message: 24/11/2005, 17h39
  5. Comment faire une division par 5 avec les decalages
    Par Zaion dans le forum Assembleur
    Réponses: 7
    Dernier message: 05/11/2004, 18h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo