Connu sous le nom de l'analyseur de code d'architecture Intel, IACA est un outil avancé pour évaluer la planification de code contre les CPU Intel. Il fonctionne en trois modes:
/ * c ou c usage * / while (cond) { Iaca_start / * Corps de boucle la plus intérieure * / / * ... * / } Iaca_end
Command Line Invocation:
Invoquez iaca de la ligne de commande avec les paramètres appropriés, tels que:iaca.sh -64 -arch hsw -graphs insndeps.dot foo
Un CPU Haswell, générant un rapport d'analyse et une visualisation Graphviz.
Interprétation de sortie:
/* C or C Usage */ while(cond){ IACA_START /* Innermost Loop Body */ /* ... */ } IACA_END
. L2: vmovaps ymm1, [RDI Rax]; L2 VFMADDD231PS YMM1, YMM2, [RSI RAX]; L2 vMovaps [rdx rax], ymm1; S1 Ajouter Rax, 32; AJOUTER JNE .l2; JMP en insérant des marqueurs autour de ce code et en l'analysant, IACA peut signaler (abrégé):
Rapport d'analyse de débit -------------------------- Débit de bloc: 1,55 cycles débit goulot d'étranglement: frontend, Port2_agu, Port3_agu [Répartition de la pression du port] | Instruction -------------------------- | ----------------- | | vmovaps ymm1, ymmword ptr [rdi rax * 1] | 0,5 cp | | 1,5 CP | VFMADDD231PS YMM1, YMM2, YMMWORD PTR [RSI RAX * 1] | 1,5 CP | vmovaps ymmword ptr [rdx rax * 1], ymm1 | 1 CP | Ajouter Rax, 0x20 | 0 CP | jnz 0xffffffffffffffffc
/* NASM Usage */ mov ebx, 111 ; Start marker bytes db 0x64, 0x67, 0x90 ; Start marker bytes .innermostlooplabel: ; Loop body ; ... jne .innermostlooplabel ; Conditional Branch Backwards to Top of Loop mov ebx, 222 ; End marker bytes db 0x64, 0x67, 0x90 ; End marker bytes
Le mode de débit est limité aux boucles les plus internes, car il ne peut pas déduire des modèles de branchement pour d'autres boucles.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3