Preparando ambiente de Inteligência Artificial: Ubuntu 16.04.5, Anaconda 5.2, TensorFlow 1.10, CUDA 9.2

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/

Pin It on Pinterest