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

Hardware Discussion :

Intel achève l'adoption de LLVM et mettra fin aux mises à jour des compilateurs C/C++ classiques


Sujet :

Hardware

  1. #1
    Chroniqueur Actualités
    Avatar de Bruno
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Mai 2019
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 1 840
    Points : 36 218
    Points
    36 218
    Par défaut Intel achève l'adoption de LLVM et mettra fin aux mises à jour des compilateurs C/C++ classiques
    Intel achève l'adoption de LLVM et mettra fin aux mises à jour des compilateurs C/C++ classiques,
    le compilateur Intel C/C++ basé sur LLVM présente un avantage de 41 % par rapport à gcc

    James Reinders, ingénieur chez Intel et expert en calcul parallèle, a annoncé le 08 août que l'adoption de l'architecture open source Low Level Virtual Machine (LLVM) pour le compilateur C/C++ d'Intel est terminée, cette transition s'inscrit dans le cadre des efforts continus d'Intel pour faire de oneAPI la suite d'outils privilégiée pour la programmation de son portefeuille croissant de processeurs divers, notamment les CPU, les FPGA et les GPU. Alors que le compilateur Intel C/C++ classique présente ici un avantage de 18 % par rapport à gcc, le compilateur Intel C/C++ basé sur LLVM présente un avantage de 41 %.

    « Nous recommandons que tous les nouveaux projets commencent avec les compilateurs Intel C/C++ basés sur LLVM, et tous les projets existants devraient prévoir de migrer vers le nouveau compilateur cette année. À un moment donné dans le futur, les compilateurs C/C++ classiques entreront en mode Legacy Product Support, signalant la fin des mises à jour régulières de la base de compilateurs classiques, et ils n'apparaîtront plus dans les boîtes à outils oneAPI », a déclaré James Reinders sur le blog d’Intel.

    LLVM est une infrastructure de compilateur conçue pour l'optimisation du code à la compilation, à l'édition de liens, voire à l'exécution ou durant les « temps morts » d'un programme, quel que soit le langage d'origine. L'ancienne suite d'outils d'Intel, Parallel Studio XE, a été rebaptisée et reconditionnée lorsque les kits d'outils Intel oneAPI ont été publiés en décembre 2020 ; ces kits contenaient tous les outils Parallel Studio plus un compilateur DPC++ (data parallel C++). Le dernier post sur le blog indique que l'adoption par Intel de LLVM comme architecture de base du compilateur est maintenant terminée et qu'Intel a ajouté ou modifié certaines fonctionnalités pour prendre directement en charge l'architecture Intel.

    « On peut s'attendre à ce que les performances des compilateurs Intel C/C++ soient supérieures à celles des compilateurs clang+LLVM de base pour l'architecture Intel. Par défaut, les compilateurs C/C++ d'Intel sont désormais des versions (icx) qui ont adopté l'infrastructure open source LLVM. Nous poursuivons notre forte tradition de contribution aux projets clang et LLVM, y compris les optimisations pour LLVM et clang. Toutes nos techniques d'optimisation ne sont pas mises en amont ; parfois, parce qu'elles sont trop nouvelles, parfois parce qu'elles sont très spécifiques à l'architecture Intel. Il faut s'y attendre et cela est cohérent avec les autres compilateurs qui ont adopté LLVM », a précisé James Reinders.

    Nom : Intel1.PNG
Affichages : 162230
Taille : 14,6 Ko

    Intel travaille depuis longtemps avec les développeurs de logiciels et fait des progrès dans le renforcement des protections des systèmes d'exploitation et des logiciels fonctionnant sur les systèmes informatiques modernes. En début d’année, précisément en février, Intel annonce que sa fonction de sécurité Control-flow Enforcement Technology (CET) d'Intel sera dorénavant prise en charge sur les navigateurs basés sur le moteur chromium, tels que Microsoft Edge et Google Chrome, afin d'éviter un grand nombre de vulnérabilités. La fonction de sécurité CET n'est pas seulement faite pour Microsoft Edge et Google Chrome. Elle est conçue de telle manière qu'elle peut être activée sur tous les navigateurs basés sur Chromium. Mozilla Firefox envisagerait également d'utiliser cette fonction de sécurité pour faire face aux vulnérabilités et aux attaques de type phishing. Windows 10 prend en charge la fonction de sécurité CET d'Intel grâce à un exécutable appelé "Hardware-enforced Stack Defense". Dans un tweet, Johnathan Norman, le responsable de l'étude des vulnérabilités de Microsoft Edge, a laissé entendre que Microsoft Edge 90 prend en charge la technologie CET d'Intel dans les procédures sans moteur de rendu.

    Cette fonction de sécurité CET d'Intel est conçue pour protéger les données des utilisateurs contre les attaques de la programmation orientée retour (ROP) et de la programmation orientée saut (JOP). Ces attaques de type ROP et JOP sont dangereuses et particulièrement difficiles à détecter ou à prévenir, car elles modifient le comportement normal d’un programme pour exécuter le code malveillant. Intel a collaboré activement avec Microsoft et d'autres partenaires industriels pour lutter contre ces types d’attaques en utilisant la technologie CET comme complément aux précédentes solutions implémentées.

    Le projet open source LLVM est une collection de technologies de compilateurs et de chaînes d'outils modulaires et réutilisables supportant plusieurs architectures de processeurs et langages de programmation. Le projet open source Clang fournit un frontal C/C++ supportant les derniers standards de langage pour le projet LLVM. LLVM et Clang sont maintenus par une communauté de développement importante et très active. L'adoption de LLVM présente de nombreux avantages, parmi lesquels, ses temps de construction plus rapides. Clang est rapide. Il apporte une réduction de 14 % des temps de construction en utilisant le compilateur Intel C/C++ inclus dans les boîtes à outils Intel oneAPI 2021.3. En plus d'aider à réduire les temps de construction, l'adoption de Clang a permis de contribuer et de bénéficier des efforts de la communauté pour supporter les derniers standards du langage C++. Intel a une longue histoire de contribution et de soutien aux projets open source qui comprend une décennie de contributions à LLVM. Nos collaborations actives aujourd'hui incluent des ajouts de rapports d'optimisation, un support étendu du modèle à virgule flottante et Intel contribue directement aux projets LLVM et dispose également d'une zone de transit (projet Intel pour la technologie LLVM) pour le support SYCL.

    Nom : Intel2.PNG
Affichages : 4782
Taille : 25,4 Ko

    Selon Intel, on peut s'attendre à ce que les performances des compilateurs Intel C/C++ soient supérieures à celles des compilateurs clang+LLVM de base pour l'architecture Intel. Par défaut, les compilateurs Intel C/C++ sont désormais des versions (icx) qui ont adopté l'infrastructure open source LLVM. Intel pousuit sa tradition de contribution aux projets clang et LLVM, y compris les optimisations pour LLVM et clang. « Avec les derniers compilateurs C/C++ d'Intel, publiés avec les versions 2021.3 des toolkits Intel oneAPI, nous avons effectué une série de mesures des performances. Conformément à notre objectif d'être le principal compilateur C/C++ pour l'architecture Intel, nos mesures montrent que les compilateurs C/C++ Intel sont meilleurs que les autres options », déclare Intel. « Nous avons également battu notre propre record : le nouveau compilateur Intel C/C+ basé sur LLVM égale ou dépasse le compilateur Intel C/C++ classique. Il est temps de mettre à niveau le compilateur que vous utilisez », ajoute l’entreprise. Les compilateurs C/C++ d'Intel ont toujours offert des performances de pointe. Intel estime que le compilateur Intel C/C++ classique présente ici un avantage de 18 % par rapport à gcc, le compilateur Intel C/C++ basé sur LLVM présente un avantage de 41 %.

    Temps de compilation plus rapides (Testé par Intel)

    • Configuration : Processeur Intel(R) Xeon(R) Platinum 8380 @ 2.30GHz, 2 sockets, Hyper Thread on, Turbo on, 32G x16 DDR4 3200 (1DPC). Red Hat Enterprise Linux version 8.2 (Ootpa), 4.18.0-193.el8.x86_64 ;
    • Logiciel : Compilateur Intel(R) oneAPI DPC++/C++ pour les applications fonctionnant sur Intel(R) 64, version 2021.3.0 Build 20210604. Compilateur Intel(R) C++ Intel(R) 64 Classic pour les applications fonctionnant sur Intel(R) 64, version 2021.3.0 Build 20210604_000000, GCC 11.1, Clang/LLVM 12.0.0 ;
    • Commutateurs de compilateur SPECint®_rate_base_2017 : Compilateur Intel(R) oneAPI DPC++/C++ : -xCORE-AVX512 -O3 -ffast-math -flto -mfpmath=sse -funroll-loops -qopt-mem-layout-trans=4. Intel(R) C++ Intel(R) 64 Compiler Classic : -xCORE-AVX512 -ipo -O3 -no-prec-div -qopt-mem-layout-trans=4 -qopt-multiple-gather-scatter-by-shuffles ;
    • GCC : -march=skylake-avx512 -mfpmath=sse -Ofast -funroll-loops -flto -mprefer-vector-width=128. LLVM : -march=skylake-avx512 -mfpmath=sse -Ofast -funroll-loops -flto. qkmalloc utilisé pour le compilateur intel. jemalloc 5.0.1 utilisé pour gcc et llvm ;
    • Commutateurs de compilateur SPECfp®_rate_base_2017 : Compilateur Intel(R) oneAPI DPC++/C++ : -xCORE-AVX512 -Ofast -ffast-math -flto -mfpmath=sse -funroll-loops -qopt-mem-layout-trans=4. Intel(R) C++ Intel(R) 64. Compilateur Classic : -xCORE-AVX512 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-multiple-gather-scatter-by-shuffles -qopt-mem-layout-trans=4. GCC : -march=skylake-avx512 -mfpmath=sse -Ofast -fno-associative-math -funroll-loops -flto. LLVM : -march=skylake-avx512 -mfpmath=sse -Ofast -funroll-loops -flto.

    Pour soutenir les plateformes évolutives d'Intel, l’entreprise se concentre sur les nouvelles fonctionnalités et le support matériel dans les compilateurs basés sur LLVM, où elle a ajouté un support pour les GPU et les FPGA. Les compilateurs basés sur LLVM sont ceux qui prennent en charge SYCL, C++20, OpenMP 5.1 et les périphériques cibles GPU OpenMP.

    Qu'est-il arrivé aux compilateurs de Parallel Studio XE ?

    En 2007, Intel a rebaptisé ses outils "Parallel Studio" pour souligner la prise en charge du parallélisme. À cette époque, le monde était en train de changer, la programmation parallèle étant destinée à devenir omniprésente sous la forme de processeurs multicœurs. Cela a commencé avec les processeurs à double cœur qui ont supplanté les processeurs à cœur unique. Aujourd'hui, le nombre de cœurs se compte par dizaines et la tendance est toujours à la hausse. Tout comme la programmation parallèle pour les systèmes homogènes est devenue omniprésente, la programmation parallèle pour les systèmes hétérogènes va suivre un chemin similaire vers l'omniprésence. Contrairement au parallélisme multicœur, la programmation hétérogène couvrira les capacités de calcul de plusieurs fournisseurs. « Cela risque de fragmenter la programmation si nous ne nous unissons pas pour soutenir des approches ouvertes et multi-fournisseurs dans les compilateurs, les bibliothèques, les frameworks et tous les outils destinés aux développeurs de logiciels », exhorte Intel.

    Nom : Intel3.PNG
Affichages : 4701
Taille : 19,1 Ko

    À un moment donné dans le futur, les compilateurs C/C++ classiques entreront en mode "Legacy Product Support", signalant la fin des mises à jour régulières de la base de compilateurs classiques, et ils n'apparaîtront plus dans les boîtes à outils oneAPI. Cependant, le nouveau C/C++ Intel basé sur LLVM a atteint la parité avec la version classique et le C/C++ basé sur LLVM offre une autre technologie d'optimisation. Il existe un guide pour la conversion du compilateur C/C++ classique vers les compilateurs basés sur LLVM. La première chose que vous remarquerez est que le compilateur porte un nom différent (icx). Cela permet d'installer à la fois le compilateur classique et le nouveau compilateur et de choisir entre les deux. Les dernières notes de version offrent plus de détails sur les problèmes et les limitations connus (les notes de version pour les compilateurs C/C++ classiques sont également disponibles).

    Intel Fortran a longtemps été connu pour son support étendu des standards et ses performances supérieures. Intel indique que cette tradition se poursuivra avec un compilateur Intel Fortran basé sur LLVM lorsqu’elle aura terminé son programme bêta. La version bêta du compilateur Fortran basé sur LLVM offre un support étendu de Fortran, mais certaines fonctionnalités sont encore en cours de développement. Les compilateurs C/C++ et Fortran d'Intel ont une histoire riche qui a commencé avec les compilateurs System V d'UNIX au début des années 1990, auxquels s'est ajoutée la technologie de compilation de Multiflow au milieu des années 1990, et qui s'est développée dans les années 2000 avec la légendaire équipe Fortran de DEC/Compaq et l'expertise de Kuck and Associates Inc. (KAI) en matière d'OpenMP et de parallélisme.

    Source : Intel

    Et vous ?

    Utilisez-vous le compilateur gcc ?

    Que pensez-vous du compilateur Intel C/C++ basé sur LLVM ?

    Voir aussi :

    Google Chrome et Microsoft Edge prendront en charge la fonction de sécurité CET d'Intel, pour maintenir la sécurité et prévenir des vulnérabilités

    Intel lance un processeur Xeon Scalable de troisième génération pour les centres de données sous le nom de code Ice Lake, qui offre jusqu'à 40 cœurs par socket

    Le HEDT a un nouveau maitre : AMD et Intel lancent leurs nouveaux CPU dédiés au HEDT, mais le Core i9-10980XE d'Intel ne ferait pas le poids face aux Threadripper 3970X et 3960X d'AMD

    Intel va fabriquer une puce pour le chiffrement entièrement homomorphe, dans le cadre du programme DPRIVE de la DARPA
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre averti
    Homme Profil pro
    amateur
    Inscrit en
    Juillet 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Juillet 2015
    Messages : 90
    Points : 358
    Points
    358
    Par défaut
    Si je comprends bien, il s'agirait d'un refactoring du compilateur C/C++ qui s'appuie sur LLVM.
    Je suppose que c'est une bonne solution pour à la fois optimiser les performances et s'appuyer sur une architecture fonctionnelle elle-même mature.
    Le résultat le confirmerait: gain de performances de 19% [1,41 /1,18 - 1] par rapport au compilateur Intel "classique" du moment.

    Que de ce fait, Intel cautionne une architecture ouverte est une bonne chose.

    Ceci étant, comme le souligne l'article, on ne parle que de compilateurs C/C++ "pour l'architecture Intel".
    Il est compréhensible que la connaissance pointue des architectures matérielles de la gamme Intel existante et sur celles à venir permette à Intel des optimisations plus efficaces que d'autres compilateurs. Et comme le dit Intel lui-même, certaines optimisations sont en aval de LLVM.

    Par ailleurs, un gain de performances ( en temps de compilation, en temps d'exécution, ...) n'est aussi que le reflet que de benchmarks définis. Selon le segment d'applications développées, ces optimisations sont plus ou moins pertinentes.
    Et il y a d'autres critères dans le choix d'une chaine de compilation, tel que le support multiplateformes ou la compilation croisée.

  3. #3
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par Axel Mattauch Voir le message
    Que de ce fait, Intel cautionne une architecture ouverte est une bonne chose.
    Je ne pense pas que c'est parce qu'il veulent faire de l'architecture ouverte ,juste que LLVM semble indispensable pour faire un compilateur (je suis en train de faire un compilateur pour un projet semi-pro , et je me base sur LLVM .

    Après pour le reste , c'est que cela se base sur l'architecture Intel donc , c'est pour des cas particulier où on sait qu'on travaille seulement sur ce type de modele de processeur (Serveur en général avec un Xeon) , vu que pour PC , vu les parts de marché de plus en plus grand chez AMD , ce n'est peut être pas forcément intéressant de se baser un un compilateur full intel perf :p
    Surtout pour le Jeux vidéo qui se veut souvent cross plateforme et que les consoles se base sur un processeur AMD.

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/11/2020, 13h25
  2. Réponses: 2
    Dernier message: 05/04/2017, 11h40
  3. Java : Oracle adopte une nouvelle nomenclature pour les mises à jour du JDK
    Par Cedric Chevalier dans le forum Général Java
    Réponses: 8
    Dernier message: 20/05/2013, 18h58
  4. Réponses: 3
    Dernier message: 10/11/2011, 07h28
  5. Réponses: 0
    Dernier message: 30/01/2009, 12h47

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