in Uncategorized

Pagou por múltiplas GPUs na Azure e não consegue usar com Deep Learning? Este post é pra você.

Você foi lá no portal da Azure pegou uma NC24R que tem maravilhosos 224 Gb de memória, 24 núcleos, mais de 1Tb de disco, e o melhor: 4 placas M80 para o seu deleite completo no treinamento com Deep Learning.
Tudo perfeito, certo? Quase.
Logo de início tentei usar um script para um treinamento e com um simples htop para monitorar o treinamento, vi que o Tensor Flow estava despejando todo o treinamento nos processadores.
Mesmo com esses 24 processadores maravilhosos batendo 100% de processamento, isso não chega nem perto do que as nossas GPUs mastodônticas podem produzir. (Nota: Você não trocaria 4 Ferraris 2017 por 24 Fiat 147 modelo 1985, certo?)
Acessando a nossa maravilhosa máquina para ver o que tinha acontecido, verifiquei primeiro se as GPUs estavam na máquina, o que de fato aconteceu.
[code language=”shell”]
[email protected]:~$ nvidia-smi
[/code]
[code language=”shell”]
Tue Jun 27 18:21:05 2017
+—————————————————————————–+
| NVIDIA-SMI 375.66 Driver Version: 375.66 |
|——————————-+———————-+———————-+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K80 Off | B2A3:00:00.0 Off | 0 |
| N/A 47C P0 71W / 149W | 0MiB / 11439MiB | 0% Default |
+——————————-+———————-+———————-+
| 1 Tesla K80 Off | C4D8:00:00.0 Off | 0 |
| N/A 57C P0 61W / 149W | 0MiB / 11439MiB | 0% Default |
+——————————-+———————-+———————-+
| 2 Tesla K80 Off | D908:00:00.0 Off | 0 |
| N/A 52C P0 56W / 149W | 0MiB / 11439MiB | 0% Default |
+——————————-+———————-+———————-+
| 3 Tesla K80 Off | EEAF:00:00.0 Off | 0 |
| N/A 42C P0 69W / 149W | 0MiB / 11439MiB | 0% Default |
+——————————-+———————-+———————-+
+—————————————————————————–+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+—————————————————————————–+
[/code]
[code language=”shell”]
[email protected]:~/deep-learning-moderator-msft$ lspci | grep -i NVIDIA
[/code]
[code language=”shell”]
b2a3:00:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
c4d8:00:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
d908:00:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
eeaf:00:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
[/code]
OK, as Teslas K80 estão prontas para o combate, contudo a própria Azure reconhece que há problemas no processo como um todo, e pra fazer isso basta alguns procedimentos bem simples em dois passos segundo a documentação.
PASSO 1
1) Clone o repositório do Git (Sim, eu dei fork pois rotineiramente isso costuma sumir por motivos que nem sempre sabemos).
[code language=”shell”]
$ git clone https://github.com/leestott/Azure-GPU-Setup.git
[/code]
2) Entre na pasta que foi clonada
[code language=”shell”]
$ cd azure-gpu-setup
[/code]
3) Execute o script que irá instalar algumas libs da NVIDIA e posteriormente fará o servidor reiniciar.
[code language=”shell”]
$ bash gpu-setup-part1.sh
[/code]
PASSO 2
1) Vá na pasta do repositório do git
[code language=”shell”]
$ cd azure-gpu-setup
[/code]
2) Execute o segundo script que fará a instalação do Tensorflow, do Toolkit do CUDA, e do CUDNN além de fazer o set de uma porção de variáveis de ambiente.
[code language=”shell”]
$ bash gpu-setup-part2.sh
[/code]
3) Depois faça o teste da instalação
[code language=”shell”]
$ python gpu-test.py
[/code]
Depois disso é só aproveitar as suas GPUs em carga total e aproveitar para treinar as suas GPUs.

Write a Comment

Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.