5 ms·
The code to reproduce my results can be found at [1] (Linux only for now, but porting is welcome). Basically `run-all.sh` generates the results and `plot-all.sh
by BeeOnRope 8y ago
The code to reproduce my results can be found at [1] (Linux only for now, but porting is welcome). Basically `run-all.sh` generates the results and `plot-all.sh` plots them.
It would be especially interesting to see Zen2 results since that's the first AMD chip with 256-bit wide loads executed in a single op, so the first one that can do better than 16 bytes per cycle from any level of the cache.
[1] https://github.com/travisdowns/uarch-bench/tree/master/scripts/l2-bandwidth https://github.com/travisdowns/uarch-bench/tree/master/scrip...
- Tuna-Fish 8y agoCan't Zen1 do 2x 16-byte load ops in one cycle, for 32 bytes per cycle from the L1?
- BeeOnRope 8y agoYes, it can. That was a typo, I meant to say "... can do better than 32 bytes per cycle".
- pedrocr 8y ago> Basically `run-all.sh` generates the results and `plot-all.sh` plots them. I've done things like this in the past and it's awesome. It would be great if more and more research was done like this so reproducing and extending results was much easier. Congratulations.
- BeeOnRope 8y agoThanks! So I started to do that for myself, to save time and make everything reproducible. I found that when I wanted to make a small change to anything I'd have to go back and dig up the old command lines, and sometimes I couldn't reproduce my old results. By recording the result generation in the script, including things like turning on and off the prefetchers - it made things reproducible for myself, and also encouraged experimentation since it was very easy to generate all the results after any change. Then, once you make that script for yourself, a nice side effect is that everyone else can use it too and you can skip a lot of the description about how you got your results: it's kind of a self-documenting way to explain how you got your results.
- pedrocr 8y agoThat was my experience as well. Experimentation becomes much easier and for things where you want to run the same analysis every year/month/etc when more data comes out it makes things much easier. It's also great when you have computationally expensive steps to just be able to issue a build the world command at the end of the day and have the computer regenerate everything overnight. This was my version of that: https://github.com/pedrocr/codecomp https://github.com/pedrocr/codecomp Ruby made for a good way to have scripting together with more declarative build like tooks (e.g., rake). I also automated the plotting like you did by embedding R snippets. There's probably space for a good framework for this. To be the rails of scientific workflow as it were. Integrate nicely with R/LaTeX/etc for bonus points. Maybe a procrastinating PhD student somewhere will make a name for himself doing this :)