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.

  Same goes for have_libraries()--I'd prefer get_curand_version() in
  [None, (3,2), ... ] etc.

- 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.)

Andreas

Attachment: pgpTQdmJk7u3Z.pgp
Description: PGP signature

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

Reply via email to