ys memos

Blog

InternalError: Failed copying input tensor について


gpu

2020/12/27

VSCodeの拡張機能(Jupyter)を使って*.ipynbで機械学習を扱っていたところ、表記のエラーが起こった。


InternalError: Failed copying input tensor
               from /job:localhost/replica:0/task:0/device:CPU:0
               to /job:localhost/replica:0/task:0/device:GPU:0
               in order to run Min: Dst tensor is not initialized. [Op:Min]

いろいろ探ってみたところ、GPUのメモリが足らない事が原因であった。

Geforceを使っているので、nvidia-smiコマンドによってGPUのステータスを確認することができる。

以下、通常時とエラー発生時のGPUのステータスを貼る。

注釈をつけた行を見ると、/usr/bin/python3がGPUのメモリを圧迫していることがわかった。


$ nvidia-smi

Sun Dec 27 01:27:48 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI XXX.XX.XX    Driver Version: XXX.XX.XX    CUDA Version: XX.X     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce RTX 207...  Off  | 00000000:0A:00.0  On |                  N/A |
| 52%   25C    P5    24W / 215W |    669MiB /  7959MiB |      7%      Default |    <- この行を見てね
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      XXXX      G   /usr/lib/XXXX/XXXX                 53MiB |
|    0   N/A  N/A      XXXX      G   /usr/lib/XXXX/XXXX                259MiB |
|    0   N/A  N/A      XXXX      G   /usr/bin/XXXXXXXXXXX               76MiB |
|    0   N/A  N/A      XXXX      G   ...AAAAAAAA== --shared-files       39MiB |
|    0   N/A  N/A      XXXX      G   ...AAAAAAAAA= --shared-files       30MiB |
|    0   N/A  N/A    XXXXXX      G   ...AAAAAAAA== --shared-files      194MiB |
+-----------------------------------------------------------------------------+

$ nvidia-smi

Sun Dec 27 01:26:41 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI XXX.XX.XX    Driver Version: XXX.XX.XX    CUDA Version: XX.X     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce RTX 207...  Off  | 00000000:0A:00.0  On |                  N/A |
| 52%   25C    P8    22W / 215W |   7611MiB /  7959MiB |     12%      Default |    <- この行を見てね
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      XXXX      G   /usr/lib/XXXX/XXXX                 53MiB |
|    0   N/A  N/A      XXXX      G   /usr/lib/XXXX/XXXX                277MiB |
|    0   N/A  N/A      XXXX      G   /usr/bin/XXXXXXXXXXX               82MiB |
|    0   N/A  N/A      XXXX      G   ...AAAAAAAA== --shared-files       39MiB |
|    0   N/A  N/A      XXXX      G   ...AAAAAAAAA= --shared-files       30MiB |
|    0   N/A  N/A    XXXXXX      G   ...AAAAAAAA== --shared-files      194MiB |
|    0   N/A  N/A    XXXXXX      G   ...AAAAAAAAA= --shared-files       69MiB |
|    0   N/A  N/A    161454      C   /usr/bin/python3                 6845MiB |    <- この行も見てね
+-----------------------------------------------------------------------------+

根本的な解決を目指す場合は、GPUをより高性能なものにする必要がある。

しかし通常(私も)、PCの構成を変えずに解決したいだろう。

その場合、以下がいいのではないだろうか。というか、これくらいしか対処方法が思い浮かばない。

  • notebook内で扱うメモリを減らす
  • メモリを適宜解法
  • 学習と評価を別のカーネルで行えるようにする

これを機にGPUを買い直す場合は、GPUのよくあるベンチマークだけでなく、グラフィックスメモリという項目を確認しておくと良い。

関連タグを探す