Joonas' Note

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

    오류

    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