Pokračujeme ve vyprávění o nástrojích pro hodnocení výkonu CPU na strojích s Linuxem. Dnes se zaměříme na: temci, uarch-bench, likwid, perf-tools a llvm-mca.
Další benchmarky:
Foto — – Unsplash
Je to nástroj pro hodnocení doby provádění dvou programů. V podstatě umožňuje porovnat dobu běhu dvou aplikací. Autorem utilitky je student z Německa Johannes Bechberger, který ji vyvinul jako součást své bakalářské práce v roce 2016. Dnes je nástroj pod licencí GNU General Public License.
Johannes chtěl vytvořit nástroj, který by umožnil měřit výkon výpočetního systému v řízeném prostředí. Proto je jednou z hlavních funkcí temci možnost nastavit testovací prostředí. Například : změnit nastavení správce řízení frekvence CPU, vypnout a paměti L1 a L2, vypnout turbo režim na procesorech Intel a další. Pro benchmarkování temci používá nástroje , a .
Takto vypadá práce utilitky v prvním případě:
# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times [####################################] 100%
Report for single runs
sleep 0.1 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 100.00000m, deviation = 0.00000%
max_res_set mean = 2.1800k, deviation = 3.86455%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
sleep 0.2 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 200.00000m, deviation = 0.00000%
max_res_set mean = 2.1968k, deviation = 3.82530%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
Na základě výsledků benchmarkingu systém vytváří s diagramy, tabulkami a grafy, což odlišuje temci od podobných řešení.
Mezi nevýhody temci patří jeho "mládí". Díky tomu konfigurace hardwaru a softwaru. Například je obtížné jej spustit na macOS a na systému s procesorem ARM nejsou některé funkce k dispozici. Do budoucna se situace může změnit, protože autor aktivně vyvíjí projekt a počet hvězdiček na GitHubu postupně roste - nedávno se o temci dokonce na Hacker News.
Nástroj pro hodnocení výkonu nízkoúrovňových funkcí CPU, který vyvinul inženýr Travis Downs. Nedávno začal vést svůj blogna GitHub Pages, kde hovoří o nástrojích pro benchmarking a dalších souvisejících věcech. Uarch-bench zatím teprve začíná získávat popularitu, ale již je poměrně často Uarch-bench umožňuje hodnotit výkon paměti, rychlost paralelního načítání dat a práci s vyčišťováním registrů YMM.
Uarch-bench umožňuje hodnotit výkonnost paměti, rychlost paralelního načítání dat a funkci čištění. . Jak vypadají výsledky benchmarkingu generované programem, můžete najít na spodní části stránky.
Je třeba poznamenat, že uarch-bench, stejně jako temci, funkci Intel Turbo Boost (ta automaticky zvyšuje takt procesoru při zátěži), aby byly výsledky testování konzistentní.
Projekt se zatím nachází v raných fázích vývoje, proto uarch-bench nemá podrobnou dokumentaci a v jeho provozu mohou nastat chyby — například, s spuštěním na Ryzen. Podporovány jsou pouze benchmarky pro architektury x86. Autor slibuje přidání více funkcionalit v budoucnu a vyzývá k zapojení do vývoje.
Je to sada nástrojů pro hodnocení výkonu Linuxových strojů s procesory Intel, AMD a ARMv8. Byla vytvořena pod záštitou Německého spolkového ministerstva školství a výzkumu v roce 2017 a byla předána do open source.
Mezi nástroji likwid lze vyzdvihnout likwid-powermeter, který zobrazuje informace z RAPL registrů o spotřebované výkonu systému, a likwid-setFrequencies — umožňuje řídit frekvenci procesoru. Úplný seznam můžete .
Nástrojem používají inženýři, kteří se zabývají výzkumem v oblasti HPC. Například s likwid skupina specialistů z Regionálního výpočetního centra univerzity Erlangen – Norimberk (RRZE) v Německu. Ta také aktivně participuje na vývoji této sady nástrojů.

Foto — – Unsplash
Tento nástroj pro analýzu výkonu Linuxových serverů Brendan Gregg. Je jedním z vývojářů — frameworku pro dynamické sledování pro ladění aplikací v reálném čase.
Perf-tools se zakládá na subsystémech jádra perf_events a ftrace. Jejich utility umožňují analyzovat zpoždění vstupu/výstupu (iosnoop), sledovat argumenty systémových volání (unccount, funcslower, funcgraph a functrace) a shromažďovat statistiku „zásahů“ do souborové cache (cachestat). V posledním případě vypadá příkaz takto:
# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9
Kolem nástroje se vytvořilo poměrně rozsáhlé společenství (). A existují společnosti, které aktivně používají perf-tools, například . Nástroj se stále zdokonaluje a modifikuje (i když v poslední době aktualizace vycházejí poměrně zřídka). Může tedy docházet k chybám ve jeho práci — autor uvádí, že někdy perf-tools vyvolává kernel panic.
Nástroj, který predikuje, kolik výpočetních zdrojů bude strojový kód potřebovat na různých CPU. Ten Instructions Per Cycle () a zátěž na hardware, kterou generuje to či ono aplikace.
llvm-mca byl představen v roce 2018 v rámci projektu , který se zabývá vývojem univerzálního systému analýzy, transformace a optimalizace programů. Je známo, že autoři llvm-mca se inspirovali řešením pro analýzu výkonnosti softwaru a snažili se vytvořit jeho alternativu. A podle slov uživatelů, výstupy nástroje (jejich formát a množství) skutečně připomínají IACA — příklad . Nicméně llvm-mca přijímá pouze , proto pro práci s ním budete pravděpodobně muset použít konvertory.
O čem píšeme na našich blozích a sociálních sítích:
![]()
![]()
![]()
![]()
![]()
Nabízíme na 1cloud.ru bezplatnou službu „“. Spravovat DNS záznamy u nás můžete v jednotném osobním účtu.
Zdroj: habr.com
