エラー内容
MMSegmentationを使用していると以下のようなエラーがでることがある。
File "/workspace/mmsegmentation/mmseg/models/losses/accuracy.py", line 49, in accuracy
correct = correct[:, target != ignore_index]
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: CUDA error: an illegal memory access was encountered
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.
解決法
チュートリアルにも記載があるが、以下のようにSyncBN
をBN
に、Configファイルを変更する。
変更前
cfg.norm_cfg = dict(type='SyncBN', requires_grad=True)
変更後
# Since we use only one GPU, BN is used instead of SyncBN
cfg.norm_cfg = dict(type='BN', requires_grad=True)