11
votes

Nombre approximatif de cycles de la CPU pour diverses opérations

J'essaie de trouver une référence pour approximativement du nombre de cycles de la CPU diverses opérations requises.

Je n'ai pas besoin de chiffres exacts (comme cela va varier entre les processeurs), mais j'aimerais quelque chose de relativement crédible qui donne des chiffres de Ballpark que je pouvais citer en discussion avec des amis.

Par exemple, nous savons tous que la division de points flottants prend plus de cycles de processeur que de faire un bit-bit.

Je suppose que la différence est que la Division est d'environ 100 cycles, où un changement est 1, mais je cherche quelque chose à citer pour remonter ça.

Quelqu'un peut-il recommander une telle ressource?


0 commentaires

4 Réponses :


1
votes

Cela va être dépendant du matériel. La meilleure chose à faire est d'exécuter des points de repère sur le matériel particulier que vous souhaitez tester.

Un indice de référence irait à peu près à ceci:

  • Exécutez une opération primitive un million de fois (par exemple, ajouter deux entiers)
  • enregistrer le temps qu'il a fallu pour courir (dire, en secondes)
  • Multipliez par le nombre de cycles que votre machine est exécutée par seconde - cela vous donnera le nombre total de cycles dépensés.
  • Divisez 1000000 par le numéro de l'étape précédente - cela vous donnera le nombre d'instructions par cycle. Gardez à l'esprit qu'avec la pipeline, cela pourrait être inférieur à 1.

1 commentaires

Comment éliminer le temps utilisé pour exécuter les cycles 1000000 et l'allocation de registre utilisée pour stocker le nombre de fois, prédiction de la branche, etc.?




4
votes

J'ai fait une petite application pour tester cela. Une application très approximative à l'aide de Synthmaker Free Edition ... E est pour vide, les numéros sont des cycles très approximatifs xxx

Les lectures dans l'analyseur de cycle varient follement de 50 à 100, généralement célibataire ou double de la quantité attendue, il s'agit de chiffres qui représentent des moyennes, l'analyseur de cycle est un outil très rugueux, mais il donne des résultats équitables, un utilisateur de contournement fait l'exposant codé dans l'ASM qui calcule à la fois l'exp. Le taux audio par exemple est d'environ 800 cycles, donc je dirais que les chiffres ci-dessus sont proches d'au moins 50%. Je pensais que la division était beaucoup plus! Il semble environ deux fois plus. Si vous voulez le fichier que j'ai fabriqué pour courir dans SM Version Free Mappe-moi, j'allais sauver un exe c'est pourquoi je l'ai fait mais vous ne pouvez pas économiser en version gratuite stupide moi! Je ne vais pas le coder de Square One en version 1.17: / ant.stewart à la place Yahoo Dotty Com.


1 commentaires

Pourquoi est-ce multilatéral de la même latence que Ajouter? J'ai entendu entier multimaut est généralement 3 fois plus lent que d'ajouter des processeurs modernes. Cependant, le point flottant à MUL peut avoir la même vitesse que le point flottant ajout.



0
votes

Il y a Recherche fabriquée par AGNER FOG:

  1. Tables d'instruction

    Tables d'instruction: Listes de latences d'instructions, débiteurs et Ruptures de micro-opération pour Intel, AMD et VIA CPU.

    Dernière mise à jour 2021-03-22


0 commentaires