Comments (8)
I implemented BinomialFunction while trying to get the Potjans-Diesmann model to work. Didn't have the chance to test it yet. Implementation is in the binomial_implementation
branch and not merged yet.
Tests should include:
- checking if brians
seed
mechanism works correclty the way it is implemented - This implementation uses device side
curand
calls. We would need some device side buffer system in order to be able to use host side random number generation since we don't know how many random numbers will be needed in the current binomial implementation (rand
inside while loop). Check performance loss of device side curand calls. - We are just using the cpp binomial implementation. Could be parallelise that?
from brian2cuda.
Wrote a test for checking brians seed mechanism, but it uses multiple run() calls with random number generation, therefore fails due to #85. Fix that first.
from brian2cuda.
Binomial implementation is merged, including testing (hopefully) all different RNG cases. See PR #178 for details.
from brian2cuda.
@mstimberg I am implementing TimedArray
right now. At first glance I'm not entirely sure how to add a new implementation for the cuda_standalone device. For the BinomialFunction
, there is a BinomialFunction.implementations
dictionary defined that can be extended by new implementations. Should I change the TimedArray
implementation accordingly or is there something I am missing / another way to easily add the cuda implementation?
from brian2cuda.
Indeed! The implementations are slightly more tricky for TimedArray
– the implementing function has to return another function that actually generates the code. This is because the final implementation might depend on the dt
of the context, and that context is not known until the actual run. I made the changes to TimedArray
in the timedarray_implementations
branch, let me know whether this works for you.
from brian2cuda.
Thanks @mstimberg, this works!
from brian2cuda.
Ok thanks, I'll open a PR and merge this into Brian master soon.
from brian2cuda.
Binomial function was implemented in PR #178.
TimedArray was implemented in PR #181.
I added separate issues for the remaining (low priority) points in this issue:
- Parallelize binomial implementation (#188)
- Implement device side RNG buffer (#189)
- Remove change in brian2.diff once we update frozen Brian2 (#187)
And there is one case complicated test that was not reproducible with the same brian.seed()
in CUDA Standalone but was in C++ Standalone. Need to investigate if this is due to parallelisation or a bug. See #190.
from brian2cuda.
Related Issues (20)
- Refactor benchmarking scripts and update generated plots
- Check if storing the size of synapse groups is necessary? HOT 1
- Needs patch to run with Brian 2.4.2 HOT 2
- Optimize `StateMonitor`
- Impelement brian2cuda preference file support
- Copy all eventspace counters to host efficiently at each time step
- Investigate and document performance effects when working with `Subgroup`s HOT 1
- Consider partitioning eventspaces when using `Subgroup`s HOT 4
- Optimize `PopulationRateMonitor`
- Fix `SpikeMonitor` for `Subgroup`s HOT 1
- Optimize our `SpikeMonitor` for `Subgroups`
- Refactor test suite scripts
- Fix `ReferencError` in spatialneuron tests HOT 3
- Fix memory leak when having multiple `run` calls
- Spikes are lost when changing delays between `run` calls HOT 3
- Recent Brian2 update PR broke benchmark scripts HOT 1
- Brian2Cuda Uninstalls Brian2 2.5.1 and Installs 2.4.2 Which Won't Import HOT 3
- Brian2Hears and Brian2CUDA HOT 3
- Optimise brian2CUDA HOT 2
- Bypass nvidia-smi when using a Jetson platform HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from brian2cuda.