设定:
一切正常,但是当我增加批量大小以加快培训时,我在大型模型上耗尽了视频内存。我认为转向4 GPU系统理论上可以提高总可用内存或允许更小批量构建更快,但是观察nvidia统计数据,我可以看到默认情况下只使用一个GPU:
+------------------------------------------------------+
| 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 |
我知道使用原始Theano你可以明确地手动使用多个GPU。 Keras是否支持使用多个GPU?如果是这样,它是抽象它还是你需要像在Theano中那样将GPU映射到设备并明确地将计算编组到特定的GPU?
答案 0 :(得分:4)
多GPU培训是experimental(“代码相当新,此时仍被认为是实验性的。它已经过测试,似乎在所有观察到的情况下都能正常运行。但请务必仔细检查在发表论文或其他任何类型之前你的结果。“)并没有被整合到Keras中。但是,您可以将带有Keras的多个GPU与Tensorflow后端一起使用:https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html#multi-gpu-and-distributed-training。