Brainِdrop chip simulation

Hello All

Can the chip braindrop simulated using the Nengo?!
Does anyone have an idea for this?!

Hi @kaveh!

Yes, Nengo has been used to program the Braindrop chip. There is a Nengo Braindrop project, but it is not publicly available because the Braindrop chip is not available to the public. Are you a researcher working with the Braindrop chip? If so, please contact @tcstewar privately to discuss getting access to the Nengo Braindrop project.

If you don’t have access to the chip and are wanting to emulate how the Braindrop chip works, I’m not entirely sure if the project contains an accurate emulator. In either case, @tcstewar is the person to ask.

Thank you for answer

No, I am not involved in this project, but research by project researchers has provided them with a solution to improve the performance of this chip. My team and I are going to work on improving the project and we should simulate the results.
Is there a problem with our work?

No problems that I’m aware of, but you’ll have to talk to the Braindrop team as we (the Nengo developers) aren’t involved in the Braindrop project at the moment.

Thanks

Can you introduce me to the Briandrop team?

Hello @tcstewar

I wanted to work on the Brindrap simulation project, but I’m not a researcher on the project. What can I do to simulate this chip?

Good question!

To start with, it depends a lot on the level of detail you want to simulate the chip at. When developing Braindrop, at one point we were needing to simulate the low-level transistor details at nanosecond time resolution, in order to validate that it would really work the way we hoped. But that was a very slow process, even when simulating just one synapse. So that just doesn’t scale up to wanting to run thousands of neurons.

So, if we want to simulate lots of neurons, one option is to start at the highest level of abstraction, and then add detail from there if we need it. At the highest level of abstraction, Braindrop is just a spiking neuron model (QIF) with a weird distribution of gains and biases (due to the transistor mismatch, and adjustable a bit via the individual gain/bias bits), and then connections between those neurons that are built as a weight matrix followed by the (slightly random) diffuser/tap-point system. If we can characterize those two things, then we can just implement those directly in normal nengo and get a somewhat-okay first-pass approximation of the Braindrop system. Then details can be added to make each of those parts closer and closer to the actual system.

We do have code for basically what I described above, but I don’t think any of it is public at the moment. I can start the process of bugging all the people who wrote the various parts if it’s okay to make it public, but it’d help to know what sort of level of detail you’re looking for. What sorts of aspects of Braindrop are you most interested in?

Terry

Thanks
I read the paper"https://ieeexplore.ieee.org/document/8591981".
I’m having trouble with Brain Drop architecture on how to run it in Nengo, great if you have code or an explanation or documentation that can help me.
This is my email address “kakdkom@gmail.com
If you would like to talk here for more explanation

Hello again,

I’m not quite sure the best way to answer your question, but I’ve put together a Jupyter Notebook that gives an example of implementing a Braindrop-like simulator in Nengo. Here it is: https://github.com/tcstewar/testing_notebooks/blob/master/Implementing%20a%20Braindrop-like%20architecture%20in%20Nengo.ipynb

In this example, I just do a simple implementation of the diffusor and accumulator, and stick with the default nengo LIF neuron model. You can modify this to add in more complex details if you are interested in how those details affect the simulation, but I think the biggest question is exactly what sorts of details you want to add in.

In any case, I hope the notebook is helpful for you!

Terry