Ubuntu 12.04 Lts Problemas com a instalação Cpyrit-Cuda / pyrit / cpyrit-opencl

0

Oi eu estou tendo um problema de construção e instalação de pyrit cpyrit-cuda e cpyrit opencl aqui é o que eu estou recebendo quando eu tento construir e executar o instalador ..

brandon@sanfran-Dell-System-Inspiron-N7110:~/cpyrit-opencl-0.4.0$ sudo python setup.py install
svn: '.' is not a working copy
running install
running build
running build_ext
Building modules...
building 'cpyrit._cpyrit_opencl' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/local/cuda/include -I/usr/include/python2.7 -c _cpyrit_opencl.c -o build/temp.linux-x86_64-2.7/_cpyrit_opencl.o -Wall -fno-strict-aliasing -DVERSION="0.4.0"
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/_cpyrit_opencl.o -lcrypto -lz -lOpenCL -o build/lib.linux-x86_64-2.7/cpyrit/_cpyrit_opencl.so
/usr/bin/ld: cannot find -lOpenCL
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
brandon@sanfran-Dell-System-Inspiron-N7110:~/cpyrit-opencl-0.4.0$ f

Alguém por favor ajude se possível todas as respostas são muito apreciadas obrigado!

    
por user173106 06.07.2013 / 17:18

1 resposta

0

A mensagem de erro que você recebeu está dizendo que o libary do OpenCL não foi encontrado. Provavelmente ele não está instalado em seu sistema, pois o Ubuntu deve colocar um link para a biblioteca OpenCL na pasta / usr / lib da biblioteca padrão.

Para instalar o OpenCL, instale os drivers de placa gráfica proprietários para o seu sistema. A ferramenta "drivers adicionais" (nome do programa: jockey) deve ajudá-lo a encontrar o pacote apropriado, mas você também pode instalá-los manualmente. Se você tem uma placa gráfica nVidia, este é provavelmente o pacote nvidia-current ou nvidia-current-updates para versões ainda mais recentes. Se você tiver uma placa gráfica AMD, instale fglrx ou fglrx-updates. Não use os pacotes * -experimentais, pois estes (pelo menos para a AMD) não incluem a funcionalidade OpenCL.

Você também pode precisar instalar o pacote de cabeçalhos opencl. Na nvidia, há um meta-pacote avialable, chamado nvidia-opencl-dev, que deve instalar todo o necessário para começar a trabalhar com o OpenCL.

Se você tem certeza de que instalou o OpenCL e ainda não o executa, descubra onde o seu arquivo libOpenCL.so reside. Basta executar

locate libOpenCL.so

Isso deve fornecer uma lista de arquivos com esse nome instalado no seu PC. No meu caso, há um link "/usr/lib/libOpenCL.so", apontando para o arquivo em si, que é "/usr/lib/fglrx/libOpenCL.so". Isso significa que, no meu caso, a pasta seria / usr / lib ou / usr / lib / fglrx. Depois de saber o nome da pasta, você pode executar o comando de instalação novamente, mas com o conjunto LD_FLAGS. Eu não sei como o sudo reage à configuração de variáveis, então eu executei um shell de root interativo e configurei LD_FLAGS dentro de:

sudo -i
LD_FLAGS="--library-path=<folder the lib is in>" python setup.py install
exit

Se (por algum motivo estranho, por exemplo, se você não usou pacotes de drivers gráficos Ubuntus), seu OpenCL lib não está instalado em um local padrão (significado: não em / usr / lib, / usr / local / lib ou / lib), e não há nenhum link simbólico para ele em uma dessas pastas, eu coloquei um link simbólico manualmente (o sujo, mas fácil hack), ou escreva um arquivo com a pasta em que a lib está e coloque-o em / etc / ld.so.conf.d / (dê uma olhada nos outros arquivos lá para ver o que quero dizer e para verificar se ele ainda não está lá) e execute "sudo ldconfig", para que seus programas o encontrem. As pastas listadas nos arquivos em /etc/ld.so.conf.d são uma lista de diretórios, que são pesquisados por bibliotecas dinâmicas pelo ldconfig, que por sua vez gera um índice que é usado pelo programa para procurar por bibliotecas compartilhadas. Caso contrário, você pode ter que definir LD_LIBRARY_PATH toda vez que executar seu aplicativo OpenCL compilado ...

    
por soulsource 07.07.2013 / 10:19