Arquivo da tag: TensorFlow

Desventuras na instalação do TensorFlow com suporte a GPU

A missão: instalar o TensorFlow incluindo suporte a GPU com Cuda

A máquina: Dell Inspiron 15 5557, com NVidia GeForce 930M

A plataforma: Linux Ubuntu Xenial Xerus 16.04

O mapa da mina: Homepage de Setup e Download do Tensor Flow

https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html

O primeiro passo para prover o suporte à GPU seria  a instalação do NVidia Toolkit e do cuDNN.

O site do TensorFlow recomenda a instalação do toolkit versão 7.5 e cuDNN 4.

A instalação do toolkit NVidia foi tranquila, já que os pacotes já estão nos repositórios tradicionais do Xenial Xerus. Portanto, obviamente optei por não compilar o fonte do toolkit.

sudo apt-get install nvidia-cuda-toolkit

Já com o cuDNN é outra história. A versão 5, já disponível no site da NVidia, possui pacotes .DEB para download e instalação (tem que cadastrar uma conta e querem que você responda um questionário… chaaatoooo!)

Já para a versão 4 (requerida pelo TensorFlow segundo o site de configuração e download)  exige download e descompactação em pasta específica, ou seja, mais enjoada.

Feitas estas instalações iniciais, usei os pacotes PIP disponibilizados pelo próprio site de download do TensorFlow, com suporte à GPU.

A instalação PIP transcorre normalmente e, após usa instalação, é possível importar o TensorFlow no Python sem problemas (vida  longa ao PIP!)

Porém, quando executamos o código de teste convolutional.py (veja site acima do TensorFlow), surge o erro: CUDA_ERROR_MISALIGNED_ADDRESS

Após alguma pesquisa nos fóruns pertinentes, aparentemente a solução seria compilar tudo da fonte.

O problema adicional é que o fonte do TensorFlow parte do pressuposto que o toolkit NVidia foi instalado numa tal pasta /usr/local/cuda e, mesmo que você altere esse caminho, o arquivo configure chama vários outros com dependências de path difíceis de serem corrigidas caso você tenha instalado seu NVidia toolkit a partir do repositório.

Não estou muito a fim de compilar na unha o código do NVidia Toolkit, já que a solução via repositório é sempre mais “clean” e conta com a vantagem das atualizações automáticas.

Fiquei um pouco frustrada, mas acabei instalando os pacotes PIP do TensorFlow SEM O SUPORTE À GPU.

Tudo funcionou perfeitamente, incluindo o código de teste convolutional.py (veja link do TensorFlow acima). Sem a ajuda da GPU, esse código ocupa 100% da CPU (4 núcleos), jogando a temperatura do processador nas alturas durante mais de 15 minutos.

Por ora vai bastar para mim, mas espero que os pacotes PIP do TensorFlow em breve seja compatível com este tipo de configuração de máquina/plataforma. No mínimo, os caras podiam retrabalhar o script de configuração da compilação do fonte, prevendo a instalação de toolkit e cuDNN via repositório.

Mission not accomplished 😦

Tem dias que a gente perde…