0

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

运行一个示例文件 (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 配置选项来修复它,但还没有说将它更改为什么......(示例

有人对cudart或启动问题有任何想法吗?

4

1 回答 1

3
  1. 正在寻找libcudart. 您所看到的只是一个信息警告:按顺序搜索 -L 选项,并且链接器首先找到 32 位版本,因为您 -L/usr/local/cuda/lib之前给出了-L/usr/loca/cuda/lib64.
  2. 对于 libboost_python 问题,只需链接-lboost_python. 我使用的 Ubuntu 系统(带有 boost-python 1.40 的 64 位 10.04LTS)具有一系列指向该规范库名称的级联符号链接,使链接器无需任何进一步干预即可找到正确的库。
于 2011-04-14T13:15:35.937 回答