Closed Don9wanKim closed 2 years ago
bug가 아닌 문의인데 제가 label을 잘못 달았네요.
parallelformers에서는 parallelize(..., master_port=YOUR_MASTER_PORT)
와 같이 마스터포트를 변경하시고 사용하시면 됩니다.
참고로 GPT2 모델의 경우 OSLO에서도 지원이 되고 있습니다. parallelformers에 개선된 부분이 많으니 OSLO 사용을 권장드립니다.
빠른 답변 정말 감사드립니다. OSLO도 어제 deployment 부분이 추가 된 것을 확인했습니다. 이후 OSLO로 변경해볼 예정이에요 ㅎㅎ 답변 감사드려요.
말씀해주신 부분을 수정해서 위의 문제가 해결되었습니다. : )
추가적으로 조금 더 질문을 드리자면,
parallelize 를 호출 할때, num_gpus 를 int 로 입력받게 되어 있고 이를 environments 를
init_environments 메소드에서 os.environ["CUDA_VISIBLE_DEVICES"] = ", ".join([str(i) for i in range(num_gpus)] ) 로 할당하게 되는데요.
Flask 하나의 앱 안에서 다중 모델을 로딩할 때 저 부분을 어떤식으로 조절해야 CUDA_VISIBLE_DEVICES 를 제가 원하는 타깃 디바이스에 올릴 수 있을까요?
현재 제가 했던 방법은 parallelize 에서 os.environ["CUDA_VISIBLE_DEVICES"] 를 변경 후 호출을 했는데, 실질적으로는 위의 코드를 타면서 결국 같은 GPU에 할당하는 것 같더라구요.
지금은 딱히 그렇게 수행하는걸 지원하고 있지는 않습니다. 추후에 추가하면 말씀드리겠습니다.
연말인데 늦게 까지 답변 감사합니다. : )
How to reproduce
Environment