“/ usr / bin / ld: não é possível encontrar -lboost_python-mt” ao instalar o pycuda 2011.2.2

3

Estou instalando o pycuda2011.2.2 no Ubuntu 11.10, mas não consigo concluí-lo.     Quando eu faço pycuda-2011.2.2 $ make -j 4

Eu recebo este erro:

/usr/bin/ld: cannot find -lboost_python-mt    ,
/usr/bin/ld: cannot find -lcuda

Eu também tenho 1 correspondência exata de problema na pesquisa e na solução do Google:

 $ sudo ln -s /usr/lib/libboost_python-mt-py26 /usr/lib/libboost_python-mt

Mas booooom, meu problema não desaparece.

Isso me faz pensar que não há resultados relevantes na pesquisa do Google, como se eu tivesse esse problema. O que está errado ? Qualquer ajuda é apreciada.

Obrigado,

    
por maxrider11 19.04.2012 / 23:06

5 respostas

3

Existem duas bibliotecas que parecem estar faltando, as quais você precisa instalar primeiro.

Boost.Python

Isso é fornecido por libboost-python e ''. Ou como estas instruções dizem, para instalar este e alguns dos outros pré-requisitos (que você pode ou não já tem, com base em suas mensagens de erro), execute:

sudo apt-get install build-essential python-dev python-setuptools libboost-python-dev libboost-thread-dev -y

(Eu não aconselho seguir todas as instruções nessa página para a letra do começo ao fim, no entanto, como elas não são escritas com o Ubuntu 11.10 em mente e você não precisa , e provavelmente não quer, configurar seu sistema para usar um compilador mais antigo do que o fornecido oficialmente para ele.)

CUDA

Se você já baixou o CUDA do site da Nvidia e o instalou, basta especificar onde:

./configure.py --cuda-root=/where/ever/you/installed/cuda

(Veja a página de instruções genéricas da pycuda para mais detalhes.)

Antes de fazer isso, você pode querer começar do zero ou executar make distclean (ou make clean se make distclean não for reconhecido).

Se você ainda não baixou e instalou o CUDA, pode fazê-lo no site da Nvidia. Especificamente, em esta página , pegue a versão de 32 ou 64 bits do kit de ferramentas CUDA para Ubuntu 11.04 (que é o mais próximo do seu sistema que está disponível e provavelmente funcionará). Se você não tiver certeza se tem a versão de 32 bits ou 64 bits do Ubuntu instalada, execute uname -m . Se ele diz x86_64 , você tem a versão de 64 bits; caso contrário, você tem a versão de 32 bits. Também pegue os drivers de desenvolvimento e o SDK.

Links rápidos (32 bits): Kit de ferramentas Drivers SDK
Links rápidos (64 bits): Toolkit Drivers SDK

    
por Eliah Kagan 22.04.2012 / 21:56
2

Eliah fala sobre a correção -lcuda . Você também pode adicionar o local do diretório cuda lib ao seu LD_LIBRARY_PATH .

Quanto ao problema libboost-python , execute novamente o comando ./configure das instruções genéricas de pycuda e substitua --boost-python-libname=boost_python-mt por --boost-python-libname=boost_python-mt-py26 .

    
por max beckett 25.05.2012 / 19:20
1

A solução do elzirac funcionou melhor para mim. No geral, o fluxo de trabalho de instalação que funcionou para mim no Ubuntu 12.04 é:

Certifique-se de que o sistema esteja usando o python 2.7.x por padrão:

python --version    

(deveria dizer Python 2.7.x)

Elimine antigos drivers da Nvidia e instale os pré-requisitos do CUDA 5.5:

sudo apt-get remove --purge nvidia*    
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev    

Instale o CUDA 5.5:

wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1204/x86_64/cuda-repo-ubuntu1204_5.5-0_amd64.deb    
sudo dpkg -i cuda-repo-ubuntu1204_5.5-0_amd64.deb    
sudo apt-get update    
sudo apt-get install cuda    

Atualize as variáveis de ambiente do CUDA 5.5:

sudo echo "/usr/local/cuda-5.0/lib64" > /etc/ld.so.conf.d/cuda-5-5.conf    

Use um editor de texto para anexar :/usr/local/cuda-5.5/bin ao final da linha PATH em /etc/environment

Faça o download do pycuda:

wget https://pypi.python.org/packages/source/p/pycuda/pycuda-2013.1.1.tar.gz

Desembale:

tar xvzf pycuda-2013.1.1.tar.gz    

Instalar:

cd pycuda-2013.1.1    

rm siteconf.py    

./configure.py --cuda-root=/usr/local/cuda --cudadrv-lib-dir=/usr/lib --boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib --boost-python-libname=boost_python-mt-py27 --boost-thread-libname=boost_thread-mt --no-use-shipped-boost    
sudo make install    

Instale a instalação do pycuda:

cd test
python test_driver.py    
    
por Fisslefink 05.12.2013 / 02:13
0

problema resolvido. Eu encontrei resposta neste segmento: link

    
por user55717 29.05.2012 / 21:17
0

Eu também corri para este problema, mas no Ubuntu 12.04. Eu tive uma solução semelhante à resposta de Max Beckett, mas em vez de substituir --boost-python-libname=boost_python-mt por --boost-python-libname=boost_python-mt-py26 , foi --boost-python-libname=boost_python-mt-py27 (note que "26" mudou para "27" dependendo da versão de reforço que você tem)

Verifique o aumento que você tem:

ls /usr/lib/libboost_python*

Isso foi alterado na chamada para ./configure fazendo a chamada final:

./configure.py --cuda-root=/usr/local/cuda --cudadrv-lib-dir=/usr/lib --boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib --boost-python-libname=boost_python-mt-py27 --boost-thread-libname=boost_thread-mt --no-use-shipped-boost

Se você já tiver executado o ./configure , será necessário excluir ./siteconf.py

    
por elzilrac 05.09.2012 / 03:02