I see one potential issue:

  b_gpu = cuda.mem_alloc(len(h_OptionData))

You probably mean len(h_OptionData)*numpy.dtype(numpy.float32).itemsize,
which is a long way of saying len(h_OptionData)*4.

Word of advice: Use gpuarrays. Less foot-shooting potential.

Andreas

On Mittwoch 29 April 2009, Raefer Gabriel wrote:
> Hi all,
>
> I am trying to port the binomial options example from the CUDA SDK to
> pyCuda as a learning  exercise primarily, and I seem to be getting
> incorrect results and am having trouble tracking down the problem.  I am
> new to CUDA and pyCuda.
>
> Source code is here (no external dependencies other than pycuda - I'm
> running Python 2.6 here on Ubuntu 9.04, and CUDA and pyCuda pass all
> included tests as working fine):
> http://www.alaricuscapital.com/pycuda-binomial.txt
>
> I know that the basic logic in the kernel is correct, since it is copied
> from the binomialOptions example in the SDK.  However, I had to make a few
> minor tweaks to it - namely, instead of using static arrays, I am passing
> in the options input data as array arguments to the kernel, and I copied in
> some #defines from the header to make it compile smoothly.
>
> I have verified that this data I'm trying to pass is being received
> properly in the kernel, by changing the kernel's return values to match
> each of the input variables - so I am at least getting data to the
> function!
>
> And I verified my comparison function "binomialOptionFromProcessed" against
> a known-good implementation of European Call binomial option pricing from
> the pyFinancials library - they produce identical results for the same
> number of steps, so I know I didn't munge that up.
>
> However, they are clearly not producing consistent results.
>
> So the two possibilities seem to be that I'm doing something wrong in the
> pyCuda portion of my code that is mucking up my data down at the bottom of
> the binomialOptionsGPU function, or that in tweaking the kernel from the
> SDK I have broken something in the kernel (either because I replaced the
> static arrays, or something else).
>
> I was hoping for some guidance on this, at least to help me rule out stupid
> mistakes with how I am invoking pyCUDA so I can better focus my debugging
> efforts.
>
> Thanks in advance for any help!
>
> Raefer Gabriel
>
>
>
>
> _______________________________________________
> PyCuda mailing list
> [email protected]
> http://tiker.net/mailman/listinfo/pycuda_tiker.net


Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
PyCuda mailing list
[email protected]
http://tiker.net/mailman/listinfo/pycuda_tiker.net

Reply via email to