Pergunta
Minha experiência de programação é de cerca de 1 ano de experiência em C/C ++ no ensino médio, mas fiz minha pesquisa e escrevi um programa simples com o OpenCL há alguns meses. Consegui compilar e executar isso em um computador Apple com relativa facilidade com o G ++ e a opção -quadrowork. Agora estou na minha máquina Ubuntu e não tenho idéia de como compilá -la. Os drivers corretos foram baixados junto com o stream SDK da ATI (eu tenho um ATI Radeon HD5870). Qualquer ajuda seria apreciada!
Solução
Tentar
locate libOpenCL.so
Se estiver em um dos diretórios padrão (provavelmente/usr/lib, ou/usr/local/lib), você precisará substituir "-quadrowork opencl" por "-lopencl". Se o G ++ não conseguir encontrar o LIB, você poderá dizer ao G ++ para procurar em um diretório específico, adicionando "-l/path/to/biblioteca".
Eu gostaria de ter meu Linux para ser mais útil ... provavelmente é melhor se você reduzir o ATI-Stream-SDK, depois de extraí-lo, abrir o terminal e "CD/PATH/para/extraído/arquivos"; nesse diretório executar make && sudo make install
make
Você provavelmente sabe disso do Windows, isso compila, o que quer que precise ser compilado&&
Comandos de correntes juntos, os seguintes comandos só serão executados se o primeiro comando for bem -sucedidosudo make install
Isso colocará os arquivos nos lugares esperados (sudo executa um comando com o SuperUser Privilgeges, você terá que inserir sua senha)
Espero que ajude.
Outras dicas
Você pode estar perdendo as bibliotecas dinâmicas da configuração dinâmica do vinculador.
Procure onde estão as bibliotecas. Provavelmente/usr/lib, ou/usr/local/lib.
Verifique se o local do caminho também está configurado em um desses lugares:
- Ld_library_path - você pode defini -lo no seu ambiente de ambiente, como .bashrc
- /etc/ld.so.conf - Você precisará ligar para o LDConfig para atualizar o cache e requer acesso root para alterar o arquivo.
Razão
Além de @bjoernz, meu sistema não consegue encontrar o libOpenCL.so
Arquivo
É porque o diretório de arquivos correto está faltando
Depois de pesquisar pela Internet, descobri que libOpenCL.so
o arquivo pode ser fornecido por ocl-icd-opencl-dev
pacote
Solução
Você só precisa instalar o pacote mencionado acima digitando em CMD
sudo apt update
sudo apt install ocl-icd-opencl-dev
Portanto, libOpenCL.so
pode ser encontrado em /usr/lib/x86_64-linux-gnu/
pasta
Informações do meu sistema
- OS: Ubuntu 16.04 LTS
- GPU: Nvidia geForce GTX 660
- Motorista da GPU: nvidia-375
- OpenCl: 1.2