d'opérations en virgule flottante par cycle - intel

J'ai été à la recherche depuis un certain temps et ne semble pas à trouver un officiel/concluante figure en indiquant le numéro de simple précision d'opérations en virgule flottante/cycle d'horloge d'un processeur Intel Xeon quadcore pouvez compléter. J'ai un processeur Intel Xeon quadcore E5530 CPU.

Je suis l'espoir de l'utiliser pour calculer le montant maximum théorique FLOP/s mon CPU peut atteindre.

MAX FLOPS = (# Nombre de cœurs) * (Fréquence d'Horloge (cycles/sec) ) * (# FLOPS /cycle)

Rien de me pointer dans la bonne direction serait utile. J'ai trouvé cette
FLOPS par cycle pour sandy-bridge et haswell SSE2/AVX/AVX2

Intel Core 2 et Nehalem:

4 DP FLOPs/cycle 2-grande SSE2 plus de + 2 à l'échelle SSE2 multiplication

8 PS FLOPs/cycle: 4 à l'échelle de l'ESS plus + 4 à l'échelle de l'ESS multiplication

Mais je ne suis pas sûr de l'endroit où ces chiffres ont été trouvés. Sont-ils en supposant un fused multiply ajouter (FMAD) opération?

EDIT: à l'Aide de ce, DP-je calculer la bonne DP arithmétique débit cité par Intel comme 38.4 GFLOP/s (cité ici). Pour les SP, je reçois le double, de 76,8 GFLOP/s. Je suis sûr que 4 DP FLOP/cycle et 8 PS FLOP/cycle est correct, je veux juste la confirmation de la façon dont ils ont obtenu les FLOPs/la valeur sur le cycle de 4 et 8.

(8 SP FLOPs/cycle) * (4 cœurs) * (2.4 GHz) = 76.8 GFLOP/s. Le processeur peut faire à la fois un complément et une multiplication d'instruction à chaque cycle. Mais ils ne sont pas fusionnés.
Vous ne pouvez probablement pas trouver un numéro officiel car il n'existe pas - c'est très dépendante sur le mélange des instructions que vous avez, et les dépendances entre eux. Le maximum théorique peut être calculée, mais il y a très peu utile dans le monde réel des programmes (autres que le synthétique de repères) qui aurait exactement la bonne combinaison d'instructions dans le bon ordre pour obtenir le maximum...
Et si vous êtes curieux de voir comment obtenir le maximum sur le FLOP/s, prendre regardez: stackoverflow.com/questions/8389648/... Que l'on est pour la double précision, mais il peut être facilement modifié pour tellement simple précision.
Dans la pratique, on souhaite souvent de chargement/stockage de données ainsi que faire un calcul. Ainsi, alors que les valeurs théoriques de pointe FLOPS sont bon à savoir il n'est pas très utile si les données ne peuvent pas être lus dans assez rapide pour atteindre cet. Plus utile métrique donne aussi le nombre de virgule flottante de chargement/magasins qui peuvent être obtenus en tant que tout. E. g un SB de base peut charger 4 doubles par cycle d'horloge, et faire 8 double de l'exploitation (4 multiplications et 4 additions) par cycle d'horloge. L'obtention de ce est plus difficile que de simplement faire le calcul.

OriginalL'auteur user3495341 | 2014-04-21