Hacker News new | comments | show | ask | jobs | submit login
The Nengo Neural Simulator (nengo.ai)
96 points by indescions_2018 7 months ago | hide | past | web | favorite | 16 comments

Refreshing that they use an OpenCL backend instead of CUDA. Would love for OpenCL to grow more to challenge CUDA’s dominance in scientific computing.

True! The fact that you'd be able to use pretty much any GPU - even integrated/AMD/NVidia would really help.

Speaking of which, doesn't the new Vulkan API include compute too?

Yes, Vulkan includes compute capabilities. For example, here is a relevant section about compute pipelines in the Vulkan specification: https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspe...

Nengo is a very exciting technology. Wonder if they are working with Intel to make nendo models run on the announced spiking neural network processor

Student from the lab that originally developed Nengo here.

Yes! As far as I know, the company that develops Nengo (ABR) [1] is working on this with Intel [2]. Also see the presentation "Building applications with next generation neuromorphic hardware" from the NICE 2018 workshop [2] (video is available, password is on the top of the page).

[1] https://appliedbrainresearch.com/

[2] https://appliedbrainresearch.com/pressreleases/02-nice-loihi...

[3] http://niceworkshop.org/nice-2018-agenda/

Are there any inner details in Loihi available?

I'm currently working on something I can't speak much about, but it involves heterogeneous NN, different ICs for training and for operation. Operation is that way simpler, and hence significantly faster and more paralleliable, as removes useless logic and the complexity of the "too many clock domains" hell on backpropagation networks.

There are two published articles about it one describing the hardware architecture, the other describing the software architecture.

How does this differ from something like TensorFlow? "Nengo is used to implement networks for deep learning, vision.." is this true? Does this system even support things like automatic symbolic differentiation? This seems more like a neuro science research tool than a practical framework for building neural networks.

Student from the lab that originally developed Nengo here.

You're correct in the assumption that Nengo is ‒ among others ‒ a neuroscience research tool; primarily, because it allows you to build networks of spiking neurons. Apart from neuroscience you can also do things like mapping pre-trained deep neural networks onto spiking neurons. These networks can then be executed on neuromorphic hardware.

However, you can also run your simulations with "regular" rate-based neurons. In this case, the interface that Nengo provides is significantly more low-level than that of TensorFlow. Still, the main difference to TensorFlow is that Nengo networks are dynamic, i.e. the network is not described in terms of discrete time steps, but as a fully dynamical system (though a numerical simulator will discretise time at some point). In conjunction with neuromorphic hardware this allows things like real-time motor control with (sub-)millisecond resolution.

That sounds pretty interesting, would you happen to know if these can be used to simulate the worm connectome (OpenWorm?) linked up in a virtual environment?

Other student from the lab here.

You could, but it might not be particularly useful. They already have a really good simulation environment and ways to connect it to virtual environments. It would be useful if you wanted to extend the model with further neural populations!

Awesome, thanks for the reply.

So if someone had a cockroach or ant connectome the Nengo simulator could, in theory, be used to simulate a population of them connected to some virtual environment?

Yes, it could, but you'd first have to translate the connectome into spiking neurons, which is a non-trivial task.

I am still trying to understand basic details and unfortunately docs aren’t helping at all. You might get much more interest from community if you can compare and contrast existing NNs. Specifically,

1. Where can I find a diagram of neuron you use?

2. Where can I find a diagram of network you use (for simple example)?

3. What is an example of simple learning algorithm for above?

Another student from the lab here.

> unfortunately docs aren’t helping at all

Yeah, the docs really aren't the ideal entry point. Instead, I'd recommend installing the [Nengo GUI](https://github.com/nengo/nengo-gui) and going through the built-in tutorial.

> 1. Where can I find a diagram of neuron you use?

We use a bunch of different neurons [1], but the default one is the Spiking LIF. It's really common in computational neuroscience.

> 2. Where can I find a diagram of network you use (for simple example)?

Check out this video example in the Nengo GUI https://youtu.be/UVeIPKnQAL4

> 3. What is an example of simple learning algorithm for above?

There's a tutorial in the Nengo GUI, but there's also a few Jupyter Notebook examples: https://www.nengo.ai/nengo/examples.html#learning

[1] See related psychology.stackexchange.com question https://psychology.stackexchange.com/a/9131/4397

Nengo is neat, fun stuff if you are interested in neurons or whatever

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact