Skocz do: nawigacji, wyszukiwania

MICLAB:IACA


Środowisko i modele programowania

dr inż. Łukasz Szustak, Politechnika Częstochowska, IITiS
mgr inż. Kamil Halbiniak, Politechnika Częstochowska, IITiS



Intel Architecture Code Analyzer


Intel Architecture Code Analyzer wykorzystywany jest do wykonywania statycznej analizy kodu, która pozwala określić w jakiej kolejności wykonywane są niskopoziomowe instrukcje programu. Narzędzie to nie wykonuje analizy całej aplikacji, a jedynie wybranych fragmentów kodu znajdujących się pomiędzy dwoma makrami - IACA_START oraz IACA_STOP. Intel Architecture Code Analyzer (Rys. 1) pozwala na analizę aplikacji w dwóch trybach - w trybie wydajności oraz trybie opóźnień.


Iaca.png
Rysunek 1. Intel Architecture Code Analyzer


Analiza wydajności traktuje zaznaczony fragment kodu jako ciało nieskończonej pętli. Wyznacza ona jego maksymalną wydajność przedstawioną jako liczbę cykli oraz wąskie gardła. Dodatkowo dostarcza informacji o liczbie mikrooperacji dla danej instrukcji oraz określa czy znajduje się ona na ścieżce krytycznej analizowanego kernela. Analiza opóźnień traktuje wybrany kod jako sekwencyjny zestaw instrukcji, który wykonywany jest tylko raz. Wykorzystywana jest ona do wyznaczenia opóźnienia (wyrażanego w liczbie cykli) pomiędzy pierwszą a ostatnią instrukcją oraz identyfikacji konfliktów zasobów występujących w analizowanym kernelu. Dodatkowo dostarcza ona informacje o instrukcjach znajdujących się w ścieżce krytycznej oraz instrukcjach, które zostały opóźnione z powodu konfliktu i zależności pomiędzy nimi.


IACA jest narzędziem uruchamianym w wierszu poleceń, które może zostać uruchomione w 32- oraz 64-bitowych systemach Windows, Linux oraz Mac OS. Umożliwia analizę 32- oraz 64-bitowych aplikacji uruchamianych na procesorach firmy Intel bazujących na architekturach Nehalem, Westmere, Sandy Bridge, Ivy Bridge oraz Haswell.



< Narzędzia programistyczne - Intel Trace Analyzer and Collector