Eu passei pela instalação do tensorflow da GPU em um sistema dualboot ( Windows 10
e Ubuntu 16.04.x
)
ambos os sistemas operacionais têm aproximadamente as mesmas versões de drivers
Lenovo P50 laptop with Nvidia Quadro M1000M
Windows 376.51 nvidia driver version
Ubuntu 375.66 nvidia driver version
Eu treino um modelo de aprendizado profundo, cada conjunto de treinamento leva um tempo muito diferente
Windows 10 + Tensorflow 1.3 GPU + CUDA = 8 min. per epoch
Ubuntu 16.04 + Tensorflow 1.3 GPU + CUDA = 45 min. per epoch
A instalação do Ubuntu foi feita através de todos os padrões de apt-get
(não instalação de fontes) epip
Meu único pensamento até agora... é que devo usar a GPU NVIDIA para pintar os gráficos.. e não conseguir utilizar TODA a GPU para computação.. existe uma maneira de verificar isso? Instalei tudo em ambos iguais.. incluindo os patches paraCUDA 8.x
Ainda não sei qual é o problema, mas parece que os drivers estão configurados para usar o Optimus. Talvez eu precise mudar para um perfil diferente?
Idéia um: posso tentar amanhã recompilar o tensorflow a partir das fontes .. com todas as otimizações de CPU dentro do Ubuntu 16.x .. talvez a instalação do pip seja mais dolorosa do que a instalação binária no Windows ...
Idéia dois: Se acima não fizer nada, irei para o BIOS e forçarei os gráficos integrados da Intel .. reinstalarei e tentarei instalar os gráficos noveua .. mais ou menos assim:
Parece que este é um laptop habilitado para "Optimus". Não consigo desligar completamente o gpu nvidia para renderização, apenas habilitar o modo híbrido. Talvez eu faça uma nova instalação .. remova todos os drivers da nvidia e veja se consigo fazer o X funcionar dessa maneira ..?
"So I went to BIOS and set the integrated graphics as default and
restart. Remember to switch the HDMI from the port on GTX1080 to that
on the motherboard. Now the display works well. I successfully
installed Ubuntu following its prompt guides."
When installing the NVIDIA display driver, be sure to:
1. not install the openGL libs (there are command line options with
driver runfile installers or CUDA runfile installers to allow this)
2. make sure not to make any changes to the xorg.conf configuration.
Responder1
Depois de muita caça, pesquisa.. coalescência.. Encontrei o problema com sucesso e resolvi-o! Sim, a GPU Intel no Windows estava sendo usada enquanto no Linux não era utilizada... forçando a GPU NVIDIA a desenhar a tela e perder recursos.
Eu reinstalei um novo Ubuntu 16.04 USB Stick em cima do meu sistema anterior.
During reinstallation choose updates, but don't use 3rd party libraries
Uma vez instalado, você deve verificar se está no modo de driver Intel Nouveau.. em vez do driver proprietário da Nvidia.
Agora vieram as partes estranhas
Um usuário aqui apontou o mesmo problema.. mas para implantações de desktop
basicamente...
Em resumo, para que isso funcione, você precisa
1. make sure you have enabled onboard graphics in the BIOS settings (or set it as primary)
Eu fiz o modo híbrido .. já que não há opção somente Intel
2. install both xorg intel driver and nvidia/cuda drivers
aqui você precisa passar as bandeiras
--no-opengl-files //for the driver install I choose latest (384)
--no-openfl-libs // cuda 8.0 + patch here ..
certifique-se de desativar o nouveau .. e todas as etapas descritas nas instruções.
principal maneira de saber se você está bem. Instale glmark2
e sempre garanta que está gerando informações
3. start nvidia-settings, and go to the PRIME settings page, set Intel (Power Saving Mode) as default
4. modify your .bashrc and set LD_LIBRARY_PATH to at least contain /usr/local/cuda/lib64:/usr/lib/nvidia-XXX where XXX in my case is 375.
esta pasta não existia para mim. Eu ainda adicionei o padrão LD_LIBRARY_PATH
e PATH
descrevi nas instruções pós-instalação do cuda
4. logout to restart X or reboot
5. run glmark2 to confirm GL status
já que você deveria ter instalado sem instalar arquivos opengl .. isso talvez seja desnecessário
<strike>6. (update) if the libGL printed from step 5 points to nvidia's driver folder, you need to remove/rename the libGL.so*/libGLX.so*/libGLdispatch.so* under nvidia driver folder so that your OS can pick up the mesa libGL library.</strike>
7. run nvidia-smi to list your dedicated NVIDIA GPU, and run your CUDA program, you should not see any errors.
isso não funcionou para mim até que eu corri nvidia-modprobe
uma vez.. então, de repente, tudo funcionou.
atualização: infelizmente uma reinicialização quebrou a configuração. ainda não tenho certeza de como consertar...