-
Notifications
You must be signed in to change notification settings - Fork 12
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
Faster communication with host/chip #256
base: main
Are you sure you want to change the base?
Commits on Nov 12, 2019
-
Configuration menu - View commit details
-
Copy full SHA for f4f62cd - Browse repository at this point
Copy the full SHA f4f62cdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 92e6258 - Browse repository at this point
Copy the full SHA 92e6258View commit details -
Configuration menu - View commit details
-
Copy full SHA for a242019 - Browse repository at this point
Copy the full SHA a242019View commit details -
Configuration menu - View commit details
-
Copy full SHA for ba296b4 - Browse repository at this point
Copy the full SHA ba296b4View commit details -
TMP remove nengo-dl version requirement
Pending the NengoDL 3.0 release
Configuration menu - View commit details
-
Copy full SHA for fc6c384 - Browse repository at this point
Copy the full SHA fc6c384View commit details
Commits on Nov 13, 2019
-
Ensure scipy.sparse is properly imported
Some import statements just imported `scipy` when we needed `scipy.sparse`. Import order differences made this an occasional bug. Fixes #252.
Configuration menu - View commit details
-
Copy full SHA for 0bd224b - Browse repository at this point
Copy the full SHA 0bd224bView commit details -
Run tests in python 3.6 by default
This allows us to do a proper `bones-check` with `black`. The hardware tests are still in 3.5.2 to support NxSDK. This commit also fixes some slight changes by `nengo-bones` 0.6.0 that were missed in the upgrade commit because of the missing `bones-check`.
Configuration menu - View commit details
-
Copy full SHA for 2b3442e - Browse repository at this point
Copy the full SHA 2b3442eView commit details -
Configuration menu - View commit details
-
Copy full SHA for d4e97d1 - Browse repository at this point
Copy the full SHA d4e97d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 630761c - Browse repository at this point
Copy the full SHA 630761cView commit details -
Configuration menu - View commit details
-
Copy full SHA for b7ca05f - Browse repository at this point
Copy the full SHA b7ca05fView commit details -
Add wall-time step timers to Simulator
- Add a timer around the `Simulator._run_steps` call, to measure the time taken for all steps. - Connect to the board outside the timing loop, so that this does not count towards the step time. - Add a timer specific to SNIPs, to get the most accurate timing (after we call the board run function, so all setup has happened).
Configuration menu - View commit details
-
Copy full SHA for f537952 - Browse repository at this point
Copy the full SHA f537952View commit details -
Only create global spike generator if required
This reduces unnecessary communication with the chip
Configuration menu - View commit details
-
Copy full SHA for 045c9d5 - Browse repository at this point
Copy the full SHA 045c9d5View commit details -
DecodeNeurons.get_ensemble user-friendly
Previously, fixed checking of `neurons_per_dimension` and fixed value for `add_to_container` made `get_ensemble` not particularly useful for users trying to make their own `DecodeNeurons`. Now, these are configurable, and default to the values that users would likely want.
Configuration menu - View commit details
-
Copy full SHA for 6a4b5cf - Browse repository at this point
Copy the full SHA 6a4b5cfView commit details -
Add host SNIP for faster communication
The host SNIP runs on the host and facilitates communication with the superhost using sockets. This is faster than using the default RPC interface. We also take care to make sure both the host and chip SNIPs end properly, by sending a message with a negative spike count. This helps to eliminate board hangs. To allow the host SNIP to work with multiple `run` calls, we keep it idling in between `run` calls, waiting for a message. If the board disconnects before a subsequent run call, the negative spike count message will tell the host SNIP to stop.
Configuration menu - View commit details
-
Copy full SHA for 3797f11 - Browse repository at this point
Copy the full SHA 3797f11View commit details -
This improves performance by reducing the number of channel reads.
Configuration menu - View commit details
-
Copy full SHA for a17bfa2 - Browse repository at this point
Copy the full SHA a17bfa2View commit details -
The socket between the superhost and host was dropping data when trying to send larger numbers of spikes. This seems to be solved by getting rid of the step counter on the host snip. Something about sending the number of steps as a separate message at the start threw things off in the socket, I guess.
Configuration menu - View commit details
-
Copy full SHA for 6c94e86 - Browse repository at this point
Copy the full SHA 6c94e86View commit details -
Reduce extra computation in host2chip_snips
- Also assert one block per core with learning - Also get core less often (outside loop) in learn SNIP
Configuration menu - View commit details
-
Copy full SHA for edf77d6 - Browse repository at this point
Copy the full SHA edf77d6View commit details -
Simplify chip receivers for clarity and speed
Previously, `Simulator._collect_receiver_info` spent significant time calling `receive` on each receiver to load information into a queue in the receiver, and then getting it back out again. We now skip that step, and just do everything in right in `_collect_receiver_info`. - Eliminating the `hasattr` call in `_collect_receiver_info` also has a significant effect on speed. - Simpler queueing in `HostReceiveNode` avoids `while` loop and helps with speed there.
Configuration menu - View commit details
-
Copy full SHA for 4c4a5f7 - Browse repository at this point
Copy the full SHA 4c4a5f7View commit details -
Configuration menu - View commit details
-
Copy full SHA for a20d2c2 - Browse repository at this point
Copy the full SHA a20d2c2View commit details -
Copy HostSendNode x value to work with new Nengo
We used to do this copy in Nengo, now we don't, so need to copy here.
Configuration menu - View commit details
-
Copy full SHA for 22983ee - Browse repository at this point
Copy the full SHA 22983eeView commit details -
Flip host2chip and host step order
This allows the Nengo model on the (super)host to be running simultaneously with the chip, reducing time per step but adding in a one step delay between the (super)host model and chip model.
Configuration menu - View commit details
-
Copy full SHA for e7ce444 - Browse repository at this point
Copy the full SHA e7ce444View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5fcb6d3 - Browse repository at this point
Copy the full SHA 5fcb6d3View commit details -
Configuration menu - View commit details
-
Copy full SHA for aff58e1 - Browse repository at this point
Copy the full SHA aff58e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 455d095 - Browse repository at this point
Copy the full SHA 455d095View commit details -
Use proper queue in HostReceiveNode for speed
This makes things faster by not requiring us to increment a counter through the node, and also makes sure we get all the data. We also fix the time in this node to use zero-based timesteps rather than one-based timesteps (to conform with core Nengo).
Configuration menu - View commit details
-
Copy full SHA for c97cb20 - Browse repository at this point
Copy the full SHA c97cb20View commit details -
Configuration menu - View commit details
-
Copy full SHA for 376f4df - Browse repository at this point
Copy the full SHA 376f4dfView commit details -
Configuration menu - View commit details
-
Copy full SHA for a5a06f1 - Browse repository at this point
Copy the full SHA a5a06f1View commit details