
윈도우 환경인 워크스테이션에서 분산 학습 되도록 train 코드를 수정했더니 해당 오류가 뜸.
원인 :
해당 train에 사용된 코드는 논문에서 리눅스 환경 기준으로 작성 됨.
즉 내 워크스테이션이 윈도우 환경이라 backend NVCCL support가 없기에 생긴 문제였음.
참고로 윈도우는 gloo를 지원함.
해결책 :
train.py의 setup 함수 수정
from utils import MetricLogger, create_optimizer, init_distributed_mode, is_main_process, get_rank, optimizer_to
def setup(rank, world_size):
dist.init_process_group(
backend='gloo', # Windows에서는 NCCL을 지원하지 않으므로 GLOO를 사용
init_method='tcp://localhost:29500', # 환경 변수에서 정보를 가져오기
rank=rank,
world_size=world_size #사용 가능한 GPU 개수
)
def cleanup():
dist.destroy_process_group()