Here is my first implementation: https://gist.github.com/1452214
Any feedback and suggestions for improvement are welcome! 2011/12/9 Thomas Wiecki <[email protected]>: > Is there a variable that will tell me number of available threads? > > On Fri, Dec 9, 2011 at 11:36 AM, Tomasz Rybak <[email protected]> wrote: >> Dnia 2011-12-09, pią o godzinie 11:06 -0500, Thomas Wiecki pisze: >>> That does seem to work. Its actually what I initially thought of doing >>> (but didn't know that .state can be passed as a curandState. Thanks! >> >> No problem. .state is just a pointer to device memory storing states. >> >>> >>> Is the .fill(array) required? I tried it without and at least didn't crash. >> >> No. All initialisation is done in constructor. >> .fill() just calls curand() (or similar) using those states. >> >>> >>> Just so I know what it's doing, upon instantiation, >>> XORWOWRandomNumberGenerator() creates the maximum number of >>> curandStates? What happens when I call my function with idx being >>> greater than this number? >> >> undefined behaviour^TM ;-) >> It will try to go outside allocated memory and behaviour will >> depend on the device, CUDA version, etc. >> On some it will just read unitilialised data, on some hardware >> might caught access to unallocated memory, ... >> IMO it will be the same as IndexOutOfRange in C/C++ - we >> do now know what will happen. >> >>> >>> On Fri, Dec 9, 2011 at 8:12 AM, Tomasz Rybak <[email protected]> wrote: >>> > Dnia 2011-12-09, pią o godzinie 08:01 -0500, Thomas Wiecki pisze: >>> >> The problem is that I don't want an array of random numbers in the end >>> >> (as your code does), but want to pass generators to a cuda function >>> >> that then simulates a stochastic process. So I need access to the >>> >> curandState. >>> > >>> > The memory storing array of generators' states in in property >>> > XORWOWRandomNumberGenerator.states. Array has as many elements >>> > as there is cores on the GPU (e.g. 512 for GTX 590). >>> > >>> > Regards. >>> > >>> > -- >>> > Tomasz Rybak <[email protected]> GPG/PGP key ID: 2AD5 9860 >>> > Fingerprint A481 824E 7DD3 9C0E C40A 488E C654 FB33 2AD5 9860 >>> > http://member.acm.org/~tomaszrybak >> >> >> -- >> Tomasz Rybak <[email protected]> GPG/PGP key ID: 2AD5 9860 >> Fingerprint A481 824E 7DD3 9C0E C40A 488E C654 FB33 2AD5 9860 >> http://member.acm.org/~tomaszrybak _______________________________________________ PyCUDA mailing list [email protected] http://lists.tiker.net/listinfo/pycuda
