A ideia é instalar os pacotes iniciais de um ambiente IA de alta performance, compilando os binários a partir da source do Git do TensorFlow, que será otimizado para o hardware da sua máquina, e com o ganho de utilizar as ferramentas mais recentes que ainda não estão disponíveis pré compiladas. Além disso, terá a experiência de montar um ambiente do zero.
Ao final do artigo irá ver como o processamento em GPU ficou cerca de 15 vezes mais rápido que em CPU, para o teste específico.
Vamos utilizar:
- Uma boa máquina com GPU NVIDIA para processamento paralelo em GPU. Utilizo a GTX 1070 , sugiro a partir da GTX 1050 se puder, caso contrário, deve-se instalar a versão para CPU apenas.
- Sistema operacional Ubuntu 16.04.5 , não utlizarei a 18.04 porque nem todas bibliotecas oferecem suporte, embora seja possível utilizá-la. Mac é outra ótima opção.
- Anaconda para criar os ambientes virtuais e isolar nossas bibliotecas.
- Tensorflow 1.10, recém lançada, será nossa ferramenta inicial para DL e DS. Tensorflow é uma ferramenta open source liberada pela equipe da Google, bastante poderosa e aceita pela comunidade.
- A plataforma CUDA Toolkit 9.2 fornece o ambiente de desenvovimento para criação de aplicações utilizando GPU. Algumas aplicações exigem muito do processamento, sendo a utilização em GPU uma alternativa atrativa para quantidade massiva de dados a serem processados, desde que atendam algumas características.
- cuDNN: Biblioteca para otimização de funções em Deep Neural Networks
Nvidia driver
Download do drive para sua placa de vídeo.
Segundo a empresa as versões long lived tem suporte por mais tempo que as versões short, semelhante as versões LTS do Ubuntu.
sudo add-apt-repository ppa:graphics-drivers sudo apt update sudo apt install nvidia-396 reboot nvidia-smi
CUDA Tookit
Pré-requisitos
- Uma GPU compatível
- Suporte Linux com o compilador gcc
- Instalador CUDA Tookit
lspci | grep -i nvidia uname -m && cat /etc/*release gcc --version uname -r
cuDNN
Download do cuDNN v7.2.1 Library for Linux
tar -xzf cudnn-9.2-linux-x64-v7.2.1.38.tgz cd cuda sudo cp lib64/* /usr/local/cuda-9.2/lib64 sudo cp include/* /usr/local/cuda-9.2/include
Anaconda:
Download do Anaconda
# Instalação cd Downloads bash Anaconda3-5.2.0-Linux-x86_64.sh # Variáveis de ambiente gedit ~/.bashrc export PATH="/home/deep/anaconda3/bin:$PATH" source ~/.bashrc conda update conda
TensorFlow
Já temos a base para finalmente instalar o TensorFlow.
O processo de instalar diretamente da source pode demorar horas dependendo do hardware. E as versões de cada uma das ferramentas pode influenciar nas configurações, e até mesmo dar algum erro.
Deve-se instalar algumas dependências em seguida o TensorFlow através do Bazel baixado desse link.
# TensorFlow # Clonar Git sudo apt-get install git cd ~/Downloads git clone https://github.com/tensorflow/tensorflow cd tensorflow git checkout r1.10
Após o chekout no Git, iremos configurar os parâmetros para geração do módulo final de instalação do TensorFlow de acordo com a máquina pessoal de cada usuário.
Compilando os pacotes
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
Gerando o módulo instalador
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
Agora temos o arquivo para instalar o TensorFlow mais novo no caminho /tmp/tensorflow_pkg.
Obs: Talvez seja necessário instalação de alguma dependência extra, em algumas situações, ou atualização de bibliotecas:
sudo apt update sudo apt upgrade pip install --upgrade pip sudo apt install libnccl2 libnccl-dev
Ambiente Anaconda
# Criar novo ambiente de desenvolvimento separado da instalação # do sistema operacional cd ~ conda create -n ia_env pip python=3.6.6 numpy jupyter source activate ia_env
Instalando o TensorFlow (finalmente)
pip install /tmp/tensorflow_pkg/tensorflow-1.10.0-py2-none-any.whl conda list
Hello World TensorFlow na GPU
import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello))
Testando desempenho GPU vs CPU
Multiplicação de matriz 10000 x 10000
Resultado
# Processamento em GPU Tempo: 3.80 segundos # Processamento em CPU Tempo: 56.98 segundos
Finalizamos esse post inicial, no próximo iremos trabalhar com uma instalação simplificada do TensorFlow com Docker.
Referência e links úteis
- https://www.nvidia.com.br/object/what-is-gpu-computing-br.html
- https://www.nvidia.com/object/unix.html
- https://developer.nvidia.com/cuda-downloads
- https://developer.nvidia.com/rdp/cudnn-download
- https://www.anaconda.com/download/#linux
- https://www.datascienceacademy.com.br/
FONTE ORIGINAL: https://www.linkedin.com/pulse/preparando-ambiente-de-intelig%C3%AAncia-artificial-ubuntu-allyson-de-lima/
Seja o primeiro a comentar