-
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
Investigate the effect of sorting synIDs for coalescing #32
Comments
In the EDIT: probably only useful to coalescing if a pre neuron is connected to e.g. all post neurons. So user preferences make sense here. |
heterog mode:
homog mode
ensure that performance with standard examples does not degrade |
Also check again what I wrote in #30 |
Special case to take into account: If there is only one synaptic pathway direction (either pre->post or post->pre, not both), then all synapses should just be relabeled once they are sorted into the connectivity matrix, such that the synapse IDs are consecutive in the connectivity matrix. This makes the connectivity matrix obsolete an lets all synapse variable automatically be stored in the connectivity matrix structure, allowing coalesced memory accesses. If there are both synaptic pathway directions, variables can only be sorted for one of them (Brette2012 review). In that case, the graph-cut idea might be interesting. This all should in the best case already be happening during synapse creation (if possible), by changing the looping order (e.g. first over pre then over post neurons to sort by post per synapses group, as is likely happening by default). Should be tackled together with #177 . |
Any sorting of synaptic variables would require some mechanism for sorting variables (and potentially monitor recordings) back into the format expected on Python side, see my comment in #271. |
This should include an evaluation (profiling) for difference sorting options and should possibly be possible to set by the user in the brian2cuda preferences.
The text was updated successfully, but these errors were encountered: