Acelere seus algoritmos de Machine Learning com CUDA no Linux
Se você deseja trabalhar com algoritmos de Machine Learning, provavelmente precisará usar processamento paralelo para acelerar os resultados dos seus algoritmos. Muitos frameworks como por exemplo, o TensorFlow, já possuem versões de certos algoritmos para execução em GPU. O primeiro passo para acelerar seus algoritmos com CUDA, é preparar a infraestrutura do seu sistema operacional.
Atualmente o Linux, constitui o sistema operacional mais usado para programar . As distribuições baseadas no Ubuntu, têm se destacado quando o assunto é facilidade e suporte para preparar o ambiente de programação. Este tutorial poderá ser aplicado em qualquer distribuição baseada no Ubuntu, até mesmo derivadas do Red Hat como, CentOS ou Fedora, desde que sejam feitas algumas adaptações.
Estas instruções foram testadas nas distribuições Ubuntu 16.04 e Linux Mint 18.2 Mate 64-bit.
Antes de qualquer etapa, para instalar o driver NVIDIA é necessário desabilitar o driver nouveau, instalado por padrão.
O primeiro passo é bloquear os módulos do driver nouveau:
$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off
Agora vamos desabilitar o módulo no kernel:
$ sudo echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
Reconstruímos o kernel sem o módulo nouveau:
$ sudo update-initramfs -u
Reinicie o sistema operacional.
Agora sim! Podemos instalar o driver NVIDIA. Para isto, são necessários utilitários: compiladores para linguagem de programação C (GCC), utilitários para compilação como o comando make. Em distribuições baseadas no Debian ou Ubuntu, o pacote a ser instalado é o build-essential.
$ sudo apt install build-essential
Faça o download CUDA Toolkit no site oficial da NVIDIA.
Baixe a versão para Linux – Ubuntu 16.04 – runfile (local)
É necessário parar a execução da interface gráfica para instalação do toolkit:
$ sudo systemctl stop lightdm
Agora execute o arquivo de instalação do CUDA Toolkit.
Importante: para evitar conflitos durante a programação em CUDA, recomenda-se usar o driver NVIDIA, apenas para programar, afastando a utilização para a interface gráfica. Para isso, veja o parâmetro:
$ chmod +x cuda_9.0.176_384_linux.run $ sudo ./cuda_9.0.176_384_linux.run --no-opengl-libs
Responda as perguntas do instalador da seguinte maneira:
- y para a instalação num ambiente de configuração não suportado.
- y para instalação do driver NVIDIA.
- n para não executar o nvidia-xconfig
- y para instalar o Cuda 9.0 Toolkit.
- Pressione ENTER para deixar como localização padrão do Toolkit o diretório /usr/local/cuda-9.0
- y para instalar um link simbólico para /usr/local/cuda
- y para instalar os exemplos de código (samples) para o CUDA 9.0.
- Escolha um diretório para armazenar os exemplos de código do CUDA e pressione ENTER.
Neste momento, devemos configurar as variáveis de ambiente para usar o CUDA mais eficientemente:
$ export PATH=/usr/local/cuda-9.0/bin:$PATH $ export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
Guarde no sistema, no arquivo .profile, as variáveis do usuário que programará em CUDA, desta forma, ao reiniciar o SO, não será necessário exportar as variáveis novamente.
$ vim ~/.profile export PATH=/usr/local/cuda-9.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
As duas linhas “export” devem vir no final do arquivo. Execute o comando source para executar os comandos “export” definidos no arquivo .profile:
$ source ~/.profile
Nas próximas inicializações do SO, não será necessário executar o comando source.
Pronto!
Execute o comando nvidia-smi para ver as GPUs disponíveis no seu computador:
$ nvidia-smi
Verifique a versão do compilador NVCC:
$ nvcc --version
Até os próximos posts!
About author
Você pode gostar também
Zero Trust na Prática: A Nova Fronteira da Segurança Corporativa
Imagine uma fortaleza medieval. Antigamente, bastava cruzar a ponte levadiça para ter acesso a tudo. Hoje, com equipes trabalhando de qualquer lugar, dados na nuvem e conexões globais, esse modelo
Melhore a segurança do seu ambiente Kubernetes com práticas eficazes
A ampla utilização do Kubernetes (K8S) em ambientes produtivos traz uma alerta, de como esses ambientes estão sendo usados em relação as configurações e boas práticas de segurança da informação.
Transforme sua TI com Infraestrutura Ágil e práticas DevOps
Os métodos ágeis fizeram a área de desenvolvimento de software evoluir muito, através do desenvolvimento de softwares baseados em testes e garantindo entregas contínuas. Da mesma forma que este processo






