Setup:Come abilitare Keras con Theano di utilizzare più GPU
- Utilizzando un sistema di Amazon Linux con una GPU Nvidia
- sto usando Keras 1.0.1
- Esecuzione Theano v0.8.2 backend
- Uso CUDA e CuDNN
- THEANO_FLAGS = "device = gpu, floatX = float32, lib.cnmem = 1"
Tutto funziona correttamente, ma esaurisco la memoria video su modelli di grandi dimensioni quando aumento le dimensioni del batch per accelerare l'allenamento. Immagino passare a un sistema a 4 GPU sarebbe, in teoria, sia migliorare la memoria totale disponibile o consentire lotti più piccoli per costruire più velocemente, ma osservando le statistiche nvidia, posso vedere una sola GPU è usato di default:
+------------------------------------------------------+
| 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 Conoscere con Theano crudo è possibile utilizzare manualmente più GPU in modo esplicito. Keras supporta l'uso di più GPU? In tal caso, lo astraggono o è necessario mappare le GPU ai dispositivi come in Theano e calcolarne esplicitamente i marshall in GPU specifici?
Avete sentito dei progressi in questo anno o giù di lì? So che Tensorflow come previsto sta mangiando nella base di Theano, quindi sono flessibile con entrambi i backend. – Ray
@Ray: Non sono sicuro sulla fine di Theano, ma consiglierei di passare a Tensorflow per questo se avete la possibilità. –