известный как анализатор кода архитектуры Intel, IACA является расширенным инструментом для оценки планирования кода по процессорам Intel. Он работает в трех режимах:
в подробных диаграммах ASCII или интерактивных графиков. Язык.
вставьте указанные шаблоны магических байтов для обозначения маркеров вручную:
/ * nasm *// MOV EBX, 111; Начать маркерные байты DB 0x64, 0x67, 0x90; Начать маркерные байты .innerMostLooplabel: ; Тел петли ; ... jne .innermostlooplabel; Условная ветвь назад к вершине петли MOV EBX, 222; Конечные маркерные байты DB 0x64, 0x67, 0x90; Конец маркера Bytes
invocation: ]
invoke iAca из командной строки с соответствующими параметрами, такими как:iAca.sh -64 -Arch hsw -graph insndeps. ЦП Haswell, генерируя отчет об анализе и визуализацию Graphviz.
/* C or C Usage */ while(cond){ IACA_START /* Innermost Loop Body */ /* ... */ } IACA_END
output Interpretation:
В выходном отчете содержится подробная информация о планировании целевого кода и узких местах. Например, рассмотрим следующий фрагмент сборки:. L2: vmovaps ymm1, [rdi rax]; l2 vfmadd231ps ymm1, ymm2, [rsi rax]; l2 vmovaps [rdx rax], ymm1; S1 добавить Ракса, 32; ДОБАВЛЯТЬ Jne .l2; Jmp
/* C or C Usage */ while(cond){ IACA_START /* Innermost Loop Body */ /* ... */ } IACA_END, вставив маркеры вокруг этого кода и анализируя его, IACA может сообщить (Abridged):
отчет анализа пропускной способности --------------------------- Блок пропускной способности: 1,55 циклов пропускной способности. [Разбивка давления в порту] | Инструкция -------------------------- | ----------------- | | vmovaps ymm1, ymmword ptr [rdi rax*1] | 0,5 cp | | 1,5 CP | VFMADD231PS YMM1, YMM2, YMMWORD PTR [RSI RAX*1] | 1,5 CP | vmovaps ymmword ptr [rdx rax*1], ymm1 | 1 cp | Добавить RAX, 0x20 | 0 cp | jnz 0xfffffffffffffffec
из этого вывода IACA идентифицирует Agu Haswell и порт 2 и 3 как узкие места. Он предполагает, что оптимизация инструкции хранилища, которая будет обработана с помощью порта 7, могла повысить производительность.
iaca.sh -64 -arch HSW -graph insndeps.dot foo
iACA имеет некоторые ограничения:
он не поддерживает определенные инструкции, которые игнорируются в анализе. За исключением более старых моделей.
]режим пропускной способности ограничен внутренним циклом, поскольку он не может определить разветвленные шаблоны для других циклов.
]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3