Como habilitar Keras com Theano para utilizar múltiplos GPUs

votos
8

Configuração:

  • Usando um sistema de Amazon Linux com um GPU Nvidia
  • Estou usando Keras 1.0.1
  • Correndo Theano v0.8.2 backend
  • Usando CUDA e CuDNN
  • THEANO_FLAGS = dispositivo = GPU, floatX = float32, lib.cnmem = 1

Tudo funciona bem, mas eu ficar sem memória de vídeo em grandes modelos quando eu aumentar o tamanho do lote para acelerar o treinamento. I figura se movendo para um sistema de 4 GPU seria em teoria ou melhorar a memória total disponível ou permitir lotes menores para construir mais rápido, mas observando as estatísticas nvidia, eu posso ver apenas uma GPU é usado por padrão:

+------------------------------------------------------+ 
| NVIDIA-SMI 361.42     Driver Version: 361.42         |         
|-------------------------------+----------------------+----------------------+ 
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC | 
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |    
|===============================+======================+======================| 
|   0  GRID K520           Off  | 0000:00:03.0     Off |                  N/A | 
| N/A   44C    P0    45W / 125W |   3954MiB /  4095MiB |     94% Default      |
+-------------------------------+----------------------+----------------------+ 
|   1  GRID K520           Off  | 0000:00:04.0     Off |               N/A    | 
| N/A   28C    P8    17W / 125W |     11MiB /  4095MiB |        0% Default    |
+-------------------------------+----------------------+----------------------+ 
|   2  GRID K520           Off  | 0000:00:05.0     Off |               N/A    | 
| N/A   32C    P8    17W / 125W |     11MiB /  4095MiB |           0% Default |
+-------------------------------+----------------------+----------------------+ 
|   3  GRID K520           Off  | 0000:00:06.0     Off |                N/A   |     
| N/A   29C    P8    17W / 125W |     11MiB /  4095MiB |           0% Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+ 
| Processes:                                                       GPU Memory | 
|  GPU       PID  Type  Process name                               Usage      | 
|=============================================================================| 
|    0      9862    C   python34                                      3941MiB |

Eu sei com matéria Theano você pode usar múltiplos manualmente GPU de forma explícita. Faz Keras uso do suporte de múltiplas GPU? Se assim for, não é abstrato-o ou você precisa mapear os GPU para dispositivos como em Teano e explicitamente marshall cálculos para GPU específico?

Publicado 02/05/2016 em 21:20
fonte usuário
Em outras línguas...                            


1 respostas

votos
4

Formação multi-GPU é experimental ( "O código é bastante nova e ainda é considerado experimental neste momento. Ele foi testado e parece funcionar corretamente em todos os casos observados, mas certifique-se de verificar os resultados antes de publicar um papel ou qualquer coisa do tipo. ") e não foi integrado Keras ainda. No entanto, você pode usar várias GPUs com Keras com o backend Tensorflow: https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html#multi-gpu-and-distributed- formação .

Respondeu 11/05/2016 em 06:26
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more