Keras 多 GPU 似乎重载其中一张卡

数据挖掘 神经网络 喀拉斯 张量流 显卡 库达
2022-02-17 18:01:29

我正在使用 Keras(tf 后端)来训练神经网络;我正在使用 Keras 中的多 gpu 选项使用 GPU 进行加速。

出于某种原因,该程序似乎重载了其中一张卡,而其他卡只加载了少量。请参阅下面的输出nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.40.04    Driver Version: 418.40.04    CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| 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  | 000004C3:00:00.0 Off |                    0 |
| N/A   73C    P0    75W / 149W |  10954MiB / 11441MiB |     75%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla K80           Off  | 0000268A:00:00.0 Off |                    0 |
| N/A   49C    P0    74W / 149W |  10954MiB / 11441MiB |     23%      Default |
+-------------------------------+----------------------+----------------------+
|   2  Tesla K80           Off  | 0000B08A:00:00.0 Off |                    0 |
| N/A   51C    P0    72W / 149W |  10954MiB / 11441MiB |     21%      Default |
+-------------------------------+----------------------+----------------------+
|   3  Tesla K80           Off  | 0000E703:00:00.0 Off |                    0 |
| N/A   65C    P0    62W / 149W |  10954MiB / 11441MiB |     21%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

为什么会这样?这是否意味着其他卡没有为这项工作做出尽可能多的贡献?

编辑:

对 multi_gpu_model 的调用是:

model = Model(inputs=[lsi, hi, hm, hc, hsc, ni, *embed_inputs], outputs=o)
model = multi_gpu_model(model, gpus=len(K.tensorflow_backend._get_available_gpus())) # transfer to multi-gpu so we're using all of them.

请注意,我使用的是keras.utils.multi_gpu_model而不是tf...版本。它似乎起作用,因为它肯定会导致所有 4 个 GPU 都处于某种负载下,这只是奇怪的不平衡。

0个回答
没有发现任何回复~