Dnia 2011-03-18 14:46 Tomasz Rybak napisał(a):

>Dnia 2011-03-17 13:09 Andreas Kloeckner napisał(a):
>>Hi Tomasz,
>>
>>On Tue, 15 Mar 2011 23:25:32 +0100, "=?UTF-8?B?VG9tYXN6IFJ5YmFr?=" 
><bogom...@post.pl> wrote:
>>> Hello.
>>> I attach patch containing code that is supposed to initialise Sobol32 
>>> direction vectors.
>>> Initially I wanted to implement it myself based on article, but after 
>>> looking at CUDA 4.0
>>> (and new functions that would also need to be reimplemented) I decided 
>just 
>>> to call existing
>>> function in library.
>>> 
>>> Few remarks about implementation:
>>> 1) I have added new option to configure.py and new configuration 
variable 
>>> HAVE_LIBRARIES
>>> It might not be ideal for CURAND, but I am also thinking about 
additional 
>>> libraries that are
>>> available in CUDA 4.0 in cudatoolssdk_4.0_linux_64.run.
>>> I believe that it might be possible to include CURAND in the PyCUDA core 
>>> (and hence
>>> add dependency on libcurand), but I also believe that dependency on e.g. 
>>> libcupti should be optional.
>>> In such case I would propose changing name from HAVE_LIBRARIES to 
>HAVE_TOOLS 
>>> and changing
>>> patch not to surround CURAND-related code with ifdefs.
>>> 
>>> 2) I have added enum direction_vector_set; currently it has only one 
>value, 
>>> but it will have more
>>> in CUDA 4.0 - so please leave it as is.
>>> 
>>> 3) Although there is ability to call function get_direction_vectors32 
and 
>to 
>>> create object Sobol32*
>>> there is no code that joins those two. I am thinking whether this code 
>>> should be in C or in Python
>>>  - so for now please just apply patch to curand branch, and after I have 
>>> good implementation
>>> I will send it to the list.
>>> 
>>> 4) Sorry - no documentation for C code yet.
>>
>>Thanks for the patch!
>>
>>A few comments/requests:
>>
>>- Don't error out on 'import pycuda.curandom' if CURAND wasn't
>>  found. The old MD5 RNG is still there and will work even if nothing
>>  else does.
>
>I have also changed definition of classes depending on CURAND so
>now they are created only if proper CURAND version is present.
>
>>
>>  Same goes for have_libraries()--I'd prefer get_curand_version() in
>>  [None, (3,2), ... ] etc.
>
>Use (0, 0, 0) instead of None
>
>>
>>- Make the HAVE_* options more fine-grained, i.e. HAVE_CURAND.
>>
>>- Compile a separate shared library for every extension. _driver.so is
>>  called that because it's supposed to contain the wrapper for the
>>  driver interface, and nothing else.
>>
>>  My suggestion would be _curand.so.  (Just add another Extension object
>>  in setup.py.)
>
>All done - attaching patch for analysis.

Andreas - have you received my previous email?

Regards
Tomasz 

Attachment: curand.diff
Description: Binary data

_______________________________________________
PyCUDA mailing list
PyCUDA@tiker.net
http://lists.tiker.net/listinfo/pycuda

Reply via email to