hachyderm.io is one of the many independent Mastodon servers you can use to participate in the fediverse.
Hachyderm is a safe space, LGBTQIA+ and BLM, primarily comprised of tech industry professionals world wide. Note that many non-user account types have restrictions - please see our About page.

Administered by:

Server stats:

9.3K
active users

Matt Keeter

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

mattkeeter.com/projects/prospe

www.mattkeeter.comThe Prospero ChallengeEvaluate a 7866-clause math expression for fame and glory

@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.

@lritter

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!

@lritter anyways you should implement a test evaluator in Scopes 😉

@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"...

@dramforever

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?

@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.