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 :

MMX/SSE


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Par défaut MMX/SSE
    Bonjour, j'essaie de me mettre au MMX et SSE en utilisant les fonctions intrasecs, est-il possible que ce code puisse tourner moins vite que du code C++ optimisé en G7 par Visual ?

    Sur differents test cela s'avere plus lent !

    Je vous remercie.

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut Re: MMX/SSE
    Citation Envoyé par dickymoe
    en utilisant les fonctions intrasecs
    qu'est-ce que c'est ?

    Pour ta question, j'ai tendance à répondre qu'un bon code X sera plus performant qu'un mauvais code Y, X et Y étant des langages au choix (C++ / Asm ici).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Par défaut
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/vcrefmmxtechnologyintrinsicgroups.asp

    Le but est de faire plusieurs opérations a la place d'une, mais j'ai tendance à croire que Visual est meilleur en Optimisations.

  4. #4
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Ben étudie le code asm qu'il génère, et compare avec le tiens. Tu devrais soumettre ton code asm au forum Assembleur.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Par défaut
    Ce n'est pas de l'assembleur, c'est des fonctions comme C. Peut etre existe-t-il une option de compilation qui permet de dire que l'on utilise du MMX et qui ferais accelérer. C'est pourquoi j'attend une réponde.

  6. #6
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    http://msdn.microsoft.com/library/en-us/vclang/html/vclrfMMXSSESSE2Intrisics.asp
    An intrinsic is a function known by the compiler that directly maps to a sequence of one or more assembly language instructions. Intrinsic functions are inherently more efficient than called functions because no calling linkage is required.

    Intrinsics make the use of processor-specific enhancements easier because they provide a C/C++ language interface to assembly instructions. In doing so, the compiler manages things that the user would normally have to be concerned with, such as register names, register allocations, and memory locations of data.
    Le terme Intrinsics ça m'évoque #pragma intrinsic qui a pour conséquence que le code est directement copié collé au lieu d'un appel de fonction. Donc à piori, je dirai que ton appel de fonction est remplacé par une instruction assembleur. Met un break point dans ton code, et suis l'exécution au debugger en affichant le code machine pour voir le code asm généré. Ou bien fait générer le listing asm lors de la compilation.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Par défaut
    Je n'est pas les connaissances en Assembleur pour !

    Cela n'est jamais arrivé a personne ? Pas de manipulations spéciales a faire ?

    Help please...

  8. #8
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Citation Envoyé par dickymoe
    Je n'est pas les connaissances en Assembleur pour !
    Je crois que c'est ça le problème. Parce qu'utiliser les instructions MMX sans comprendre l'assembleur, ne te permet pas de pouvoir optimiser le code, même si tu utilises un langage qui permet de t'abstraire de cela.

    Pour reprendre un confrère, un bon code X vaut mieux qu'un mauvais code Y même si le code Y est sensé être plus rapide.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Par défaut
    Je comprends les optimisations, le binaire, l'hexa, les opérations bit a bit... J'ai fais de l'architecture, c'est le language lui meme que je connait pas.

    L'un des problemes aussi de MMX c'est qu'il n'y a pas fe fonctions qui permet de multiplier 8*8 il faut bidouiller, faire du 4*4 et cela rend plus long les calcul...

    Personne n'a de competences en MMX/SSE avec les fonctions intrasec ?

  10. #10
    Membre émérite Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Par défaut
    A part l'équipe d'Intel et peut être Microsoft, je ne pense pas que d'autres programmeurs codent aussi bas!

    Car c'est du code extrêmement bas niveau, même s'il n'est pas en assembleur.

    Notamment Intel à des librairies graphiques de très bonnes qualités écrites avec ce système.

  11. #11
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Adresse toi au forum assembleur, ici c'est C++.

Discussions similaires

  1. Désactiver les appels d'instructions MMX ,SSE ,3DNOW
    Par yann458 dans le forum Visual C++
    Réponses: 1
    Dernier message: 09/01/2012, 09h08
  2. [SSE/MMX] Résultat en mode débug est différent de celui du mode release
    Par barhili04 dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 08/12/2009, 19h29
  3. [SIMD SSE/MMX] Reste de division
    Par barhili04 dans le forum x86 32-bits / 64-bits
    Réponses: 0
    Dernier message: 30/11/2009, 17h32
  4. [SIMD SSE/MMX] Problème d'alignement
    Par barhili04 dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 25/11/2009, 17h30
  5. [MMX/SSE] Opération de type MAC non présente
    Par progfou dans le forum x86 32-bits / 64-bits
    Réponses: 9
    Dernier message: 16/07/2007, 17h02

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