Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when adding energy probes inside Simulator context #292

Open
drasmuss opened this issue Jun 16, 2020 · 1 comment
Open

Error when adding energy probes inside Simulator context #292

drasmuss opened this issue Jun 16, 2020 · 1 comment

Comments

@drasmuss
Copy link
Member

Running this code

import nengo
import nengo_loihi
from nxsdk.graph.monitor.probes import PerformanceProbeCondition
from nxsdk.api.n2a import ProbeParameter

with nengo.Network() as net:
    a = nengo.Ensemble(10, 1)
    p = nengo.Probe(a)

run_time = 0.1
dt = 0.001

with nengo_loihi.Simulator(net, dt=dt) as sim:
    board = sim.sims["loihi"].nxsdk_board
    probe_cond = PerformanceProbeCondition(
        tStart=1, tEnd=int(run_time / dt) * 10, bufferSize=1024 * 5, binSize=4
    )
    e_probe = board.probe(ProbeParameter.ENERGY, probe_cond)
    sim.run(run_time)

gives the error

Traceback (most recent call last):
  File "test.py", line 22, in <module>
    sim.run(run_time)
  File ".../nengo-loihi/nengo_loihi/simulator.py", line 330, in run
    self.run_steps(steps)
  File ".../nengo-loihi/nengo_loihi/simulator.py", line 343, in run_steps
    self._runner.run_steps(steps)
  File ".../nengo-loihi/nengo_loihi/simulator.py", line 518, in loihi_only
    self.loihi.run_steps(steps)
  File ".../nengo-loihi/nengo_loihi/hardware/interface.py", line 253, in run_steps
    d_get(self.nxsdk_board, b"cnVu")(steps, **{d(b"YVN5bmM="): not blocking})
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/graph/nxboard.py", line 262, in run
    traceDirectory=traceDirectory)
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/graph/nxboard.py", line 233, in _run
    self.executor.start(numSteps, aSync)
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/driver/executor.py", line 83, in start
    self.finish()
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/driver/executor.py", line 121, in finish
    self._notifyListeners(ExecutionEventEnum.POST_EXECUTION)
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/driver/executor.py", line 147, in _notifyListeners
    listener.postExecution()
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/driver/listeners/composite_monitor.py", line 56, in postExecution
    [m.postExecution() for m in self._collection.values()]
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/driver/listeners/composite_monitor.py", line 56, in <listcomp>
    [m.postExecution() for m in self._collection.values()]
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/driver/listeners/monitors/performance_monitor.py", line 43, in postExecution
    self._energyTimeMonitor.updateProbes()
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/graph/nxenergy_time.py", line 833, in updateProbes
    prb._updateProbe(probeData)
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/graph/nxenergy_time.py", line 385, in _updateProbe
    tProbeData = super()._updateProbe(rawTimeProbeData)
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/graph/nxenergy_time.py", line 55, in _updateProbe
    etMonitor=self.etMonitor)
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/graph/nxtime.py", line 33, in __init__
    self._postProcessData(data)
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/graph/nxtime.py", line 64, in _postProcessData
    self._processBins()
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/graph/nxtime.py", line 91, in _processBins
    self._unpackTimeBins(begin, end, tileSize, tStart)
  File ".../miniconda3/envs/drasmuss/lib/python3.5/site-packages/nxsdk/graph/nxtime.py", line 128, in _unpackTimeBins
    return endTimeStamps[-1]
IndexError: index -1 is out of bounds for axis 0 with size 0

This is using NxSDK 0.9.

This issue doesn't occur when using Nengo Loihi 0.10.0, so it is caused by some change in master since then.

@drasmuss
Copy link
Member Author

As pointed out by @hunse, this is caused by the change where we run connect in __enter__ (NxSDK doesn't like it if you try to add energy probes after connect).

@drasmuss drasmuss changed the title Error when using energy probes Error when adding energy probes inside Simulator context Jun 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant