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
