4 ms·
Super-cool. I haven't looked at the source, but I bet it's massively parallel, at the pixel level? (I do see you say it's "not a cellular automaton", though...
by FooBarBizBazz 5y ago
Super-cool.
I haven't looked at the source, but I bet it's massively parallel, at the pixel level? (I do see you say it's "not a cellular automaton", though...)
If so, I wonder how difficult it would be to port this to GPU, either writing CUDA yourself, or maybe even using PyTorch.
If PyTorch, you might be able to make it differentiable (by changing ANDs to MULs and such). What would be achieved by making the simulation differentiable I don't know. But surely you'd come up with something interesting. Given how much effort has gone into developing architectures whose gradients don't explode, my guess is you'd run into difficulties, but maybe you could even learn programs that model various sequences.
The main point would just be to run it on the GPU, though.
- lynndotpy 5y agoThank you! And not parallel, alas. The image compiles to a graph, where contiguous regions are nodes and adjacent regions form edges. Regarding differentiation, the logic gates could look like a differential equation. Between iterations, input nodes amass a binary vector from adjacent wires, and pass them onto adjacent output nodes. So, mapping {0,1}^n --> {0, 1}, you could write them all in terms of some periodic function. (E.g. xor implemented with sin, or implemented with a sigmoid made from a quarter of a sin, etc.) Either way, yeah! There is plenty of room to speed this up