-
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
Dummy axons work properly on chip #261
Conversation
c6a8d04
to
26b8400
Compare
1aeca78
to
9255d68
Compare
Leaving reminder here: after #260 should be able to change the splitter logic to allow any convolution connections for both precompute True and False. |
aa8a054
to
b76e7a5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made a few minor changes to code in fixups, and some relatively large changes to the changelog entries. In general, we want the changelog entries to be short (2-3 lines tops). If more explanation is needed, it should be in a more permanent location. This is because we expect only existing users to be looking through the changelog, so if an important detail is hidden there, new users trying to learn about Nengo Loihi will miss it. Even for existing users, we want the changelog to be something short and sweet that they can read in its entirety in a few minutes. If it gets too long then they just won't read it at all.
Will merge on @hunse and @kinjalpatel27's 👍 of the new fixups.
9bc7365
to
6d354e8
Compare
6d354e8
to
44d57dd
Compare
For population connections, these dummy axons were still having an effect. The synapses associated with these axons cause index errors in the NxSDK axon compiler, so those are removed as well. This commit also clarifies axon indices versus IDs. Fixes the "invalid index" error raised in #246.
This allows population spikes to be sent from host to chip when `precompute=True`. Also add spikes to spike generator more quickly by doing deobfuscation once only per group of spikes. Co-authored-by: Eric Hunsberger <[email protected]>
We were accidentally returning the Loihi weights, due to double usage of the term `weights`. This is now less ambiguous.
We avoid the restriction of the axon compartment bases being less than 256, by taking any part of the required offset over this and adding it into the indices instead. We also clarify the `conv2d_loihi_weights` function and remove nengo-dl from `test_conv.py:test_conv_connection`. The nengo-dl portions have not been run in a long time, since they were only enabled if `channels_last=True`, and we were x-failing the test for `channels_last=True` due to lack of nengo-loihi support. It contributes nothing to testing nengo-loihi, so we remove it.
44d57dd
to
7d1aab1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We were having problems with dummy axons still doing something on the chip, even though they shouldn't. This PR fixes that. I added the test in a separate commit first, so that it's easy to confirm the test fails before the fix and passes after it.
The latter two commits improve support for population axons. The first one allows users to make a connection use pop16 axons instead of the default pop32. This uses fewer axon slots, so that connections can have more axons, but adds some constraints to how these axons are used. (In convolutional networks, this functionally amounts to having to use numbers of filters that are a multiple of 4, with
channels_last=True
. This allows the axon compartment offset ("base") to be a multiple of 4, which is the requirement for pop16. We could make copies of the weights in the case that we need offsets that are not multiples of 4, such that we have up to 4 copies each for a different modulo of the offset. See #262.)The last commit allows population axons to be used on input connections when
precompute=True
(since NxSDK's spike generators now support them).Based on #260.