Python TensorflowのGPU設定について質問です
Python KerasのバックエンドであるTensorflowをGPUで動かしたいと思い、
以下のようなテストプログラムを作成しました
テストプログラム
config = tf.ConfigProto(
gpu_options=tf.GPUOptions(
per_process_gpu_memory_fraction=0.50,
),
)
sess = tf.Session(config=config)
keras.backend.set_session(sess)
with tf.device("/gpu:1"):
model = Sequential()
model.add(~)
~~~省略~~~
model.compile(~)
model.fit(~)
score = model.evaluate(x_test, y_test, verbose=0)
print(score)
今回はGPUにおいて50%のメモリを使用させたいと思っています。
しかし、NVIDIAのnvidia-smi.exeを用いて、メモリ使用量を計測したところ、
想定したメモリ使用量を超えてしまいます。
具体的に、メモリ使用量が以下のようになりました。
「テストプログラム実行前」
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 411.31 Driver Version: 411.31 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GPU-A TCC | 00000000:03:00.0 Off | 0 |
| 30% 60C P8 24W / 235W | 1MiB / 11422MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 GPU-B WDDM | 00000000:04:00.0 On | Off |
| 38% 38C P8 13W / 150W | 330MiB / 8192MiB | 1% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 1 920 C+G Insufficient Permissions N/A |
| 1 1936 C+G ...es (x86)\Internet Explorer\IEXPLORE.EXE N/A |
| 1 2676 C+G C:\Windows\Explorer.EXE N/A |
+-----------------------------------------------------------------------------+
「テストプログラム実行中」
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 411.31 Driver Version: 411.31 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GPU-A TCC | 00000000:03:00.0 Off | 0 |
| 29% 64C P0 125W / 235W | 6064MiB / 11422MiB | 80% Default |
+-------------------------------+----------------------+----------------------+
| 1 GPU-B WDDM | 00000000:04:00.0 On | Off |
| 38% 39C P8 14W / 150W | 4575MiB / 8192MiB | 3% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 788 C ...\Python\Python36_GPU\Scripts\python.exe 5927MiB |
| 1 788 C ...\Python\Python36_GPU\Scripts\python.exe N/A |
| 1 920 C+G Insufficient Permissions N/A |
| 1 1936 C+G ...es (x86)\Internet Explorer\IEXPLORE.EXE N/A |
| 1 2676 C+G C:\Windows\Explorer.EXE N/A |
+-----------------------------------------------------------------------------+
プログラム実行によって、GPU-Aでは6063MiB。GPU-Bでは4245MiBのメモリ使用量増加がみられます
これは指定した50%を明らかに超えています
どうしてなのでしょうか?