PyCUDA / Copperhead не распознает 64-битные машины - PullRequest
0 голосов
/ 14 апреля 2011

У меня две проблемы с медной головкой в ​​минуту, которые, я подозреваю, связаны.

Запуск файла сэмпла (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 или проблем с загрузкой?

1 Ответ

3 голосов
/ 14 апреля 2011
  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), имеют серию каскадных символических ссылок на это имя канонической библиотеки, которые заставляют компоновщика находить правильную библиотеку без какого-либо дальнейшего вмешательства.
...