relu3 upper bounds with compiler flags (benchmark combinations report)#942
Conversation
edb1801 to
abdf9e3
Compare
|
[Now rebased] |
cf7642c to
c8aea06
Compare
|
Interestingly, the version using |
7d2ecfb to
1136d9a
Compare
|
Cool! Do we think that float is more than 2x the speed of double? I realize that's not easily checkable from here, just wondering. |
|
Looks like it, based on the difference between these two (from #877). PyTorch backwards goes from 3.4ms on
|
|
|
||
|
|
||
| def vrelu3_embedded_ks_checkpointed_map_handwritten_relu3(): | ||
| def no_vrelu3_embedded_ks_checkpointed_map_handwritten_relu3(): |
There was a problem hiding this comment.
Has this been disabled intentionally?
There was a problem hiding this comment.
It was an accident. Thanks for spotting! I have pushed a fix.
497ca64 to
86af442
Compare
|
We still have great performance post https://github.com/microsoft/knossos-ksc/pull/931/files |
Tables updated above? |
| return CFlags(cl_flags=[], gcc_flags=gcc_flags) | ||
|
|
||
|
|
||
| default_cflags = CFlags( |
I'm not sure what you mean, but if you're asking whether the tables above have been updated to show performance after https://github.com/microsoft/knossos-ksc/pull/931/files was merged, then no, they haven't been updated. Here are such tables though: (86af442) |
86af442 to
1e93252
Compare






This allows to set compiler flags for the compilation of embedded C++ and KS benchmarks. See #942 (comment) for up-to-date benchmark numbers. Most important feature of benchmark: with the right compiler flags
ifis as fast as masking (and they're both a bit faster than PyTorch)!This PR introduces the
CFlagsclass for bundling together compiler flags we might feed togccorcl. It's a bit hokey but seems to strike a good balance between simplicity and robustness. An alternative could be to pass around flags for both compilers separately, but that's rather messy and not robust to adding a new compiler in the future.Old
As of 207d412 we get a 10%-30% improvement by using compiler flags (
-march=native- -funroll-loops -ffast-math -mprefer-vector-width=512. I don't (yet) know which specific flags here make the difference.).