I am running a Nengo application with the Loihi backend and preCompute=False, because I need the IO capabilities.
In addition, I want to run a separate embedded SNIP on a different lakemont processor, which changes some of the Neuron parameters at a given (hard-coded) time - so no read or write channel between host and SNIP are needed.
nxsdk_board=sim.sims["loihi"].nxsdk_board and subsequent nxsdk_board.createProcess() seems to do some preparation, but the additional SNIP doesn’t seem to be compiled/linked or executed.
Is there a mechanism to accomplish this? Or would I need to build in the required functionality into the nengo_io template?
Any ideas highly appreciated!
Here’s the line where we actually create the
nengo_io snip. We use
createSnip; looking at NxSDK, it looks like
createProcess has been deprecated.
Note that this is called before we connect to the board, so you’ll want to do something like:
sim = nengo_loihi.Simulator(network)
board = sim.sims["loihi"].nxsdk_board
Making sure you’re doing both of those things might solve your problem.
It should be possible to have multiple snips running on the same chip, either on different Lakemonts or on the same Lakemont. For efficiency, it’s probably better to use a different Lakemont by setting e.g.
lmtId=1 when you call
createSnip (we use the default
lmtId=0 when we call it). As I said, though, it should be fine to have multiple snips running on the same Lakemont, so I don’t think this is the cause of your problem.
Finally, if none of that helps, you can always modify the
nengo_io template to do your stuff as part of our snip. It might be the easiest way to get something working, even if it’s not the best long-term solution.