Plan: staticdeps eval
This commit is contained in:
parent
96b23e97f7
commit
f787bb2b5a
1 changed files with 41 additions and 1 deletions
|
@ -113,7 +113,47 @@ On SKX,
|
|||
|
||||
### Dependencies detection
|
||||
|
||||
TODO
|
||||
#### With valgrind
|
||||
|
||||
* Instrument binary:
|
||||
* for each write, add `write_addr -> writer_pc` to a hashmap
|
||||
* for each read, fetch `writer_pc` from hashmap
|
||||
* if found, add a dependency `reader_pc -> writer_pc`
|
||||
* At the end, write deps file:
|
||||
* `#occur, src_elf_pc, src_elf_path, dst_elf_pc, dst_elf_path`
|
||||
* Run for each binary in genbenchs
|
||||
|
||||
* For each binary in genbenchs,
|
||||
* for each BB with more than 10% of max BB hits,
|
||||
* predict deps with staticdeps
|
||||
* check which dependencies are found/missed from the instrumented ones
|
||||
* limitation: will only find deps from/to the same BB! Dependencies leaving
|
||||
a BB are discarded.
|
||||
|
||||
* Result: about 38% of deps found.
|
||||
|
||||
* Cause: kernels executed in loops.
|
||||
* No dependency in the kernel
|
||||
```
|
||||
while:
|
||||
read (%rax)
|
||||
%rax ++
|
||||
write (%rax)
|
||||
```
|
||||
* But dependencies if executed in a loop! "Unwanted" deps.
|
||||
* and irrelevant in real life anyway: they are far away and will not cause
|
||||
latency
|
||||
* Fix: introduce dependency lifetime
|
||||
* timestamp = instructions executed (VG instrumentation, added up at the
|
||||
end of each BB)
|
||||
* lifetime fixed to 1024 instructions
|
||||
* dependencies are discarded if written to more than a lifetime ago
|
||||
|
||||
* Result: about (?? TODO) of deps found
|
||||
|
||||
#### With Gus
|
||||
|
||||
TODO ?
|
||||
|
||||
### UiCA enriching
|
||||
|
||||
|
|
Loading…
Reference in a new issue