Vi fortsÀtter att berÀtta om verktyg för att utvÀrdera CPU-prestanda pÄ Linux-maskiner. Dagens artikel handlar om: temci, uarch-bench, likwid, perf-tools och llvm-mca.
Fler benchmarkar:
Foto â â Unsplash
Detta Àr ett verktyg för att mÀta körningstiden för tvÄ program. I grund och botten tillÄter det att jÀmföra exekveringstiderna för tvÄ applikationer. Verktyget skapades av studenten Johannes Bechberger frÄn Tyskland, som utvecklade det som en del av sitt kandidatarbete Är 2016. Idag Àr verktyget under GNU General Public License.
Johannes ville skapa ett verktyg som gör det möjligt att mÀta prestandan hos datorsystem i en kontrollerad miljö. DÀrför Àr en av de viktigaste funktionerna i temci möjlighet att konfigurera testmiljön. Till exempel : Àndra instÀllningarna för CPU-frekvenshanteraren, stÀnga av och L1- och L2-cache, stÀnga av turbo-lÀget pÄ Intel-processorer, och sÄ vidare. För benchmarking anvÀnder temci verktyg , och .
SÄ hÀr ser verktygets arbete ut i det första fallet:
# 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
Baserat pÄ resultaten frÄn benchmarkingen skapar systemet med diagram, tabeller och grafer, vilket skiljer temci frÄn liknande lösningar.
Bland bristerna hos temci kan nĂ€mnas dess "ungdomlighet". PĂ„ grund av detta konfigurationer av hĂ„rdvaru- och mjukvarusystem. Till exempel Ă€r det svĂ„rt att köra den pĂ„ macOS, och vissa funktioner Ă€r inte tillgĂ€ngliga pĂ„ system med ARM-processorer. Situationen kan förĂ€ndras i framtiden, eftersom forfattaren aktivt utvecklar projektet, och antalet stjĂ€rnor pĂ„ GitHub ökar stadigt â nyligen nĂ€mndes temci till och med pĂ„ Hacker News.
Ett verktyg för att utvÀrdera prestandan hos lÄgnivÄfunktioner i CPU, utvecklat av ingenjör Travis Downs (). Han driver nyligen sin blogg pÄ GitHub Pages, dÀr han pratar om verktyg för benchmarking och andra relaterade Àmnen. Generellt sett börjar uarch-bench sÄ smÄtt fÄ popularitet, men den nÀmns redan ganska ofta Uarch-bench gör det möjligt att utvÀrdera minnesprestanda, hastigheten pÄ parallell dataladdning och rensningsarbetet av
YMM-register . Hur resultaten frÄn benchmarkingen, som genereras av programmet, ser ut kan hittas lÀngst ner pÄ sidan.
Det Àr vÀrt att notera att uarch-bench, precis som temci, Intel Turbo Boost-funktionen (som automatiskt ökar klockfrekvensen pÄ processorn under belastning) för att resultaten ska vara konsekventa.
Projektet Àr fortfarande i ett tidigt utvecklingsstadium, sÄ uarch-bench har ingen detaljerad dokumentation och det kan förekomma buggar i dess funktion, till exempel med att köra pÄ Ryzen. Endast benchmarkar för x86-arkitekturer stöds. Författaren lovar att lÀgga till mer funktionalitet i framtiden och bjuder in till att delta i utvecklingen.
Detta Àr ett verktygsset för att bedöma prestandan hos Linux-maskiner med Intel-, AMD- och ARMv8-processorer. Det skapades under ledning av det tyska federala ministeriet för utbildning och forskning 2017 och har överförts till open source.
Bland verktygen i likwid kan nĂ€mnas likwid-powermeter, som visar information frĂ„n RAPL-register om systemets effektförbrukning, samt likwid-setFrequencies â som tillĂ„ter att kontrollera processorers frekvens. Du kan .
Verktyget anvĂ€nds av ingenjörer som arbetar med forskning inom HPC. Till exempel med likwid en grupp specialister frĂ„n regionens berĂ€kningscenter vid universitetet i ErlangenâNuremberg (RRZE) i Tyskland. De deltar ocksĂ„ aktivt i utvecklingen av detta verktygsset.

Foto â â Unsplash
Detta verktyg för prestandaanalys av Linux-servrar Brendan Gregg. Han Ă€r en av utvecklarna â ett ramverk för dynamisk spĂ„rning för felsökning av applikationer i realtid.
Perf-tools bygger pÄ kÀrnsystemen perf_events och ftrace. Deras verktygsutnyttjande gör det möjligt att analysera in- och utdatafördröjningar (iosnoop), spÄra argument för systemanrop (unccount, funcslower, funcgraph och functrace) och samla statistik om "trÀffar" i filcachen (cachestat). I det senare fallet ser kommandot ut sÄ hÀr:
# ./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
Runt verktyget har det bildats en ganska stor gemenskap (). Och det finns företag som aktivt anvÀnder perf-tools, till exempel . Men verktyget utvecklas och modifieras (Àven om uppdateringar har slÀppts ganska sÀllan pÄ sistone). DÀrför kan det förekomma fel i dess arbete - författaren skriver att perf-tools ibland orsakar kernel panic.
Ett verktyg som förutspÄr hur mycket berÀkningsresurser som maskinkod kommer att behöva pÄ olika CPU:er. Det Instructions Per Cycle () och belastningen pÄ hÄrdvaran som olika program genererar.
llvm-mca presenterades 2018 inom ramen för projektet , som arbetar med utvecklingen av ett universellt system för analys, transformation och optimering av program. Det Àr kÀnt att författarna till llvm-mca inspirerades av Intels lösning för programvaruanalys och strÀvar efter att skapa ett alternativ. Och enligt anvÀndarna pÄminner verktygets utdata (deras layout och antal) verkligen om IACA - ett exempel . Men llvm-mca accepterar endast , sÄ för att arbeta med det kommer man troligtvis behöva anvÀnda konverterare.
Vad vi skriver om i vÄra bloggar och pÄ sociala medier:
![]()
![]()
![]()
![]()
![]()
Vi pÄ 1cloud.ru erbjuder en gratis tjÀnst «». Hantera DNS-poster hos oss i en enhetlig kundportal.
KĂ€lla: habr.com
