2011-04-14 6 views
0

분당 구리 헤드와 관련된 두 가지 문제점이 있습니다.PyCUDA/Copperhead가 64 비트 시스템을 인식하지 못하는 것 같습니다.

샘플 파일 (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을 찾을 수 없습니다. 나는 이것들이 어딘지 패키지 협약을 어 기고있는 우분투 때문이라고 들었는데, 사람들은 pycuda configure 옵션을 변경함으로써 그것을 고쳤다 고 말했지만, 그것을 바꾸는 것은 말하지 않았다. (Example)

누구나 cudart 또는 부팅 문제에 대한 아이디어가 있습니까?

답변

3
  1. 그것은 libcudart을 찾는입니다. 당신이 보고있는 것은 단지 정보 경고입니다 : -L 옵션 순서대로 검색하여 링커가 먼저 32 비트 버전을 찾는 입니다이며, 당신은 -L/usr/loca/cuda/lib64 전에 -L/usr/local/cuda/lib을 준 때문이다.
  2. libboost_python 문제의 경우 은 -lboost_python으로 연결됩니다. 우분투 시스템은 내가 링커 어떤 추가 개입없이 올바른 라이브러리를 찾을 수 있도록하는 표준 라이브러리 이름에 대한 기호 링크를 계단식 일련의가 (부스트 파이썬 1.40와 64 비트 10.04LTS)를 사용합니다.