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

Parallelize synapse creation #177

Open
denisalevi opened this issue Aug 19, 2020 · 1 comment
Open

Parallelize synapse creation #177

denisalevi opened this issue Aug 19, 2020 · 1 comment

Comments

@denisalevi
Copy link
Member

denisalevi commented Aug 19, 2020

Our synapse generation uses the exact same algorithm as cpp_standalone, all running on the host. Since synapse creation only happens ones before the network is run, it doesn't matter much for most networks. But for large networks, synapse creation can take some time. And the cleaner solution would be to generate synapses directly on the device, parallelize the algorithm (if that is possible, need to check the implementation) and at the same time avoid some of the unnecessary host/device/host copying that is happening.

See also #88 for another slow synapse generation issue.

If we used device side synapse generation, we could get rid of the host side random number buffer (in brianlib/curand_buffer.h) and use a device side buffer (which we could then also use for our binomial function implementation) or use the curand device side API for on-the-fly RNG.

@denisalevi
Copy link
Member Author

Definitely take into account synapse sorting during synapse generation. See my last comment in #32

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant