Vi fortsætter med at præsentere værktøjer til vurdering af CPU-ydeevne på Linux-maskiner. I dag omhandler materialet: temci, uarch-bench, likwid, perf-tools og llvm-mca.
Flere benchmarks:
Foto — — Unsplash
Dette er et værktøj til at vurdere køretiden for to programmer. I essensen giver det mulighed for at sammenligne køretiderne for to applikationer. Udvikleren af dette værktøj er studerende Johannes Bechberger fra Tyskland, som skabte det som en del af sit bachelorprojekt i 2016. I dag er værktøjet under GNU General Public License.
Johannes ønskede at skabe et værktøj, der kunne måle ydeevnen af et computersystem i et kontrolleret miljø. En af de vigtigste funktioner ved temci er, at man kan konfigurere testmiljøet. For eksempel, : ændre indstillingerne for CPU-frekvensstyringssystemet, deaktivere og L1- og L2-cache, samt deaktivere turbo-tilstand på Intel-processorer og mere. Til benchmarking bruger temci værktøjerne , og .
Sådan ser værktøjets funktionalitet ud i det første tilfælde:
# 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
Som et resultat af benchmarkingen genererer systemet med diagrammer, tabeller og grafer, hvilket adskiller temci fra lignende løsninger.
En ulempe ved temci er dens 'ungdom'. Derfor konfigurationer af hardware og software. For eksempel kan det være vanskeligt at køre den på macOS, og på et system med ARM-processor er nogle funktioner utilgængelige. Fremover kan situationen ændre sig, da udvikleren aktivt arbejder på projektet, og antallet af stjerner på GitHub gradvist stiger — for nylig blev temci endda på Hacker News.
Et værktøj til at vurdere ydeevnen af lavniveau CPU-funktioner, udviklet af ingeniøren Travis Downs (). For nylig har han startet sin egen blog på GitHub Pages, hvor han fortæller om værktøjer til benchmarking og andre relaterede emner. Generelt er uarch-bench stadig kun i starten af sin popularitet, men bliver allerede hyppigt nævnt af brugerne på Hacker News i relevante tråde som et go-to værktøj til benchmarking.
Uarch-bench gør det muligt at vurdere hukommelsens ydeevne, hastigheden af parallel dataloading og arbejdet med at rydde . Hvordan benchmark-resultaterne, der genereres af programmet, ser ud, kan findes nederst på siden.
Det skal bemærkes, at uarch-bench, ligesom temci, Intel Turbo Boost-funktionen (den øger automatisk processorens clockfrekvens under belastning), så testresultaterne er konsistente.
Projektet er stadig i de tidlige udviklingsstadier, så uarch-bench har ikke detaljeret dokumentation, og der kan opstå fejl i dets funktion — for eksempel med at køre på Ryzen. Der understøttes også kun benchmarks for x86-arkitekturer. Forfatteren lover at tilføje flere funktioner i fremtiden og inviterer til at deltage i udviklingen.
Dette er et værktøjssæt til ydeevnevurdering af Linux-maskiner med Intel-, AMD- og ARMv8-processorer. Det blev oprettet under ledelse af det føderale ministerium for uddannelse og forskning i Tyskland i 2017 og er blevet open source.
Blandt likwid-værktøjerne kan man fremhæve likwid-powermeter, som viser information fra RAPL-registerne om systemets strømforbrug, samt likwid-setFrequencies — der giver mulighed for at kontrollere processorens frekvens. Du kan finde den komplette liste .
Værktøjet bruges af ingeniører, der forsker inden for HPC. For eksempel bruger en gruppe specialister fra Regional Computing Center ved University of Erlangen-Nuremberg (RRZE) i Tyskland likwid. De deltager også aktivt i udviklingen af dette værktøjssæt. perf-tools

Foto — — Unsplash
Brendan Gregg. Han er en af udviklerne — et framework til dynamisk tracing for debugging af applikationer i realtid. Perf-tools er baseret på delsystemerne kernel perf_events og ftrace. Deres værktøjer giver mulighed for at analysere input/output forsinkelse (iosnoop), spore argumenter til systemopkald (unccount, funcslower, funcgraph og functrace) og indsamle statistik om “hits” i filcachet (cachestat). I det sidste tilfælde ser kommandoen således ud:
Omkring værktøjet er der dannet et ganske stort fællesskab (
# ./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
næsten 6 tusinde stjerner på GitHub). Og der er virksomheder, der aktivt bruger perf-tools, for eksempel . Men værktøjet revideres og modificeres (selvom opdateringerne har været ret sjældne på det seneste). Derfor kan der opstå fejl i dets funktion — forfatteren nævner, at perf-tools nogle gange forårsager kernel panic.
Et værktøj, der forudsiger, hvor mange computerressourcer en maskinkode vil kræve på forskellige CPU'er. Det Instructions Per Cycle () og den belastning, som den bestemte applikation genererer på hardware’en.
llvm-mca blev introduceret i 2018 som en del af projektet , der arbejder med udvikling af et universelt system til analyse, transformation og optimering af programmer. Det er kendt, at skaberne af llvm-mca blev inspireret af en løsning til softwareydelsesanalyse og forsøgte at skabe et alternativ. Ifølge brugerne ligner output fra værktøjet (deres strukturer og antal) faktisk IACA — et eksempel . Men llvm-mca accepterer kun , så det vil sandsynligvis være nødvendigt at bruge konvertere for at arbejde med det.
Hvad vi skriver om i vores blogs og sociale medier:
![]()
![]()
![]()
![]()
![]()
Vi hos 1cloud.ru tilbyder en gratis service «». Du kan administrere DNS-poster hos os i et samlet kontrolpanel.
Kilde: habr.com
