current status: scrawling "FUN JIT COMPILER PROBLEM" in sharpie on a big cardboard box, then putting it on my front lawn and seeing who jumps into it
@mjk the fastest renderer just writes the bits of the image to the screen.
but is that what you wanted?
you should extend the problem to "render *any subset* of prospero.vm lines" so the approach remains reasonably dynamic.
I mention that specifically:
"Obviously, you could precompute the entire image, but that's against the spirit of the challenge"
Basically, yes, that is *technically* a solution, but I'm not here to play "find loopholes in an informally specified challenge"
Hopefully, people can read between the lines and extrapolate what counts as "interesting" from the examples given!
@mjk they cannot :)
@lritter anyways you should implement a test evaluator in Scopes
@mjk well it *does* parse already.
@mjk would it be within the spirit of the challenge to just string-manipulate the code into some rust code, if i think the bulk of my attempt would be treating it as, basically, a mathematical function? i know the box says "jit compiler"...
Sure, go for it! The downside is significantly higher up-front cost, since you have to run the Rust compiler (and that cost has to be paid again if the expression changes).
@mjk spoilers but til rustc does not really like a ~8000 line dag...
@mjk you totally said the challenge was to have fun, and never mentioned to render it as fast as possible, right?
@dramforever hell yeah
@mjk
Regarding the TFLOPS discrepancy it's quite likely that the CUDA compiler could optimise sequences of operations into shorter sequences of operations.
The simplest example is converting multiplication followed by addition to the FMA instruction (Fused Multiply Add).
But the compiler can optimise many other things, including repeatedly folding operations with constant inputs into constants themselves, shifting work from runtime to compile time.