7 ms·
Really cool paper. I've been playing with a superoptimizer of my own creation (not yet available, still too half-assed and special-casey to inflict on the publ
by glangdale 6y ago
Really cool paper.
I've been playing with a superoptimizer of my own creation (not yet available, still too half-assed and special-casey to inflict on the public) for generating SIMD code and the experience of seeing sophisticated code sequences emerge from "nothing" is eerie. It's early days for program synthesis, but we'll be seeing more of this.
- reitzensteinm 6y agoI've got quite a lot of hope that a "sufficiently smart compiler" is not a pipe dream, just an idea well in advance of its time. I think eventually we'll be able to describe data structures and algorithms in very high level languages in an architecturally neutral way and spit out near optimal code for the desired parameters. Although I wouldn't be surprised to learn it does happen, but not in my lifetime.
- jacquesm 6y agoI think in that case you would be very surprised it does happen.
- reitzensteinm 6y agoCryonics may turn out to be easier :)
- hairtuq 6y agoThere is some work on automatically generating data structure implementations from high-level specifications: https://cozy.uwplse.org/ https://cozy.uwplse.org/
- reitzensteinm 6y agoThat's pretty cool. I'm going to have a play, it could be very helpful. I have implemented some variants of HAMT and it gets pretty frustrating implementing the same algorithms over and over again for sightly different use cases. In memory, lazy loading and eager nodes serialized to disk with sync and async APIs, the ability to diff between the above. And sets and map versions. If you had true zero cost abstraction you could build pieces that can be bolted together to achieve all of that quite elegantly. But an attempt in mainstream languages means losing one if not two orders of magnitude of performance.