On Tue, May 22, 2012 at 6:31 PM, Andreas Kloeckner
<li...@informa.tiker.net> wrote:
> On Tue, 22 May 2012 18:21:56 -0400, Thomas Wiecki <thomas_wie...@brown.edu> 
> wrote:
>> On Tue, May 22, 2012 at 4:40 PM, Andreas Kloeckner
>> <li...@informa.tiker.net> wrote:
>> > On Tue, 22 May 2012 15:56:33 -0400, Thomas Wiecki 
>> > <thomas_wie...@brown.edu> wrote:
>> >> Just to make sure: libcuda.so is provided along with the nvidia driver
>> >> while the other .so files (e.g. cudart, curand) are provided by
>> >> cudatoolkit, correct?
>> >
>> > Yup.
>> >
>> > Andreas
>>
>> Sorry, I'm genuinely confused :)
>>
>> What does the cuda.h correspond to that is packaged with cudatoolkit
>> (since cudatoolkit does not contain a libcuda.so)?
>>
>> The nvidia driver (and also the linux kernel for that matter) all seem
>> to provide a cuda.h. Is the cudatoolkit cuda.h the incorrect one to
>> use for pycuda?
>
> The kernel's cuda.h is something entirely different.
>
> The driver did at one point install cuda.h, but it does not do so any
> more AFAIK. It does install libcuda.so. Using an older cuda.h with a
> newer libcuda.so is fine. Using a newer cuda.h with an older libcuda.so
> will not work.
>
>> What is the conceptual difference between libcuda.so and libcudart.so?
>
> cudart is the run-time interface, which is used by 'conventional' CUDA C
> code. (cudaMemcpy) PyCUDA uses the driver interface. (cuMemcpy)
>
>> Using libcuda.so of the nvidia driver I get the above error (undefined
>> symbol: cuTexRefSetAddress2D_v3).
>>
>> _driver.so is linked against the following:
>>
>> >>ldd 
>> >>/usr/local/lib/python2.7/dist-packages/pycuda-2011.2.2-py2.7-linux-x86_64.egg/pycuda/_driver.so
>>         linux-vdso.so.1 =>  (0x00007fffa1160000)
>>         libcuda.so.1 => /usr/lib/nvidia-current/libcuda.so.1
>> (0x00007f322f248000)
>>         libcurand.so.4 => /usr/local/cuda/lib64/libcurand.so.4
>> (0x00007f322d084000)
>>         libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
>> (0x00007f322cd7c000)
>>         libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
>> (0x00007f322cb66000)
>>         libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
>> (0x00007f322c949000)
>>         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f322c5a7000)
>>         libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f322c38f000)
>>         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f322c18b000)
>>         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f322bf06000)
>>         libcudart.so.4 => /usr/local/cuda/lib64/libcudart.so.4
>> (0x00007f322bcad000)
>>         /lib64/ld-linux-x86-64.so.2 (0x00007f322ff95000)
>>         librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f322baa4000)
>
> In general, simply install matching versions of the driver and the
> toolkit. In particular, use the driver from the CUDA download page, not
> the 'regular' non-compute driver.
>
> HTH,
> Andreas

Thanks, that clears things up. I fixed it now by reverting to the
packages provided by Aaron Haviland:
https://launchpad.net/~aaron-haviland/+archive/cuda-4.0

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

Reply via email to