PyCUDA / Copperhead似乎无法识别64位计算机

时间:2011-04-14 11:57:39

标签: python boost cuda boost-python pycuda

我现在遇到铜头的两个问题,我怀疑这是相关的。

运行一个示例文件(samples / axpy.py)会产生很多小警告,但这个警告很突出。

g++ -pthread -fno-strict-aliasing -g -O2 -g -fwrapv -O2 -Wall -fPIC -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -DNDEBUG -I/usr/include/python2.6 -I/usr/local/lib/python2.6/dist-packages/copperhead-0.1a1-py2.6.egg/copperhead/include -I/usr/local/cuda/include /tmp/codepy-compiler-cache-v5-uid1000/202478034fea29b82d046b259bd6f43e/module.o /tmp/codepy-compiler-cache-v5-uid1000/fdcb04ede426b146cfce8894e99eeb57/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/202478034fea29b82d046b259bd6f43e/codepy.temp.202478034fea29b82d046b259bd6f43e.module.so
/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

很少有事情需要注意;

g ++已经正确选择了正确的CUDA lib目录(lib64),但是在那里没有看到libcudart.so。

/usr/local/cuda/lib64/libcudart.so.4.0.12: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

接下来,找不到boost_python;我从一些地方听说这是因为ubuntu在某个地方打破了一个软件包约定,人们已经说过他们已经通过更改pycuda配置选项修复了它,但是还没有说要改变它的内容......( Example

任何人对cudart或引导问题都有任何想法?

1 个答案:

答案 0 :(得分:3)

  1. 找到libcudart。你是什​​么 看到的只是一个信息 警告:-L选项是 按顺序搜索,链接器是 首先找到32位版本, 因为你给了 -L/usr/local/cuda/lib之前的-L/usr/loca/cuda/lib64
  2. 对于libboost_python问题, 只需链接-lboost_python即可。该 我使用的Ubuntu系统(64位 10.04LTS与boost-python 1.40)有一系列级联符号 指向那个规范的链接 创建链接器的库名称 找不到任何正确的库 进一步干预。