We continue to discuss tools for evaluating CPU performance on Linux machines. Today's material includes: temci, uarch-bench, likwid, perf-tools, and llvm-mca.
More benchmarks:
Foto — — Unsplash
This is a tool for measuring the execution time of two programs. Essentially, it allows you to compare the execution time of two applications. The utility was developed by a student from Germany, Johannes Bechberger, who created it as part of his bachelor's thesis in 2016. Today, the tool is licensed under the GNU General Public License.
Johannes wanted to create a tool that would measure the performance of the computing system in a controlled environment. Therefore, one of the main features of temci is the ability to configure the testing environment. For example, : change the settings of the CPU frequency management, disable and L1 and L2 caches, turn off turbo mode on Intel processors, and more. For benchmarking, temci uses the tools , en .
Here’s how the utility works in the first case:
# 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
Based on the benchmarking results, the system generates with diagrams, tables, and graphs, which distinguishes temci from similar solutions.
Among the drawbacks of temci is its 'youth'. Because of this, it hardware and software configurations. For example, it is difficult to run under macOS, and some features are unavailable on ARM processor systems. This situation may change in the future, as the author is actively developing the project, and the number of stars on GitHub is gradually increasing — just recently, temci was even on Hacker News.
A utility for evaluating the performance of low-level CPU functions, developed by engineer Travis Downs. Recently, he has been maintaining his blogon GitHub Pages, where he discusses tools for benchmarking and other related topics. Overall, uarch-bench is just beginning to gain popularity but is already frequently by Hacker News residents in thematic threads as a go-to tool for benchmarking. YMM registers.
YMM registers. De resultaten van de benchmarking die door het programma worden gegenereerd, zijn te vinden onderaan de pagina.
Het is vermeldenswaard dat uarch-bench, net als temci, de Intel Turbo Boost-functie (die automatisch de kloksnelheid van de processor verhoogt onder belasting), zodat de testresultaten consistent zijn.
Het project bevindt zich nog in een vroeg stadium van ontwikkeling, dus uarch-bench heeft geen uitgebreide documentatie en er kunnen bugs optreden in de werking ervan — bijvoorbeeld, met het opstarten op Ryzen. Daarnaast wordt er alleen ondersteuning geboden voor benchmarks voor x86-architecturen. De auteur belooft in de toekomst meer functionaliteit toe te voegen en nodigt uit om deel te nemen aan de ontwikkeling.
Dit is een set van tools voor het evalueren van de prestaties van Linux-machines met Intel-, AMD- en ARMv8-processors. Het is opgericht onder auspiciën van het Duitse Federal Ministry of Education and Research in 2017 en is vrijgegeven als open source.
Onder de tools van likwid kunnen we likwid-powermeter opmerken, die informatie uit de RAPL-registers over het door het systeem verbruikte vermogen toont, en likwid-setFrequencies — waarmee de kloksnelheid van de processor kan worden gecontroleerd. Een volledige lijst kunt u .
De tool wordt gebruikt door ingenieurs die zich bezighouden met onderzoek op het gebied van HPC. Bijvoorbeeld, met likwid werkt een groep specialisten van het Regional Computing Center van de Universiteit van Erlangen-Nürnberg (RRZE) in Duitsland. Zij nemen ook actief deel aan de ontwikkeling van deze set tools.

Foto — — Unsplash
Deze tool voor de analyse van de prestaties van Linux-servers Brendan Gregg. Hij is een van de ontwikkelaars - van het dynamische traceerframework voor het debuggen van applicaties in realtime.
De kern van perf-tools bestaat uit de subsysteem kernel perf_events en ftrace. De hulpprogramma's stellen u in staat om de invoer-/uitvoervertraging (iosnoop) te analyseren, de argumenten van systeemoproepaanroepen (unccount, funcslower, funcgraph en functrace) te volgen, en statistieken over 'hits' in de bestandscache te verzamelen (cachestat). In het laatste geval ziet de opdracht er als volgt uit:
# ./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
Rond de tool is een vrij uitgebreide gemeenschap gevormd (). En er zijn bedrijven die perf-tools actief gebruiken, bijvoorbeeld . Maar de tool wordt verder ontwikkeld en aangepast (hoewel er de laatste tijd niet veel updates zijn verschenen). Daarom kunnen er fouten optreden in de werking ervan — de auteur schrijft dat perf-tools soms kernel panic veroorzaakt.
Een hulpprogramma dat voorspelt hoeveel rekenkracht machinecode op verschillende CPU's nodig heeft. Het Instructions Per Cycle () en de belasting op de hardware die door een bepaalde applicatie wordt gegenereerd.
llvm-mca werd in 2018 gepresenteerd als onderdeel van een project , dat zich bezighoudt met de ontwikkeling van een universeel systeem voor analyse, transformatie en optimalisatie van programma's. Het is bekend dat de auteurs van llvm-mca zich hebben laten inspireren door de performance-analyse oplossing en streefden naar een alternatief. Gebruikers beweren dat de output van de tool (de markering en hoeveelheid) inderdaad doet denken aan IACA — een voorbeeld . Echter, llvm-mca accepteert alleen , dus voor gebruik ermee zal je waarschijnlijk converters moeten gebruiken.
Waar we over schrijven in onze blogs en sociale media:
![]()
![]()
![]()
![]()
![]()
Bij 1cloud.ru bieden we een gratis dienst aan: ‘’. Je kunt DNS-records bij ons beheren in een uniform klantenpaneel.
Bron: habr.com
