[all-commits] [llvm/llvm-project] 233ca8: [exegesis] Benchmark: provide optional progress me...
Roman Lebedev via All-commits
all-commits at lists.llvm.org
Tue Dec 13 04:31:17 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 233ca84a25a7ba14aac7bcbd1956d6f528d4395f
https://github.com/llvm/llvm-project/commit/233ca84a25a7ba14aac7bcbd1956d6f528d4395f
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2022-12-13 (Tue, 13 Dec 2022)
Changed paths:
A llvm/tools/llvm-exegesis/lib/ProgressMeter.h
M llvm/tools/llvm-exegesis/llvm-exegesis.cpp
M llvm/unittests/tools/llvm-exegesis/CMakeLists.txt
A llvm/unittests/tools/llvm-exegesis/ProgressMeterTest.cpp
Log Message:
-----------
[exegesis] Benchmark: provide optional progress meter / ETA
Now that `--opcode-index=-1` is mostly stable,
and i can migrate off of my custom tooling that emulated it,
there comes a bit of confusion as to the status of the run.
It is normal for the single all-opcode run to take ~3 minutes,
and it's a bit more than one can be comfortable with,
without having some sort of visual indication of the progress.
Thus, i present:
```
$ ./bin/llvm-exegesis -mode=inverse_throughput --opcode-index=-1 --benchmarks-file=/dev/null --dump-object-to-disk=0 --measurements-print-progress --skip-measurements
<...>
XAM_Fp80: unsupported opcode: pseudo instruction
XBEGIN: Unsupported opcode: isPseudo/usesCustomInserter
XBEGIN_2: Unsupported opcode: isBranch/isIndirectBranch
XBEGIN_4: Unsupported opcode: isBranch/isIndirectBranch
XCH_F: unsupported second-form X87 instruction
Processing... 1%, ETA 02:10
Processing... 2%, ETA 02:03
Processing... 3%, ETA 02:00
Processing... 4%, ETA 01:57
Processing... 5%, ETA 01:54
Processing... 6%, ETA 01:53
Processing... 7%, ETA 01:51
Processing... 8%, ETA 01:50
Processing... 9%, ETA 01:49
Processing... 10%, ETA 01:48
Processing... 11%, ETA 01:46
Processing... 12%, ETA 01:45
Processing... 13%, ETA 01:44
Processing... 14%, ETA 01:43
Processing... 15%, ETA 01:42
Processing... 16%, ETA 01:42
Processing... 17%, ETA 01:41
```
As usual, the ETA estimation is statically-insignificant,
and is a lie/does not converge at least until 50% through.
It would be nice to have an actual progress indicator like in LIT,
but i'm not sure we have such a luxury in C++ form in LLVM codebase already.
Reviewed By: courbet
Differential Revision: https://reviews.llvm.org/D139797
More information about the All-commits
mailing list