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”] azure_teste@deep-learning:~$ 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”] azure_teste@deep-learning:~/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. |