[PyTorch] RuntimeError: DataLoader worker is killed by signal: Bus error.

Joonas' Note

[PyTorch] RuntimeError: DataLoader worker is killed by signal: Bus error. 본문

AI/딥러닝

[PyTorch] RuntimeError: DataLoader worker is killed by signal: Bus error.

2022. 5. 30. 13:08 joonas 읽는데 1분
  • 오류
  • 해결 방법

오류

RuntimeError: DataLoader worker is killed by signal: Bus error. It is possible that dataloader's workers are out of shared memory. Please try to raise your shared memory limit.

DataLoader를 사용하는 코드에서 worker를 너무 많이 사용해서 공유 메모리가 부족해진 문제이다.

공유 메모리의 용량을 늘리면 당연히 해결되겠지만, 그럴 수 없는 경우도 있다.

해결 방법

Linux 계열의 경우에는 df -h 명령어로 메모리 사용 현황을 확인할 수 있다.

Filesystem     Size  Used Avail Use% Mounted on
overlay        1.8T  202G 1.5T   13% /
tmpfs           64M     0  64M    0% /dev
tmpfs          126G     0 126G    0% /sys/fs/cgroup
shm            1.0G   52M 973M    6% /dev/shm           # <<<<< Shared Memeory
...

num_workers 값을 조정해보면서, 공유 메모리의 한계를 넘어가지 않는 값을 잘 찾으면 된다.

Comments