15.10 + Optimus + bumblebee + CUDA

1
Primeiro: Eu tenho lutado com meu laptop estúpido no Ubuntu 15.10 por uma semana. Portanto, não me "duplique" apenas simplesmente pesquisando algumas palavras-chave e sem ler a coisa toda, além dos hiperlinks.

Meu laptop tem uma nvidia geforce 740M (optimus) e eu tenho o ubuntu 15.10 instalado. Eu instalei o bumblebee com o driver nvidia-355 usando as instruções em este link. Agora é possível para mim alternar entre as placas gráficas na perfeição, apenas com o uso do optirun:

$ optirun glxgears
6763 frames in 5.0 seconds = 1352.335 FPS
7156 frames in 5.0 seconds = 1431.125 FPS
7152 frames in 5.0 seconds = 1430.255 FPS

e pode ser verificado se a placa gráfica nvidia está sendo usada:

cat /proc/acpi/bbswitch
0000:07:00.0 ON

que depois de fechar o glxgears será alterado para:

cat /proc/acpi/bbswitch
0000:07:00.0 OFF

No entanto, eu realmente preciso usar o CUDA no Ubuntu que parece impossível. Eu deveria "teoricamente" ser capaz de usar optirun para executar exemplos cuda depois de "make". mas o resultado é (e não há diferença em usar o sudo):

~/NVIDIA_CUDA-7.5_Samples/1_Utilities/deviceQuery$  optirun ./deviceQuery
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 30
-> unknown error
Result = FAIL

Então eu procurei novamente e consegui postar # 4 em esta página que é para o Ubuntu 12.04. Em que é sugerido usar:

$ sudo update-alternatives --config x86_64-linux-gnu_gl_conf
There are 3 choices for the alternative x86_64-linux-gnu_gl_conf (providing /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf).

  Selection    Path                                       Priority   Status
------------------------------------------------------------
  0            /usr/lib/nvidia-355/ld.so.conf              8604      auto mode
  1            /usr/lib/nvidia-355-prime/ld.so.conf        8603      manual mode
  2            /usr/lib/nvidia-355/ld.so.conf              8604      manual mode
* 3            /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf   500       manual mode

Press <enter> to keep the current choice[*], or type selection number: 

E o vadammt sugeriu selecionar o nvidia-355-prime (opção número 1). Eu selecionei e poderei usar

optirun ./deviceQuery

sem problemas. NO ENTANTO, depois de executar o deviceQuery, o bbswitch não desligará a nvidia OFF automaticamente:

$ cat /proc/acpi/bbswitch
0000:07:00.0 ON

Eu verifiquei a documentação do bumblebee e parece que o "nvidia-355-prime", na verdade, é o nvidia-prime e esse comando é usado para alternar de bumblebee para nvidia-prime. Então as principais perguntas agora são:

1) É verdade que selecionar as opções "nvidia-355-prime" para nvidia-prime?

2) Se sim, existe alguma maneira de realmente ter CUDA e Bumblebee juntos (sem depender de nvidia-prime)? apenas usando o "optirun" diretamente, e não recebendo o erro desconhecido "cudaGetDeviceCount retornou 30" que mencionei?

3) Se não, é possível criar um script para automatizar o processo de alternar entre o bumblebee e o nvidia prime e atribuir um comando a ele?

4) Algum outro comentário / sugestão / recomendação / conselho / proposta?

5) Obrigado?

EDITAR: mudar para nvidia-355-prime também não funcionará mais: (

    
por Kennet Celeste 26.02.2016 / 14:26

0 respostas