Acabei de fazer algumas experiências e posso confirmar as afirmações de Eric Appleman de que o Bumblebee não é necessário para a CUDA. (mais sobre o Bumblebee : Uma NVIDIA GeForce com Optimus Technology é suportada pelo Ubuntu? )
No entanto, quando você precisa mostrar exemplos gráficos usando OpenGL, você fazer necessidade algo como Bumblebee para sistemas Optimus, caso contrário, você não quer ver nada no visor ou obter o erro:
ERROR: Support for necessary OpenGL extensions missing.
Ao executar um programa CUDA, você precisa instalar o kit de ferramentas CUDA e um driver da nvidia. Se você pretende compilar programas, também precisa do SDK. Os instaladores podem ser encontrados em http://developer.nvidia.com/cuda-downloads , leia as instruções abaixo antes de iniciar o seu laptop Optimus.
Instalando CUDA
Motorista
Eu recomendo instalar o driver nvidia do gerenciador de pacotes do Ubuntu. Se você instalar o Bumblebee, não precisará se preocupar com o driver. Caso contrário, após a instalação, desative as bibliotecas da nvidia, conforme descrito em https://askubuntu.com/a/107746/6969 . Se você não fizer isso, perderá a aceleração 3D e, possivelmente, ficará preso em baixa resolução.
Conjunto de ferramentas
Basicamente, você precisa baixar o instalador, torná-lo executável e executá-lo. - Baixe o instalador. No momento da redação deste documento, o 4.2.9 é o driver mais recente. Como tenho um sistema operacional de 64 bits, uso o pacote Ubuntu de 64 bits 11.04 (embora esteja executando o 12.04) - Torne-o executável e permita a instalação /usr/local/cuda
:
chmod +x cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
sudo ./cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
Quando ocorrer a mensagem de instalação que pergunta onde instalar o CUDA, basta pressionar Enter para aceitar o padrão /usr/local/cuda
:
......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):
Após a instalação, ele imprimirá algumas mensagens que sugerem colocar o diretório da biblioteca cuda no caminho de pesquisa da biblioteca:
========================================
* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
* for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
* for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
* for 32-bit Linux distributions add /tmp/cuda/cuda/lib
* for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root
* Please read the release notes in /tmp/cuda/cuda/doc/
* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete
Você pode pular esta etapa, se quiser, mas precisará definir LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH
mais tarde ao executar um programa.
SDK
Se você quiser compilar aplicativos CUDA, poderá instalar o SDK de maneira semelhante à descrita acima. Faça o download, torne-o executável e execute-o (não como root, por exemplo, sem sudo
!). Ao compilar partes dele, tive que fazer algumas alterações NVIDIA_GPU_Computing_SDK/C/common/common.mk
:
depois da linha 189 OPENGLLIB := -lGL -lGLU -lX11 -lXi -lXmu
, adicione:
OPENGLLIB += -L/usr/lib/nvidia-current -L/usr/lib32/nvidia-current
depois da linha 271, troque ${RENDERCHECKGLLIB}
com ${OPENGLLIB}
a aparência de:
LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB} -ldl -rdynamic
- algumas (5) linhas adiante, faça o mesmo, mas remova
-lcuda
também.
- algumas (7) linhas adiante, faça o mesmo que você fez na linha 271.
Usando CUDA
O CUDA não precisa de um servidor X baseado em nvidia para funcionar. Nesse caso, você pode executar seu programa de teste aleatório como:
LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: $ LD_LIBRARY_PATH someComputallyIntensiveProgram
Se você não adicionou CUDA ao caminho da sua biblioteca, será necessário:
LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: / usr / local / cuda / lib64: / usr / local / cuda / lib: $ LD_LIBRARY_PATH someComputallyIntensiveProgram
(você pode remover os caminhos de 32 bits se o programa for de 64 bits).
Se o programa CUDA tiver algo a ser exibido usando o OpenGL, você precisará usar o optirun:
optirun blender
Ou, se você não tiver CUDA adicionado ao seu caminho padrão:
LD_LIBRARY_PATH = / usr / local / cuda / lib64: / usr / local / cuda / lib: $ LD_LIBRARY_PATH optirun blender
Aqui está a resposta completa (com base nas respostas de Alex Falappa e Lekensteyn ):
Na verdade, é possível fazer com que as GPUs nVidia Optimus executem CUDA no Ubuntu.
Bumblebee não é necessário para CUDA. (mais sobre o Bumblebee : Uma NVIDIA GeForce com Optimus Technology é suportada pelo Ubuntu? )
No entanto, quando você precisa mostrar exemplos gráficos usando OpenGL, você fazer necessidade algo como Bumblebee para sistemas Optimus, caso contrário, você não quer ver nada no visor ou obter o erro:
Se você precisar usar um programa com muitos gráficos, como o Blender, o Bumblebee é atualmente um bom caminho.
Vá para Instalando CUDA se você não quiser instalar o Bumblebee (por exemplo, se você não precisar do OpenGL).
Caso contrário, continue a ler.
Instalando o Bumblebee
Siga as instruções em Como funcionam os laptops com Nvidia Optimus?
Atualmente, eles são mantidos atualizados por um desenvolvedor do Bumblebee.
Depois de instalar o Bumblebee e reiniciar, você poderá escolher a placa gráfica a ser usada ao iniciar programas usando o
optirun
programa.Por exemplo:
Para testar rapidamente se tudo funciona corretamente, use:
Você verá um programa com esferas giratórias coloridas, se tudo estiver funcionando corretamente.
Verifique se a cadeia de fornecedores GL no terminal contém a palavra nvidia .
Se você executar apenas
glxspheres
, verá que a cadeia de fornecedores contém a placa Intel.Ao executar um programa CUDA, você precisa instalar o kit de ferramentas CUDA e um driver da nvidia. Se você pretende compilar programas, também precisa do SDK. Os instaladores podem ser encontrados em http://developer.nvidia.com/cuda-downloads , leia as instruções abaixo antes de iniciar o seu laptop Optimus.
Instalando CUDA
Motorista
Eu recomendo instalar o driver nvidia do gerenciador de pacotes do Ubuntu. Se você instalar o Bumblebee, não precisará se preocupar com o driver. Caso contrário, após a instalação, desative as bibliotecas da nvidia, conforme descrito em https://askubuntu.com/a/107746/6969 . Caso contrário, você perderá a aceleração 3D e, possivelmente, ficará preso em baixa resolução.
Conjunto de ferramentas
Basicamente, você precisa baixar o instalador, torná-lo executável e executá-lo. - Baixe o instalador. Em 9 de janeiro de 2013, 5.0.35 é o driver mais recente. Como tenho um sistema operacional de 64 bits, uso o pacote Ubuntu 11.10 de 64 bits (embora esteja executando o 12.10) - torne-o executável e permita a instalação
/usr/local/cuda
:Quando ocorrer a mensagem de instalação que pergunta onde instalar o CUDA, basta pressionar Enter para aceitar o padrão
/usr/local/cuda
:Após a instalação, ele imprimirá algumas mensagens que sugerem colocar o diretório da biblioteca cuda no caminho de pesquisa da biblioteca:
Você pode pular esta etapa se quiser, mas precisará definir
LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH
mais tarde ao executar um programa.SDK
Se você quiser compilar aplicativos CUDA, poderá instalar o SDK de maneira semelhante à descrita acima. Faça o download, torne-o executável e execute-o (não como root, por exemplo, sem
sudo
!).Usando CUDA
O CUDA não precisa de um servidor X baseado em nvidia para funcionar. Nesse caso, você pode executar seu programa de teste aleatório como:
Se você não adicionou CUDA ao caminho da sua biblioteca, será necessário:
(você pode remover os caminhos de 32 bits se o programa for de 64 bits).
Se o programa CUDA tiver algo a ser exibido usando o OpenGL, você precisará usar o optirun:
Ou, se você não tiver CUDA adicionado ao seu caminho padrão:
Instalando um Blender Build
(Com núcleos CUDA pré-compilados)
Quando você executa
optirun blender
, você pode receber uma mensagem do Blender informando que a compilação do kernel CUDA falhou e uma mensagem no terminal semelhante à seguinte:Se você quiser usar o recurso de renderização de GPU do Blender, poderá precisar de uma compilação do Blender com kernels CUDA pré-compilados. Todas as versões do Blender.org têm kernels CUDA pré-compilados; as compilações ppa: cheleb / blender-svn ( mais informações nesta pergunta ) não.
Para instalar uma compilação oficial do Blender, basta seguir as instruções descritas nesta resposta .
Se você instalou o Blender
/usr/lib/blender
, poderá executar o Blender a partir do terminal e usar a renderização da GPU com:fonte
usermod
comando. Manterei as instruções de instalação em askubuntu.com/a/36936/6969 atualizadas, portanto, faça o link para essa postagem em vez de copiar essas instruções de instalação.O suporte a gráficos híbridos (normalmente gráficos integrados Intel e gráficos discretos Nvidia) no Linux é atualmente um pouco problemático. Algo está se movendo lentamente no campo do servidor X, mas não prenda a respiração.
Como você adivinhou, o Bumblebee é atualmente um bom caminho a percorrer.
Recentemente, comprei um laptop Asus N55 com gráficos Intel / Nvidia. Consegui que o renderizador Blender Cycles usasse CUDA.
Quando instalei o Ubuntu 12.04, ele usava os gráficos integrados por padrão no driver gráfico da intel. O driver gráfico noveau não deve ser instalado.
Então eu abri um terminal e fiz:
Depois disso (como recomendado pelas instruções de instalação):
Então eu reiniciei.
Para escolher o driver a ser usado ao iniciar programas, use o programa optirun, por exemplo:
Para testar se tudo funciona corretamente, use:
E verifique se a cadeia de fornecedores GL contém a palavra Nvidia. Se você executar:
A cadeia de fornecedores deve conter a palavra Intel
fonte
optirun
e posso verificar se o Blender estava usando minha GPU nVidia para renderizar a viewport 3D. No entanto, não há opção "GPU" no menu suspenso nas Preferências do Usuário do Blender. Ele lista apenas "CPU". Veja esta captura de tela . Preciso instalar drivers adicionais para usar o CUDA?Acho que, para executar todos os exemplos de CUDA, usando o Bumblebee, é necessário instalar os drivers 295.40 a partir daqui e durante a instalação, optar por não substituir o
config x11
.Então você precisa usar o mesmo driver para compilar os exemplos e executar o programa.
fonte