After google searching i found no -lboost_python-gcc43-mt so I suspect that
if I change that in the linking command it would work without any problems.
Did I do anything wrong with the installation of pycuda or codePy? (I think
that codePy was installed when i installed copperhead).
So I have two questions:
how can I change -lboost_python-gcc43-mt to -lboost_python.
how can I make that the default behaviour.

Apostolis

2012/5/27 Apostolis Glenis <[email protected]>

> I tried to run the example and I got this error:
>
> ---------------------- Host code ----------------------
> #include <boost/python.hpp>
> #include <cuda.h>
> void my_sort(CUdeviceptr input_ptr, int length);
> #include <boost/python/extract.hpp>
> using namespace boost::python;
>
> namespace private_namespace_db9cd38ee0995488b35c8405321b8f95
> {
>   object host_entry(object gpu_array)
>   {
>     tuple shape = extract<tuple>(gpu_array.attr("shape"));
>     int length = extract<int>(shape[0]);
>     CUdeviceptr ptr = extract<CUdeviceptr>(gpu_array.attr("gpudata"));
>     my_sort(ptr, length);
>     return gpu_array;
>   }
> }
>
> using namespace private_namespace_db9cd38ee0995488b35c8405321b8f95;
>
> BOOST_PYTHON_MODULE(module)
> {
>   boost::python::def("host_entry", &host_entry);
> }
> --------------------- Device code ---------------------
> #include <thrust/sort.h>
> #include <thrust/device_vector.h>
> #include <cuda.h>
>
> void my_sort(CUdeviceptr input_ptr, int length)
> {
>   thrust::device_ptr<float> thrust_ptr((float*)input_ptr);
>   thrust::sort(thrust_ptr, thrust_ptr+length);
> }
> -------------------------------------------------------
> /usr/bin/ld: skipping incompatible /usr/local/cuda/lib/libcudart.so when
> searching for -lcudart
> /usr/bin/ld: cannot find -lboost_python-gcc43-mt
> collect2: ld returned 1 exit status
> FAILED compiler invocation: g++ -pthread -fno-strict-aliasing -g -O2 -g
> -fwrapv -O2 -Wall -fPIC -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions
> -Wl,-Bsymbolic-functions -Xlinker -export-dynamic -Wl,-O1
> -Wl,-Bsymbolic-functions -DNDEBUG -I/usr/include/python2.7
> -I/usr/local/cuda/include
> /tmp/codepy-compiler-cache-v5-uid1000/207349795ab4e8438bf4fe266c0a7f2c/module.o
> /tmp/codepy-compiler-cache-v5-uid1000/cd6dbc7737faf0ddefa740abfda66139/gpu.o
> -L/usr/lib -L/usr/local/cuda/lib -L/usr/local/cuda/lib64 -lcuda -lcudart
> -lboost_python-gcc43-mt -lpthread -ldl -lutil -o
> /tmp/codepy-compiler-cache-v5-uid1000/207349795ab4e8438bf4fe266c0a7f2c/
> codepy.temp.207349795ab4e8438bf4fe266c0a7f2c.module.so
> Link error, examine
> ['/tmp/codepy-compiler-cache-v5-uid1000/207349795ab4e8438bf4fe266c0a7f2c/module.o',
> '/tmp/codepy-compiler-cache-v5-uid1000/cd6dbc7737faf0ddefa740abfda66139/gpu.o'],
> then press [Enter]
> Traceback (most recent call last):
>   File "thrust_demo.py", line 85, in <module>
>     module = nvcc_mod.compile(gcc_toolchain, nvcc_toolchain, debug=False)
>   File
> "/usr/local/lib/python2.7/dist-packages/codepy-2012.1.2-py2.7.egg/codepy/cuda.py",
> line 104, in compile
>     host_mod_name, **kwargs)
>   File
> "/usr/local/lib/python2.7/dist-packages/codepy-2012.1.2-py2.7.egg/codepy/jit.py",
> line 427, in link_extension
>     toolchain.link_extension(destination, objects, debug=debug)
>   File
> "/usr/local/lib/python2.7/dist-packages/codepy-2012.1.2-py2.7.egg/codepy/toolchain.py",
> line 210, in link_extension
>     raise CompileError, "module compilation failed"
> codepy.CompileError: module compilation failed
>
> It seems that there are two errors:
> 1.It tries to link with the 32bit version of cudart, not the 64bit
> 2.It cannot find libboost-python-mt although i have installed the package
> libboost and the development files from synaptic.
>
> My OS is ubuntu 11.10 .
>
> What should I do next?
>
> Thank you in advance ,
>
> Apostolis
>
> 2012/5/26 Andreas Kloeckner <[email protected]>
>
>> On Sat, 26 May 2012 14:59:28 -0400, Thomas Wiecki <
>> [email protected]> wrote:
>> > I tried using the shipped version (bpl_subset) but couldn't get it to
>> > work somehow (how is one supposed to get the lib files?).
>> >
>> > I now set USE_SHIPPED_BOOST = False and that seems to do the trick
>> > with the ubuntu 11.10 boost packages 1.46.1
>>
>> Right. Should've remembered to say that. There's no way to make codepy
>> work with shipped boost. The reason for this is twofold: a) as you
>> remark, you don't get a libboost-python*, which codepy requires, and
>> even if you got that from elsewhere, b) Boost.Python keeps a global
>> registry of from/to-python converters. Once there are two copies of that
>> registry loaded into a single Python interpreter, things start getting
>> weird. Very weird. :)
>>
>> Andreas
>>
>>
>> _______________________________________________
>> PyCUDA mailing list
>> [email protected]
>> http://lists.tiker.net/listinfo/pycuda
>>
>>
>
_______________________________________________
PyCUDA mailing list
[email protected]
http://lists.tiker.net/listinfo/pycuda

Reply via email to