3 ms·
Exactly, the STOKE results shown here are actually inferior to those produced by both gcc and clang when you actually know how to use the compiler and restrict
by keldaris 10y ago
Exactly, the STOKE results shown here are actually inferior to those produced by both gcc and clang when you actually know how to use the compiler and restrict pointer aliasing.
Are there any actual examples of stochastic optimization techniques outperforming compilers, rather than programmers' woefully lacking knowledge of compilers?
- wyldfire 10y ago> STOKE uses a sound procedure to validate the equality of loop-free code sequences... both sequences produce the same side effects on live outputs when executed from the same initial machine state. Well, if in effect STOKE is doing dynamic alias analysis, then it's not really inferior, right? Maybe it could be a PGO-style compiler pass? I think that some of us might overestimate the capability of most software teams, because it's pretty uncommon to find people who know what it means to add __restrict to function args.
- keldaris 10y agoWhile I guess it's true that not all that many people understand the restrict annotations in the various compilers, I don't think it's an unreasonable expectation from people writing saxpy-like computational kernels. It's certainly a prerequisite to doing research work on optimizations like this. STOKE isn't really doing dynamic alias analysis per se, although if run for long enough its results should theoretically be equivalent to such analysis. As the example assembly shows, however, it's far from a sure thing. More generally, things like PGO exist because they specifically do things traditional compiler-level optimizers fundamentally can't. For STOKE to make a similar claim we should see much better code examples than the one shown here.
- frozenport 10y ago>> uncommon to find people who know what it means to add __restrict I disagree, most people will add this keyword when optimizing code.