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

C++ Discussion :

[GCC] Options de compilation -m*


Sujet :

C++

  1. #1
    Membre régulier

    Inscrit en
    Juin 2008
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 49
    Points : 114
    Points
    114
    Par défaut [GCC] Options de compilation -m*
    Hello !

    Je travaille actuellement sur un code de calcul scientifique et l'on ma conseillé d'ajouter les options -m64 et -mtune=core2 à GCC pour améliorer les performances de mon code. (Je travaille bien sur un processeur core2 duo 64 bits.)

    Ces options ont-elles une réelle utilité ? Je n'ai pas vu de différences notables en benchmark.
    Si oui, y a-t'il d'autres options qui peuvent être intéressantes ?

    Je vais passer prochainement sur un Intel Core i7. Quel est dans ce cas l'option équivalente à -mtune=core2 ? Je n'ai rien trouvé dans le man de GCC.

    Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    -mtune=xxx, comme son nom l'indique, fait en sorte que le code soit plus rapide sur architecture xxx tout en continuant à tourner sur i386.
    -march=xxx est similaire, sauf qu'il n'y a aucune garantie que le code fonctionne sur une architecture antérieure à xxx.

    L'idéal, c'est de faire -march=native, qui génère le meilleur code pour le type de machine sur lequel s'exécute le compilateur.

    Quant à -m64, comme son nom l'indique, cela indique que l'on compile pour la variation 64 bits de l'architecture et non 32 bits. La valeur par défaut dépend de la manière dont a été compilé GCC.

  3. #3
    Membre régulier

    Inscrit en
    Juin 2008
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 49
    Points : 114
    Points
    114
    Par défaut
    donc -march=native est la meilleure solution.

    Merci bien.

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Nanoc Voir le message
    donc -march=native est la meilleure solution.
    A la condition EXPRESSE d'exécuter le programme et de le compiler sur la même machine !
    Sinon, il faudra spécifier les bonnes options en fonction de la machine cible...

Discussions similaires

  1. [GCC] Option de compilation
    Par everest31 dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 02/03/2012, 11h43
  2. Options de compilation GCC
    Par oranoutan dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 14/07/2007, 04h10
  3. Gcc options de compilations
    Par moon93 dans le forum Linux
    Réponses: 1
    Dernier message: 15/05/2006, 16h43
  4. [Code::Blocks]Options de compilation de gcc
    Par Marco85 dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 28/02/2006, 10h16
  5. Option de compilation gcc : sem.h
    Par Luther13 dans le forum Linux
    Réponses: 8
    Dernier message: 29/12/2004, 12h29

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