เดฒเดฟเดจเด•เตเดธเต เดธเต†เตผเดตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ: เด“เดชเตเดชเตบ เดŸเต‚เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต

เดฒเดฟเดจเด•เตเดธเต เดฎเต†เดทเต€เดจเตเด•เดณเดฟเดฒเต† เดธเดฟเดชเดฟเดฏเต เดชเตเดฐเด•เดŸเดจเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดŸเต‚เดณเตเด•เดณเต† เด•เตเดฑเดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดคเตเดŸเตผเดจเตเดจเตเด‚ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดจเตเดจเต เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเดฒเดฟเตฝ: temci, uarch-bench, likwid, perf-tools, llvm-mca.

เด•เต‚เดŸเตเดคเตฝ เดฎเดพเดจเดฆเดฃเตเดกเด™เตเด™เตพ:

เดฒเดฟเดจเด•เตเดธเต เดธเต†เตผเดตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ: เด“เดชเตเดชเตบ เดŸเต‚เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต
- เดฒเต‚เด•เตเด•เดพเดธเต เดฌเตเดฒเดพเดธเต†เด•เตเด•เต - เด…เตบเดธเตเดชเตเดฒเดพเดทเต

เดŸเต†เด‚เดธเดฟ

เดฐเดฃเตเดŸเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เดณเตเดŸเต† เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเตป เดธเดฎเดฏเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดชเด•เดฐเดฃเดฎเดพเดฃเดฟเดคเต. เด…เดŸเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ, เดฐเดฃเตเดŸเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเดŸเต† เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเตป เดธเดฎเดฏเด‚ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเตเดŸเต† เดฐเดšเดฏเดฟเดคเดพเดตเต เดœเตผเดฎเตเดฎเดจเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดœเต‹เดนเดจเตเดจเดพเดธเต เดฌเต†เดšเตเดšเตเดฌเต†เตผเด—เตผ, 2016 เตฝ เดคเดจเตเดฑเต† เดฌเดพเดšเตเดšเดฟเดฒเต‡เดดเตเดธเต เดคเต€เดธเดฟเดธเดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฏเดฟ เด‡เดคเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเต†เดŸเตเดคเตเดคเต. เด‡เดจเตเดจเดคเตเดคเต† เด‰เดชเด•เดฐเดฃเด‚ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดคเดคเต เด—เตเดจเต เดœเดจเดฑเตฝ เดชเดฌเตเดฒเดฟเด•เต เดฒเตˆเดธเตปเดธเดฟเดจเต เด•เต€เดดเดฟเตฝ เดฒเตˆเดธเตปเดธเต.

เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดค เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เด’เดฐเต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเด•เดŸเดจเด‚ เด…เดณเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด‰เดชเด•เดฐเดฃเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดœเต‹เดนเดจเตเดจเดพเดธเต เด†เด—เตเดฐเดนเดฟเดšเตเดšเต. เด…เดคเดฟเดจเดพเตฝ, เดŸเต†เด‚เดธเดฟเดฏเตเดŸเต† เดชเตเดฐเดงเดพเดจ เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเดฟเดฒเตŠเดจเตเดจเต เด’เดฐเต เดชเดฐเต€เด•เตเดทเดฃ เด…เดจเตเดคเดฐเต€เด•เตเดทเด‚ เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, can: CPU เดซเตเดฐเต€เด•เตเดตเตปเดธเดฟ เดฎเดพเดจเต‡เดœเตผ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเตเด•, เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเด• เดนเตˆเดชเตเดชเตผ-เดคเตเดฐเต†เดกเดฟเด‚เด—เต เด•เต‚เดŸเดพเดคเต† L1, L2 เด•เดพเดทเต†เด•เตพ, เด‡เดจเตเดฑเตฝ เดชเตเดฐเต‹เดธเดธเดฑเตเด•เดณเดฟเตฝ เดŸเตผเดฌเต‹ เดฎเต‹เดกเต เด“เดซเดพเด•เตเด•เตเด• เดคเตเดŸเด™เตเด™เดฟเดฏเดต. เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เดŸเต†เด‚เดธเดฟ เดŸเต‚เดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เด•เดพเดฒเด‚, perf_stat ะธ เด—เต†เดŸเตเดฐเต‚เดธเต‡เดœเต.

เด†เดฆเตเดฏ เด•เต‡เดธเดฟเตฝ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด‡เด™เตเด™เดจเต†เดฏเดพเดฃเต เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเดคเต:

# 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

เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เดฟเด‚เด—เต เดซเดฒเด™เตเด™เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ, เดธเดฟเดธเตเดฑเตเดฑเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เดกเดฏเด—เตเดฐเดฎเตเด•เตพ, เดชเดŸเตเดŸเดฟเด•เด•เตพ, เด—เตเดฐเดพเดซเตเด•เตพ เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŸเต†เด‚เดธเดฟเดฏเต† เดธเดฎเดพเดจ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเต‡เตผเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดŸเต†เด‚เดธเดฟเดฏเตเดŸเต† เดชเต‹เดฐเดพเดฏเตเดฎเด•เดณเดฟเตฝ, เด…เดคเดฟเดจเตเดฑเต† "เดฏเตเดตเดคเตเดตเด‚" เดตเต‡เดฑเดฟเดŸเตเดŸเตเดจเดฟเตฝเด•เตเด•เตเดจเตเดจเต. เด‡เด•เตเด•เดพเดฐเดฃเดคเตเดคเดพเตฝ เด…เดตเตป เดŽเดฒเตเดฒเดพเด‚ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ, เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด•เตพ. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, MacOS-เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต, เดšเดฟเดฒ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ ARM-เด…เดงเดฟเดทเตเด เดฟเดค เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดฒเดญเตเดฏเดฎเดฒเตเดฒ. เดญเดพเดตเดฟเดฏเดฟเตฝ, เดธเดพเดนเดšเดฐเตเดฏเด‚ เดฎเดพเดฑเดฟเดฏเต‡เด•เตเด•เดพเด‚, เด•เดพเดฐเดฃเด‚ เดฐเดšเดฏเดฟเดคเดพเดตเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดธเดœเต€เดตเดฎเดพเดฏเดฟ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ GitHub-เดฒเต† เดจเด•เตเดทเดคเตเดฐเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด•เตเดฐเดฎเต‡เดฃ เดตเตผเดฆเตเดงเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต - เดตเดณเดฐเต†เด•เตเด•เดพเดฒเด‚ เดฎเตเดฎเตเดชเต เดŸเต†เด‚เดธเดฟ เดชเต‹เดฒเตเด‚ เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดšเตผเดšเตเดš เดšเต†เดฏเตเดคเต เดนเดพเด•เตเด•เตผ เดตเดพเตผเดคเตเดคเด•เดณเดฟเตฝ.

uarch-bench

เดฒเต‹-เดฒเต†เดตเตฝ เดธเดฟเดชเดฟเดฏเต เดซเด‚เด—เตโ€Œเดทเดจเตเด•เดณเตเดŸเต† เดชเตเดฐเด•เดŸเดจเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ, เดŽเตปเดœเดฟเดจเต€เดฏเตผ เดŸเตเดฐเดพเดตเดฟเดธเต เดกเต—เตบเดธเต (เดŸเตเดฐเดพเดตเดฟเดธเต เดกเต—เตบเดธเต). เด…เดŸเตเดคเตเดคเดฟเดŸเต† เด…เดฆเตเดฆเต‡เดนเด‚ เดฌเตเดฒเต‹เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดชเตเดฐเด•เดŸเดจเด‚ เด•เดพเดฐเตเดฏเด™เตเด™เตพ GitHub เดชเต‡เดœเตเด•เดณเดฟเตฝ, เด…เดคเต เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เดฟเด‚เด—เต เดŸเต‚เดณเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เดฎเดฑเตเดฑเต เด…เดจเตเดฌเดจเตเดง เด•เดพเดฐเตเดฏเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดชเตŠเดคเตเดตเต‡, uarch-bench เดœเดจเดชเตเดฐเต€เดคเดฟ เดจเต‡เดŸเดพเตป เดคเตเดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด‡เดคเต เด‡เดคเดฟเดจเด•เด‚ เดตเดณเดฐเต† เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฃเต เดชเดฐเดพเดฎเตผเดถเดฟเดšเตเดšเต เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด’เดฐเต เด—เต‹-เดŸเต เดŸเต‚เตพ เดŽเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ เดคเต€เดฎเดพเดฑเตเดฑเดฟเด•เต เดคเตเดฐเต†เดกเตเด•เดณเดฟเดฒเต† เดนเดพเด•เตเด•เตผ เดจเตเดฏเต‚เดธเดฟเดฒเต† เดคเดพเดฎเดธเด•เตเด•เดพเตผ.

เดฎเต†เดฎเตเดฎเดฑเดฟ เดชเตเดฐเด•เดŸเดจเด‚, เดธเดฎเดพเดจเตเดคเดฐ เดกเดพเดฑเตเดฑ เดฒเต‹เดกเดฟเด‚เด—เต เดตเต‡เด—เดค, เด•เตเดฒเต€เดจเดฟเด‚เด—เต เดœเต‹เดฒเดฟ เดŽเดจเตเดจเดฟเดต เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดพเตป Uarch-bench เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต YMM เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เดฟเด‚เด—เต เดซเดฒเด™เตเด™เตพ เดŽเด™เตเด™เดจเต†เดฏเตเดฃเตเดŸเต†เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚ เด”เดฆเตเดฏเต‹เด—เดฟเด• เดธเด‚เดญเดฐเดฃเดฟเดฏเดฟเตฝ เดชเต‡เดœเดฟเดจเตเดฑเต† เดคเดพเดดเต†.

เดŸเต†เด‚เดธเดฟ เดชเต‹เดฒเต†เดฏเตเดณเตเดณ uarch-bench เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต, เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต เด‡เดจเตเดฑเตฝ เดŸเตผเดฌเต‹ เดฌเต‚เดธเตเดฑเตเดฑเต เดซเด‚เด—เตโ€Œเดทเตป (เดฒเต‹เดกเดฟเดจเต เด•เต€เดดเดฟเดฒเตเดณเตเดณ เดชเตเดฐเต‹เดธเดธเตผ เด•เตเดฒเต‹เด•เตเด•เต เดธเตเดชเต€เดกเต เด‡เดคเต เดฏเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต) เด…เด™เตเด™เดจเต† เดชเดฐเดฟเดถเต‹เดงเดจเดพ เดซเดฒเด™เตเด™เตพ เดธเตเดฅเดฟเดฐเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

เด‡เดชเตเดชเต‹เตพ, เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดพเดฐเด‚เดญ เด˜เดŸเตเดŸเดคเตเดคเดฟเดฒเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ uarch-bech-เดจเต เดตเดฟเดถเดฆเดฎเดพเดฏ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด‡เดฒเตเดฒ, เด…เดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเตฝ เดฌเด—เตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚ - เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเด•เตพ เด…เดฑเดฟเดฏเดพเด‚ Ryzen-เตฝ เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต. เด•เต‚เดŸเดพเดคเต†, x86 เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เต‚. เดญเดพเดตเดฟเดฏเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดค เดšเต‡เตผเด•เตเด•เตเดฎเต†เดจเตเดจเต เดฐเดšเดฏเดฟเดคเดพเดตเต เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดตเดฟเด•เดธเดจเดคเตเดคเดฟเตฝ เดšเต‡เดฐเดพเตป เดจเดฟเด™เตเด™เดณเต† เด•เตเดทเดฃเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดฆเตเดฐเดพเดตเด•

Intel, AMD, ARMv8 เดชเตเดฐเต‹เดธเดธเดฑเตเด•เตพ เด‰เดณเตเดณ เดฒเดฟเดจเด•เตเดธเต เดฎเต†เดทเต€เดจเตเด•เดณเตเดŸเต† เดชเตเดฐเด•เดŸเดจเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดŸเต‚เดณเดพเดฃเดฟเดคเต. เด‡เดคเต 2017 เตฝ เดœเตผเดฎเตเดฎเตป เดซเต†เดกเดฑเตฝ เดตเดฟเดฆเตเดฏเดพเดญเตเดฏเดพเดธ เด—เดตเต‡เดทเดฃ เดฎเดจเตเดคเตเดฐเดพเดฒเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด†เดญเดฟเดฎเตเด–เตเดฏเดคเตเดคเดฟเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเดฟเดฒเต‡เด•เตเด•เต เดฑเดฟเดฒเต€เดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต.

likwid เดŸเต‚เดณเตเด•เดณเดฟเตฝ, เดžเด™เตเด™เตพเด•เตเด•เต likwid-powermeter เดนเตˆเดฒเตˆเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดคเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดตเตˆเดฆเตเดฏเตเดคเดฟเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ RAPL เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเตเดชเต‹เดฒเต† เดชเตเดฐเต‹เดธเดธเตผ เดซเตเดฐเต€เด•เตเดตเตปเดธเดฟ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ likwid-setFrequencies. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚ เดถเต‡เด–เดฐเดคเตเดคเดฟเตฝ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•.

HPC เด—เดตเต‡เดทเดฃเดคเตเดคเดฟเตฝ เดเตผเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดŽเดžเตเดšเดฟเดจเต€เดฏเตผเดฎเดพเตผ เดˆ เด‰เดชเด•เดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, likwid เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดœเตผเดฎเตเดฎเดจเดฟเดฏเดฟเดฒเต† เดŽเตผเดฒเดพเด‚เด—เตป-เดจเตเดฏเต‚เดฑเด‚เดฌเตผเด—เต เดธเตผเดตเด•เดฒเดพเดถเดพเดฒเดฏเตเดŸเต† (RRZE) เดฑเต€เดœเดฟเดฏเดฃเตฝ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เต เดธเต†เดจเตเดฑเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดตเดฟเดฆเด—เตเดงเตผ. เดˆ เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเตเดŸเต† เดตเดฟเด•เดธเดจเดคเตเดคเดฟเตฝ เด…เดตเตพ เดธเดœเต€เดตเดฎเดพเดฏเดฟ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เตเดจเตเดจเต.

เดฒเดฟเดจเด•เตเดธเต เดธเต†เตผเดตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ: เด“เดชเตเดชเตบ เดŸเต‚เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต
- เด•เตเดฒเต†เด‚ เด’เดจเต‹เดœเต†เด—เตเดตเต‹ - เด…เตบเดธเตเดชเตเดฒเดพเดทเต

perf-เดŸเต‚เดณเตเด•เตพ

เดฒเดฟเดจเด•เตเดธเต เดธเต†เตผเดตเดฑเตเด•เดณเตเดŸเต† เดชเตเดฐเด•เดŸเดจเด‚ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดˆ เด‰เดชเด•เดฐเดฃเด‚ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเต เดฌเตเดฐเดฃเตเดŸเตป เด—เตเดฐเต†เด—เต. เด…เดฆเตเดฆเต‡เดนเด‚ เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเดฐเดฟเตฝ เด’เดฐเดพเดณเดพเดฃเต เดกเดฟเดŸเตเดฐเต‡เดธเต โ€” เดคเดคเตเดธเดฎเดฏเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดกเต€เดฌเด—เตเด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดกเตˆเดจเดพเดฎเดฟเด•เต เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต เดซเตเดฐเต†เดฏเดฟเด‚เดตเตผเด•เตเด•เต.

perf-tools perf_events, ftrace เด•เต‡เตผเดฃเตฝ เดธเดฌเตเดธเดฟเดธเตเดฑเตเดฑเด‚ เดŽเดจเตเดจเดฟเดตเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณเดคเดพเดฃเต. I/O เดฒเต‡เดฑเตเดฑเตปเดธเดฟ (iosnoop), เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ (unccount, funcslower, funcgraph, functrace) เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดซเดฏเตฝ เด•เดพเดทเต†เดฏเดฟเดฒเต† (เด•เดพเดทเต†เดธเตเดฑเตเดฑเดพเดฑเตเดฑเต) "เดนเดฟเดฑเตเดฑเตเด•เดณเตเดŸเต†" เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเด•เตเด•เดฃเด•เตเด•เตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดตเดฐเตเดŸเต† เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เตพ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดชเดฟเดจเตเดจเต€เดŸเตเดณเตเดณ เดธเดจเตเดฆเตผเดญเดคเตเดคเดฟเตฝ, เด•เดฎเดพเตปเดกเต เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

# ./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

เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเต เดšเตเดฑเตเดฑเตเด‚ เดตเดณเดฐเต† เดตเดฒเดฟเดฏเตŠเดฐเต เดธเดฎเต‚เดนเด‚ เดฐเต‚เดชเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต (GitHub-เตฝ เดเด•เดฆเต‡เดถเด‚ 6 เด†เดฏเดฟเดฐเด‚ เดจเด•เตเดทเดคเตเดฐเด™เตเด™เตพ). เดชเต†เตผเดซเต เดŸเต‚เดณเตเด•เตพ เดธเดœเต€เดตเดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด•เดฎเตเดชเดจเดฟเด•เดณเตเดฃเตเดŸเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เดจเต†เดฑเตเดฑเตเดซเดฟเด•เตเดธเต. เดŽเดจเตเดจเดพเตฝ เด‰เดชเด•เดฐเดฃเด‚ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเดฐเดฟเดทเตโ€Œเด•เตเด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเตเด•เตพ เดˆเดฏเดฟเดŸเต†เดฏเดพเดฏเดฟ เดตเดณเดฐเต† เด…เดชเต‚เตผเดตเดฎเดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเต‡ เดชเตเดฑเดคเตเดคเดฟเดฑเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเตเดณเตเดณเต‚เดตเต†เด™เตเด•เดฟเดฒเตเด‚). เด…เดคเดฟเดจเดพเตฝ, เด…เดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเตฝ เดชเดฟเดถเด•เตเด•เตพ เดธเด‚เดญเดตเดฟเด•เตเด•เดพเด‚ - เดšเดฟเดฒเดชเตเดชเต‹เตพ เดชเต†เตผเดซเต-เดŸเต‚เดณเตเด•เตพ เด•เต‡เตผเดฃเตฝ เดชเดฐเดฟเดญเตเดฐเดพเดจเตเดคเดฟเด•เตเด•เต เด•เดพเดฐเดฃเดฎเดพเด•เตเดฎเต†เดจเตเดจเต เดฐเดšเดฏเดฟเดคเดพเดตเต เดŽเดดเตเดคเตเดจเตเดจเต.

llvm-mca

เดตเตเดฏเดคเตเดฏเดธเตเดค CPU-เด•เดณเดฟเตฝ เดฎเต†เดทเต€เตป เด•เต‹เดกเต เดŽเดคเตเดฐ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เต เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดชเตเดฐเดตเดšเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ. เด…เดตเตพ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดจเตเดจเต เด“เดฐเต‹ เดธเตˆเด•เตเด•เดฟเดณเดฟเดฒเตเด‚ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ (IPC) เด•เต‚เดŸเดพเดคเต† เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเดฒเต† เดฒเต‹เดกเตเด‚.

เดชเดฆเตเดงเดคเดฟเดฏเตเดŸเต† เดญเดพเด—เดฎเดพเดฏเดฟ llvm-mca 2018-เตฝ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเต เดŽเตฝเดŽเตฝเดตเดฟเดŽเด‚, เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เดณเตเดŸเต† เดตเดฟเดถเด•เดฒเดจเด‚, เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚, เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเตป เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เดพเดฏเดฟ เด’เดฐเต เดธเดพเตผเดตเดคเตเดฐเดฟเด• เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. llvm-mca เดฏเตเดŸเต† เดฐเดšเดฏเดฟเดคเดพเด•เตเด•เตพ เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดชเตเดฐเด•เดŸเดจเด‚ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดšเต‹เดฆเดจเด‚ เด‰เตพเด•เตเด•เตŠเดฃเตเดŸเดฟเดฐเตเดจเตเดจเตเดตเต†เดจเตเดจเต เด…เดฑเดฟเดฏเดพเด‚. เด‡เดจเตเดฑเดฒเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ IACA เด’เดฐเต เดฌเดฆเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเดšเตเดšเต. เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดชเดฑเดฏเตเดจเตเดจเดคเดจเตเดธเดฐเดฟเดšเตเดšเต, เดŸเต‚เดณเดฟเดจเตเดฑเต† เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต (เด…เดตเดฐเตเดŸเต† เดฒเต‡เด”เดŸเตเดŸเตเด‚ เด…เดณเดตเตเด‚) เดถเดฐเดฟเด•เตเด•เตเด‚ IACA-เดฏเต‹เดŸเต เดธเดพเดฎเตเดฏเดฎเตเดณเตเดณเดคเดพเดฃเต - เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เดตเดฟเดŸเต† เด•เดฃเตเดŸเต†เดคเตเดคเดพเด‚. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, llvm-mca เดฎเดพเดคเตเดฐเดฎเต‡ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚ AT&T เดตเดพเด•เตเดฏเด˜เดŸเดจ, เด…เดคเดฟเดจเดพเตฝ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เด•เตบเดตเต†เตผเดŸเตเดŸเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดฟเดตเดฐเตเด‚.

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เตเด•เดณเดฟเดฒเตเด‚ เดธเต‹เดทเตเดฏเตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เตเด•เดณเดฟเดฒเตเด‚ เดžเด™เตเด™เตพ เดŽเดจเตเดคเดพเดฃเต เดŽเดดเตเดคเตเดจเตเดจเดคเต:

เดฒเดฟเดจเด•เตเดธเต เดธเต†เตผเดตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ: เด“เดชเตเดชเตบ เดŸเต‚เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต "เดฎเดพเดฑเตเดฑเต. เดตเดพเตพ เดธเตเดŸเตเดฐเต€เดฑเตเดฑเต เดฎเต‹เดกเตฝ" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เตเดฒเต—เดกเต เดšเต†เดฒเดตเตเด•เตพ เดŽเด™เตเด™เดจเต† เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดฏเดพเด‚

เดฒเดฟเดจเด•เตเดธเต เดธเต†เตผเดตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ: เด“เดชเตเดชเตบ เดŸเต‚เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เดจเดฟเด™เตเด™เดณเตเดŸเต† Linux เดธเดฟเดธเตเดฑเตเดฑเด‚ เดŽเด™เตเด™เดจเต† เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเด•เตเด•เดพเด‚: 10 เดจเตเดฑเตเด™เตเด™เตเด•เตพ
เดฒเดฟเดจเด•เตเดธเต เดธเต†เตผเดตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ: เด“เดชเตเดชเตบ เดŸเต‚เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เด…เดชเด•เดŸเดธเดพเดงเตเดฏเดคเด•เตพ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเต: เดจเดฟเด™เตเด™เดณเตเดŸเต† เดกเดพเดฑเตเดฑ เดŽเด™เตเด™เดจเต† เดจเดทเตโ€ŒเดŸเดชเตเดชเต†เดŸเตเดคเตเดคเดฐเตเดคเต

เดฒเดฟเดจเด•เตเดธเต เดธเต†เตผเดตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ: เด“เดชเตเดชเตบ เดŸเต‚เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดทเดจเดฟเตฝ เด‡เดคเดฟเดจเด•เด‚ เดเตผเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เด‰เดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเดตเตผเด•เตเด•เตเดณเตเดณ เดชเตเดธเตเดคเด•เด™เตเด™เตพ
เดฒเดฟเดจเด•เตเดธเต เดธเต†เตผเดตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ: เด“เดชเตเดชเตบ เดŸเต‚เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต: เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เตเด•เดณเดฟเตฝ เด…เดžเตเดšเต เดชเตเดธเตเดคเด•เด™เตเด™เดณเตเด‚ เด’เดฐเต เด•เต‹เดดเตโ€Œเดธเตเด‚

เดฒเดฟเดจเด•เตเดธเต เดธเต†เตผเดตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ: เด“เดชเตเดชเตบ เดŸเต‚เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเตเดžเด™เตเด™เตพ 1cloud.ru-เตฝ เด’เดฐเต เดธเต—เดœเดจเตเดฏ เดธเต‡เดตเดจเด‚ เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต "DNS เดนเต‹เดธเตเดฑเตเดฑเดฟเด‚เด—เต" เด’เดฐเตŠเดฑเตเดฑ เดตเตเดฏเด•เตเดคเดฟเด—เดค เด…เด•เตเด•เต—เดฃเตเดŸเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต DNS เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเดจเดพเด•เตเด‚.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•