title: Passing a C++/CUDA class to PyCUDA's SourceModule
body: <p>I have a class written in C++ that uses also some definitions from cuda_runtime.h, this is a part from opensource project named ADOL-C, you can have a look <a href="http://gitorious.org/adol-c/adol-c/blobs/cuda/ADOL-C/src/adoublecuda.h" rel="noreferrer">here</a>! </p>
  
  <p>This works when I'm using CUDA-C, but I want somehow to import this class in PyCUDA, if there is a possibility of doing that. So, I will use this class inside of kernels (not in 'main') to define specific variables that are used for computing the derivatives of a function. Is there any way for of passing this class to PyCUDA's SourceModule? </p>
  
  <p>I asked a similar question, but here I would like to explain a bit more that that. So, there is a solution compiling my C code using nvcc -cubin (thanks to talonmies) and then importing it with driver.module_from_file(), but, I would like to use SourceModule and write those kernels inside of a .py file, so it could be more user-friendly. My example would look something like this:</p>
  
  <pre><code>from pycuda import driver, gpuarray
  from pycuda.compiler import SourceModule
  import pycuda.autoinit
  kernel_code_template="""
  __global__ void myfunction(float* inx, float* outy, float* outderiv)
  {
      //defining thread index
      ...
      //declare dependent and independet variables as adoubles
      //this is a part of my question
      adtl::adouble y[3];
      adtl::adouble x[3];
      // ... 
  }
  """
  </code></pre>
  
  <p>... this is just an idea, but SourceModule will not know what are <strong>"adouble's"</strong>, because they are defined in class definition adoublecuda.h, so I hope you understand my question now better. Does anyone have a clue where should I begin? If not, I will write this kernels in CUDA-C, and use nvcc -cubin option. </p>
  
  <p>Thanks for help!</p>