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 :

Temps cpu pour une instruction


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 13
    Par d�faut Temps cpu pour une instruction
    Bonjour,

    Je commence � faire en peu d'OpenGL et donc tu temps r�el et j'aimerais par exemple savoir si faire 3 multiplications de int est plus rapide que de calculer un cosinus ou si faire 2 divisions de float est plus rapide que de faire un sqrt, etc...

    Existe t-il des tableaux qui indique le temps CPU pour les op�rateurs/fonctions du C++ ? (* / - + cos, sin, sqrt, etc) ?

    merci

  2. #2
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Si tu commences � bidouiller avec OpenGL, tu devrais d�j� te pencher sur ce que co�tent les diff�rentes structures / fonctions graphique que tu vas utiliser. C'est beaucoup plus important en termes de performances que des cos ou des multiplications.

    Et puis je ne vois pas pourquoi tu veux comparer des sin � des multiplications, ou des divisions � des racines carr�es ; � moins que tu n'impl�mentes des algorithmes subsidiaires pour les remplacer (ce que tu ne devrais pas faire, du moins pas avant longtemps).

  3. #3
    r0d
    r0d est actuellement connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 296
    Billets dans le blog
    2
    Par d�faut
    Sinon, il est souvent tr�s int�ressant de faire des tests de performance soi-m�me. Si on a le temps, c'est extr�mement formateur. Je viens de d�couvrir l'analyseur de performance VTune de Intel, dont une version d'�valuation 30jours est disponible en t�l�chargement sur leur site. Il est vraiment bien.

  4. #4
    R�dacteur
    Avatar de bafman
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par d�faut
    bah, c'est bien simple en fait : a l'heure actuelle, on en sait a peut pr�s rien
    tout ca � cause de l'ensemble des optimisation interne au processeur (cache, pr�fetch et autre branchement pr�dictif). En plus, en interne, les instruction processeurs ne sont plus des instruction CISC X86, mais une sorte de RISC.

    les tableau de nombre de cycle par instruction, ca existait il y a 10/15 ans, mais depuis les pentium/pentium2, ca n'a plus trop cours, ca le temps d'execution d'une instruction depend de plus en plus de context d'execution qu'autre chose.
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les r�ponses pertinentes
    Mes articles

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 13
    Par d�faut
    merci

    Citation Envoy� par Laurent Gomila
    Si tu commences � bidouiller avec OpenGL, tu devrais d�j� te pencher sur ce que co�tent les diff�rentes structures / fonctions graphique que tu vas utiliser. C'est beaucoup plus important en termes de performances que des cos ou des multiplications.
    J'ai d�j� regard� la FAQ pour �a ( http://jeux.developpez.com/faq/openg...meliorer_perfs )

    Citation Envoy� par Laurent Gomila
    Et puis je ne vois pas pourquoi tu veux comparer des sin � des multiplications, ou des divisions � des racines carr�es ; � moins que tu n'impl�mentes des algorithmes subsidiaires pour les remplacer (ce que tu ne devrais pas faire, du moins pas avant longtemps).
    S'�tait des exemples comme �a que j'ai donn� sans trop r�fl�chir.
    Exemple plus concret : sachant que pour faire une rotation d'un objet, j'ai � ma disposition des matrices et des quaternions : que vaut-il mieux utiliser ?
    - Soit une matrice o� le processeur devra calculer X multiplications et Y cos/sin
    - Soit un quaternion o� le processeur devra calculer Z multiplications et W cos/sin

    Si j'ai 10 000 cubes dans ma sc�ne avec chacun une matrice de transformation diff�rente, je risque de faire chauffer le processeur si je ne fait pas attention au nombre de cos/sin effectu� par le processeur, non ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 13
    Par d�faut
    Citation Envoy� par bafman
    bah, c'est bien simple en fait : a l'heure actuelle, on en sait a peut pr�s rien
    tout ca � cause de l'ensemble des optimisation interne au processeur (cache, pr�fetch et autre branchement pr�dictif). En plus, en interne, les instruction processeurs ne sont plus des instruction CISC X86, mais une sorte de RISC.

    les tableau de nombre de cycle par instruction, ca existait il y a 10/15 ans, mais depuis les pentium/pentium2, ca n'a plus trop cours, ca le temps d'execution d'une instruction depend de plus en plus de context d'execution qu'autre chose.
    Hum, a vrai dire, je m'attendait en peu � ce genre de r�ponse : �a d�pend trop du processeur

    Merci quand m�me � tous, je vais voir ce que c'est le testeur de performance d'Intel

  7. #7
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Avant de regarder les cos et les multiplcations qui se cachent derri�re les fonctions, cherche ce qui est le plus efficace selon le contexte. En g�n�ral les quaternions sont plus appropri�s pour repr�senter les rotations, mais une matrice peut parfois �tre plus appropri�e ; �a d�pend du contexte.

  8. #8
    Alp
    Alp est d�connect�
    Expert confirm�

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par d�faut
    Citation Envoy� par Laurent Gomila
    Avant de regarder les cos et les multiplcations qui se cachent derri�re les fonctions, cherche ce qui est le plus efficace selon le contexte. En g�n�ral les quaternions sont plus appropri�s pour repr�senter les rotations, mais une matrice peut parfois �tre plus appropri�e ; �a d�pend du contexte.
    Dans quel contexte doit-on pr�f�rer les matrices (resp. les quaternions) ?

  9. #9
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Il faut pr�f�rer les quaternions si on a beaucoup de manipulations � faire dessus (que 4 composantes � manipuler, et les algos sont g�n�ralement plus simples).

    Par contre si on doit stocker une rotation qui ne bougera jamais, mieux vaut utiliser une matrice puisque de toute fa�on �a doit �tre sous cette forme pour �tre pass� � l'API 3D.

  10. #10
    Alp
    Alp est d�connect�
    Expert confirm�

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par d�faut
    Ok, je comprends mieux alors.


  11. #11
    Expert confirm�

    Homme Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    F�vrier 2007
    Messages
    4 253
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par d�faut
    Tout d�pend de ce que tu comptes faire de toute maniere....

    Pour l'utilisation de l'OpenGL (ou de Direct3D, c'est pareil), le plus important est de comprendre comment fonctionnent les cartes graphiques aujourd'hui. les APIs existantes ne sont que des front-end � la state-machine du GPU. On place un certain nombre d'�tats, et on fait le rendu avec cet �tat l�.

    Du coup, il vaut parfois mieux faire un millier de multiplications en plus plut�t que de changer le pipeline pixel (c'est � dire le 'pixel program' ou 'pixel shader'). Un changement de pixel-shader peut aussi couter plus cher qu'un changement de texture.

    Maintenant, si ton programme se charge aussi de la physique il devra faire une somme cons�quente de calcul en amont, et il peut valoir le coup d'optimiser cette partie.

    Pour exemple, le moteur sur lequel je travaille, passe les deux matrices de position � T et T+dt au geometry-shader, avec la position dans le temps entre ces deux "frames" physiques. Cot� affichage, c'est donc le geometry shader qui s'occupe du blending entre les deux calculs.

Discussions similaires

  1. Formater une chaine pour une instruction SQL
    Par Coicatak dans le forum C#
    R�ponses: 5
    Dernier message: 20/12/2011, 23h43
  2. indication pour une instruction
    Par marooh dans le forum x86 16-bits
    R�ponses: 4
    Dernier message: 30/11/2010, 17h06
  3. Mesurer le temps CPU sur une machine multicoeurs
    Par Aleph69 dans le forum Langage
    R�ponses: 9
    Dernier message: 02/08/2010, 21h46
  4. R�ponses: 4
    Dernier message: 07/01/2010, 13h14
  5. limiter cpu pour une application
    Par sboffin dans le forum Administration
    R�ponses: 11
    Dernier message: 27/07/2009, 21h19

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