2016-05-02 5 views
8

Setup:Comment activer Keras avec Théano d'utiliser plusieurs processeurs graphiques

  • L'utilisation d'un système Linux Amazon avec un GPU Nvidia
  • J'utilise Keras 1.0.1
  • Exécution Théano backend v0.8.2
  • Utilisation CUDA et CuDNN
  • THEANO_FLAGS = "device = GPU, floatX = float32, lib.cnmem = 1"

Tout fonctionne bien, mais je n'ai plus de mémoire vidéo sur les grands modèles lorsque j'augmente la taille du lot pour accélérer l'entraînement. Je me dis que passer à un système 4 GPU serait en théorie soit améliorer la mémoire totale disponible ou permettre aux petits lots de construire plus rapidement, mais en observant les stats nvidia, je peux voir un seul GPU est utilisé par défaut:

+------------------------------------------------------+ 
| 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 | 

I savoir avec Theano brut, vous pouvez utiliser manuellement plusieurs GPU explicitement. Est-ce que Keras prend en charge l'utilisation de plusieurs GPU? Si oui, le résume-t-il ou avez-vous besoin de mapper les GPU à des dispositifs comme dans Theano et de faire explicitement appel à des GPU spécifiques?

Répondre

4

La formation Multi-GPU est experimental ("Le code est plutôt nouveau et est toujours considéré comme expérimental à ce stade.Il a été testé et semble fonctionner correctement dans tous les cas observés, mais assurez-vous de vérifier vos résultats avant publier un article ou quoi que ce soit de ce genre. ") et n'a pas encore été intégré à Keras. Cependant, vous pouvez utiliser plusieurs GPU avec Keras avec le backend Tensorflow: https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html#multi-gpu-and-distributed-training.

+0

Avez-vous entendu des progrès dans ce domaine au cours de la dernière année? Je sais que Tensorflow comme prévu est en train de manger dans la base de Theano, donc je suis flexible avec l'un ou l'autre backend. – Ray

+0

@Ray: Je ne suis pas sûr du côté de Theano, mais je vous recommande de passer à Tensorflow si vous avez l'option. –