All living things think, in the sense of processing information. A dragonfly, which is a sort of flying jewel if you've never seen one, is at the same time a thinking machine. It has some immense eyes, made out of thousands of faces in which there stands, overturned, the entire world ; and four wings that carry it in flight at great speed and with great precision. From a theoretical perspective, an iPhone camera (8 megapixels)ii even should it work true color and doing a 200 frames per second would be a poor approximation of the dragonfly's eye.iii Now let's multiply : 8 × 10 ^ 6 × 3 × 200 ≈ 5 GBps. I have no idea if you know what a processor for geometric hashing, let's say, that can do 5GBps costs, because rocket interception systems can't afford it, but that aside let me assure you it will draw some wattage. And now, if there's thousands of such cameras in the eyes of the dragonfly, looky that the 20 gram being expends just enough energy to carry its own hydro power plant, in case you recall that old joke with the watch and the suitcases.

We are not currently able to produce an artificial dragonfly for the simple reason that we can't reproduce its brain, that thing going through frames with such a devilish speed it renders the whole assemblage capable of catching mosquitoes in flight. Try this, by the way, catch mosquitoes while they fly around you, with your feet solidly anchored on the floor. From what I've seen, the average Joe manages in about a case of ten. With a little training you can do it with one hand, I manage about 60% of the time. Imagine you were doing this while flying through the room at a speed roughly equal to a hundred of your body lengths. Each second. It's pure fantasy, we can't think as fast as the dragonfly, and here's the kicker : it uses just about two calories to do all this. Two calories a day. One tic-tac.

If you're a Bitcoin miner, your eyes are probably lighting up already : there's a video card somewhere doing 5GBps x n at 750 Joules per day ? Why that's much better than current miners! You could have millions of these things, just imagine, millions upon millions of matchboxes with little dragonfly brains within, hashing happily away. Why, you'd need over 100`000 of these just to fill up 1KW of power.

Pity it doesn't hash, huh. Maybe one day it will, and when that day comes it will definitely blow any current ASICs off the market, because even if it turns out it's not a billion trillion times as efficient per Watt as the theoretical maximum seems to indicate (likely because we won't be good enough to make it, at least originally), it doesn't have to be. 100x, 10x, even 2x is certainly good enough. If only it hashed...

So that was my closer to the audience, that while the clueless keep droning on about quantum computers, I don't personally believe that has any relevance, or will, during our lifetimes. Biological computers however most likely will.

Part two is a speech Stan gave at the same conference, which I'll reproduce from memory and he's welcome to write it out in more fleshy details if need be.

So, FPGAs, which are fundamentally processor simulators, used to be able to take absolutely any wiring. Current ones do no longer, you can easily fry the thing by connecting wrong dots, but at some point a few decades ago you were still able to buy XC6216, the one and only known FPGA where random wiring was guaranteed -never- to release the magic smoke (and also the only Xilinx chip that was properly documented).

The application of this is, among many things, genetically evolved processors, that are "grown" much in the way nature selects species, towards certain specified tasks. The kicker being that while they're perfectly capable of doing weird shit like using the power as a computing element, they're also (at least in principle) perfectly capable of becoming geographically fixed. Such that the chip will cease working if you extinguish the candle that used to burn on its side when it was born, or if you take it to a different longitude (latitudes are ok) or any other arbitrary environmental influence like that. Exactly in the manner that penguins don't grow in the Sahara nor orchids in Norway (unless, of course, you spend resources on recreating the required environmental variables, and know what those are supposed to be, even).

His closing at the conference was that this would make for wonderful things such as a miner that can't be stolen, because it only works in your garage anyway. It's an interesting topic I thought, you should bug him for further ellaborations, I disclaim any liability.

Which now takes us to the third part of our triad :

Suppose you're me, and suppose you jump out of bed with a very clear question for the chan that makes you about 15 IQ points smarter : what's the smallest set of symbols that still maintains Turing completeness, I don't care what language ? This is the bane of sleep, see, you need to wake up to realise that... well... 0 and 1 right ? Duh.

But once up, while the realisation that 0 and 1 bubbles through your consciousness, another thread in your head - the one that's woken you up in fact, the one that had been going ever since Stan passingly mentioned the god damned genetically evolved boards - points out that... well... you know how real live beings' genetics work, right ? You get two strands of DNA. Two, not one. Two.

So then the correct approach to this problem is to use two boards, not one. Two. And see if they work. And this should be model-able, after all computing is computing. So what'd your criteria of success be ? Well... if your two programs are A and B, and the program fixed length is n, then for every i, 0 < i < n you have to check whether Ai or Bi works. Because that's how fucking genetics work.

So this is then.... 2n isn't it. For a program as long as a current computer register, you'd need 18`446`744`073`709`551`616 tries.

God damn it.

The moral being the complexity of life, of course. Human DNA is about... wait for it... 3 bn pairs per chromosome. Not 64 fucken bits. And yet it explores the space of 23`000`000`000 in real time. Just like the blasted dragonfly can see mosquitoes in flight while going faster than you drive.

Life. Too fucking much, already.

———

Incidentally : my advantage in having been keeping this blog for years is directly evident in person. I can entertain any audience composed of smart people indefinitely, by simply recycling material that's still left in my head from all the articles I've written in the past. It wouldn't work so well if they had all read it, of course, but check out inadvertent strategic superiority : I wrote most of it in an obscure language! [↩]

This is why I say theoretical. Given the sensor face and our current technology, many hard physical limits make the claimed value impossible, such as photon starvation. This is why the animal's eyes are shaped like the outside of a cherry, incidentally, rather than a concave surface. [↩]

If you think about it, 100 Km/h comes to about 30 meters a second, and that would imply 200 FPS yields it one frame every 15 cm (4 inches). Meanwhile you walking is 10 Km/h, and your eye gets 20 FPS, so about the same. You're (obviously) not nearly as good as a dragonfly. [↩]

5GB/sec is probably optimistic, by a few zeros. Wetware rarely follows the principle of 'capture everything, crunch later' - dollars to doughnuts, there is substantial processing (e.g. motion filtering) happening somewhere very close to the fly's visual receptors.

-- And do we know for a fact that the mosquito detection is mainly visual? The damn things scream! Exactly like the poor rocket in Mr. Bush's 'missile defense' tests.

Re: XC6216: it was indeed the only one. Note that I would love to be proven wrong about this bit. Incidentally, one clever fellow wrote, some years ago, a Verilog 'MPGA' - implementation of a XC6216-like gizmo for (on top of) a modern FPGA. Monstrously inefficient, and, worse, not entirely complete. But the basic idea is sound.

Re: DNA: it's worth noting that it is not the totality of the information needed to construct the animal. This is a rather tricky notion, so think about it. (Quite like how a set of machinist's 'G-codes' is not the totality of information needed to copy, e.g. a lathe - on same type of lathe. You also need the implicit data re: metallurgy, a thousand other things, that are 'in' the old lathe.)

Obviously it's not the totality of information that's needed. Most genetic material is useless or meaningless irl, and even in my model about half of it would go unused. This is a correct model, because for our purposes the "dirty" irl dna reduces to a "clean" modelled dna, but the space still has to be explored (ie, irl dna is only "dirty" because the shit doesn't do anything, if it did it'd express just like the stuff that does do things).

Wouldn't surprise me if the fly had a big, fat visual 'notch filter' at X KHz (for whatever the typical freq. of mosquito buzz.) 'Hearing' the oscillation purely visually. But, for all other purposes, deaf. This is how I would build the fly. But, I did not build the fly. We'd have to ask it.

There are quite a few people playing with 'genetic algorithms,' 20+ years now, but with scarcely any interesting result. This is because of 'brittleness.' (actual term of art.) The state space of 'interesting program' on a von Neumann machine, even an emulated one crafted for the purpose, is very narrow, and a random mutation ding tends to throw you far out of it. Reconfigurable hardware, on the other hand... 'First, find the chicken.' Probably ought to have bought that old 6216 a junk collector offered me in '09. $1K, a pittance for this jewel. One day I'll re-create the damn thing on TTL! Who cares if refrigerator-sized, if it works?

This is actually pretty clever and I guess very likely thinking about it. It's a fact that they're species-selective*, and this'd be a great mechanism to explain why.

One day...

---
* About which, anecdote : a predatory wasp (big black guy, 7cm long) made itself a nest, about 9x5x3 cm, out of clay, next to my roof. Two years ago. I was originally going to let it hatch, because predatory wasps are mostly harmless to humans, and I had never seen the type before so who knows, maybe it's even endangered. But two years is too much for the thing to remain sealed, really, so I eventually scraped it off. It contained about a dozen big fat candle wax yellow larvae, from halfway to all the way ready to pupate. They had all died obviously at the same time, and seeing how long they made it I suspect temperature (winter that first year was in fact uncommonly cold and snowy) rather than viral infection.

They had a collection of > 100 spiders, mostly eaten. All the same species and size. Because that one wasp only eats that one kind of wolf spider.

It's relatively easy to evolve an analog circuit that can solve such problem with no hard bounds and no need for reliable repeatability and precision. If you're a lifeform living in huge fractal and you need to find there a certain "shape" to survive, approximate solution will suffice as the fractal is infinitely self-repeating, and there are "environmental" hints as to in which direction the food is, etc. To do the same (i.e. partial solutions in wetware) for SHA1 or SHA1^-1 , mathematicians (or their ilk) first need to find out some fractal properties and "shapes", otherwise it's like such "lifeform" would need to blindly stumble upon neutrinos in otherwise empty universe to survive (Stanislav said the same in different words). Of course, the moment they find out such properties, SHA1 will be deemed completely unfit for intended use.

I did not do the maths, but as far as I know OCR, especially solving CAPTCHAs by computers already nears energy-effectiveness of humans, if not better. (such as energy needs of eye + parts of brain up to the point the information gets passed to speech producer). I think once we'll be able to reverse-engineer dragonfly's algorithms likewise and implement them in silicon with similar energy needs.

I'm being redundant here, but if the dragonfly's neural net is multilayered (which it most probably is), then the first processing layer should maybe deal with some kind of lossy compression (i.e. high-level feature matching/"motion filtering"). A good, yet primitive computer-architectural analogy of this would, I suppose, be speculative caching, which adapts the processing to specific requirements of the program, both data and instruction-wise. However, the dragonfly's motion detection computations have the luck of not being general-purpose Turing machines (they're most probably only a subset, but then again, this is pure speculation on my part), being probably more similar in nature to a DSP. Speaking of which, GPUs aren't Turing complete either.

So an "evolutionary step" would involve integrating highly specialized computing machine(s) into the system (without overfitting) based on a schematic (i.e. its "DNA")? Maybe that's a design principle?

I don't know about the FPGA being a good start for "growing" processors, though. I mean, you can't exactly "reconfigure" the dragonfly to be a mosquito (I'm not implying it couldn't be theoretically done, just that it wouldn't even be practical). Self-assembly on the other hand seems like a neat idea. The link's pretty random, just popped into my mind and got the first thing off Google. From what I know there are a few other areas where the concept's being explored, e.g. fully autonomous assembly lines.