Neuromorphics: Using the right tool for the right job.
I caught this article (link above) from March yesterday on the plane back from the west coast. Internet on planes is so great. Plane rides are also great places to reflect. Probably the present but minor fear that you could drop out of the sky any moment nudges you to have more expansive feeling thoughts :-).
So I reflected on how we are seeing the new platform design cycle once again play out in hardware and software. Then thinking some out there may not have heard of neuromorphic computing or know where to place these new kinds of computing devices if they have, I thought that stepping back a bit to comment on the direction things are going would be useful for others to understand how to think about these things. Given all the things to learn in the wonderful renaissance of AI, a little categorization couldn't hurt.
So a new set of hardware and software is emerging out of the brain research field. So what is it useful for? Why might you care, if not now, but soon? How do you file it away so that you can know how much attention to give it and for what purpose one day?
So a note on how to categorize neuromorphic chips and software follows. Incidentally, categorization is something I know a little bit about, it is the subject of my thesis. Turns out we really can absorb information much faster once we know where we can file it so to speak. So I am going to try to help you file neuromorphic chips and software tools away to be added to from now as you hear more about them.
Let's start by recognizing we have been here before.
CPUs are great for flexible computing but can be expensive in terms of power usage. But what did we do when the problem we wanted to compute was inherently massively parallel and we needed faster answers? We developed the GPU for graphics processing.
GPUs have since been applied to solve another massively parallel computational problem, computing AI. But once again it stands to reason that there are ways to build chips that match the needs of the problem better than the ones that were designed for another problem. These new chips will be better designed to compute AI versus graphics and not just deep learning AI which is inherently largely feed-forward but these new chips will compute highly recurrent and truly parallel networks (like liquid state machines and all manner of recurrent and dynamical networks) even faster for less power. Ultimately though personally I don't think it is an overall replacement of the CPU or the GPU though that is coming anytime soon....a while after that I think the article above is closer to the truth, perhaps in a bigger way than even that piece suggests...but that is a different story and will likely be the subject of many other articles and posts in the future.
For now, it is about using the right tool for the right job.
I expect Neuromorphic chips (aka Neural Processing Units - NPUs) will take their place in our computing toolkit and be used by engineers where it makes sense...and for low power AI processing in our data centers, in ioT applications and in smart devices...it will make a lot of sense!
For these neuromorphic computing platforms it will take some effort to build applications on these new architectures, it is quite different, but the gains are worth it, just like there were last time round.
That's where our product, Nengo comes in. NPUs are built like brains are, on many noisy parallel 'neurons'. Also like brains, the problem of programming them is the problem of assigning connection weights to and from each neuron and the relative timings of the signals across those connections. So it is not a surprise that Nengo, which was developed over more than 15 years by many neuroscientists trying to simulate the brains networks using massively parallel networks of artificial neurons with the same properties as brain networks, is ideal for programming these new chips. Nengo was designed just for this exact problem from the ground up.
Nengo makes the job of building small to massive neural applications much easier, especially the really hard ones, massive recurrent and dynamic ones, the true of power of which are only starting to be understood more broadly. Well at least formally, intuitively we all understand how powerful this class of networks is, these are one of the kinds of networks are brains are built on. They and Nengo will help us develop even smarter applications and tools in the future.
It is the right tool for the right job.