J'essaie de comprendre les termes complexes liés à la performance des processeurs.
La performance de l'ordinateur est mesurée en FLOPS
, ce qui est l'abréviation de FLOP par seconde . FLOPs
lui-même représente les opérations en virgule flottante .
Maintenant, pourquoi les opérations en virgule flottante sont-elles considérées pour les performances d’un ordinateur? Qu'en est-il des opérations entières? Existe-t-il une source en ligne (citation officielle) qui expliquerait cette tendance? Google ne m'a rien donné avec mes recherches.
Maintenant, que signifie exactement opération dans FLOP? Est -ce que , comme cela signifie une opération mathématique MUL
, ADD
, DIV
etc?
Dans ce cas, quelle serait une instruction ? Si une instruction ressemble à quelque chose comme ADDPD
, ADDSD
etc., comme je peux le voir ici ( http://docs.oracle.com/cd/E26502_01/html/E28388/epmpv.html ), une instruction peut entraîner de nombreuses opérations internes. S'agirait-il de micro-opérations ou d' ops ?
Je n'ai pas trouvé l'explication de la micro-opération sur Wikipedia utile. Celui qui explique cela clairement ici devra probablement aussi améliorer l'article de Wikipedia :)
Selon le livre de Hennessy / Patterson sur l'architecture des ordinateurs (5e édition, page 233), l' ARM Cortex-A8 (RISC) est capable d'exécuter deux instructions par horloge. Cela signifie-t-il que le processeur peut exécuter, par exemple, un ADDPD
et un ADDSD
(total = 2 instructions) en un cycle?
Cette source ( http://en.community.dell.com/techcenter/high-performance-computing/w/wiki/2329 ) indique ce qui suit:
La plupart des microprocesseurs actuels peuvent effectuer quatre (4) FLOP par cycle d'horloge, soit 4 FLOP par Hz.
Je crois que l'auteur a tort. Il impliquait probablement 4 instructions par cycle , se limitant aux processeurs basés sur CISC (Intel par exemple). En effet, certaines instructions telles que FMA sur Haswell peuvent améliorer les performances car le processeur peut traiter plus d'opérations par cycle. En d'autres termes, une FMA
instruction se traduit par deux opérations . Ai-je raison?
IPC signifie Instruction par Cycle. Quelles instructions sont référées ici? Les instructions retirées par le processeur? Avec un compteur matériel, je peux compter le nombre de cycles de la CPU et le nombre de INST_RETIRED.ANY
. Serait-ce la bonne façon de calculer l'IPC?
Merci beaucoup pour vos réponses et vos commentaires. J'espère que ma question aidera beaucoup d'autres âmes confuses :)