- Published on
B200 CUDA Error 802, MIG 활성화로 해결한 이상한 경험
- Authors

- Name
- Borris
- Developer
안녕하세요 테크팀 borris 입니다.
저희 회사는 웹툰 이미지 학습/생성을 통해 웹툰 제작을 지원하는 서비스를 운영하고 있습니다. 운영하는 서비스의 학습/생성 기능을 AWS의 B200 인스턴스를 통해 테스트 해보았고 발생된 문제를 해결한 경험을 공유하고자 합니다.
시작과 동시에 발생한 문제
AWS EC2에서는 DLAMI(Deep Learning AMI)를 제공하는데 이것은 딥러닝 어플리케이션을 빠르고 쉽게 생성할 수 있도록 미리 구성된 AMI(Amazon Machine Image)를 말합니다. B200 인스턴스 생성시 Ubuntu 기반의 DLAMI를 사용하여 인스턴스를 생성하였고, Pytorch, Nvidia 드라이버, Cuda 등 딥러닝에 필요한 라이브러리가 미리 설치되어 있어 학습/생성 서비스를 테스트를 진행 해보았습니다. 하지만 시작과 동시에 문제가 발생했습니다.
UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount().
Did you run some cuda functions before calling NumCudaDevices() that might have already set an error?
Error 802: system not yet initialized
(Triggered internally at /pytorch/c10/cuda/CUDAFunctions.cpp:109.)
return torch._C._cuda_getDeviceCount() > 0
CUDA available: False
CUDA가 정상적으로 동작하지 않는다는 경고 메시지가 출력되었고, GPU를 사용하지 못하는 상황이였습니다. nvidia-smi 명령어를 통해 GPU 상태를 확인해보니 드라이버도 설치가 되어있고 GPU도 정상적으로 인식하고 있었습니다.
내가 한일
- Nvidia MIG 모드 비활성화 인지 확인
- Nvidia 드라이버를 최신 또는 구버전으로 설치
- 설치한 Nvidia 드라이버 버전에 맞는 FabricManager를 설치 하고 fabricmanager.cfg 설정을 수정
- CUDA Toolkit 12.6부터 12.9까지 설치하고 PyTorch 재설치
- NVIDIA DGX OS 7 User Guide 참고하여 CUDA, 드라이버, FabricManager 재설치
- nvidia-smi 명령어로 GPU 상태 확인하고 torch.cuda.is_available() 코드 실행
위의 방법을 시도 해보았지만 문제는 아무것도 해결되지 않았습니다. 똑같은 에러만 반복적으로 출력이 되고 있었습니다.
이 문제 해결을 위해서 방법을 찾는데 시간이 많이 걸릴꺼 같아 B200의 사용목적중 하나인 MIG(Multi-Instance GPU)를 설정하여 테스트 해보기로 하였습니다.
MIG 활성화 및 문제 해결
MIG는 하나의 GPU를 여러 개의 가상 GPU로 분할하여 사용할 수 있는 기능입니다. B200 인스턴스는 MIG를 제공하고 있기에 우선 MIG 3g.90gb으로 분할했습니다. 그리고 분할된 가상 GPU를 통해 torch.cuda.is_available() 코드 실행을 했더니 문제가 해결되었습니다.
이어서 학습/생성 서비스를 분할된 GPU를 통해서 테스트 해보니 정상적으로 동작하는 것을 확인 할 수 있었습니다. 그리고 가상으로 분할된 GPU를 통해서 학습 및 생성의 효율이 어떻게 되는지 테스트도 해보았고 원하는 결과도 얻었습니다.
마무리
원하는 결과는 얻긴 했지만 B200안에서 MIG 비활성화 상태에서 CUDA가 정상적으로 동작하지 않는지에 대한 의문은 남아있습니다.
반대의 상황 MIG가 활성화 되어있는데 CUDA가 정상적으로 동작하지 않는 경우는 있을 수 있는데 MIG가 비활성화 되어있는데 CUDA가 정상적으로 동작하지 않는 경우는 잘 이해가 되지 않고 있습니다.
커뮤니티에 보면 MLNX_OFED가 제데로 설치되지 않아서 발생하는 문제라고 하는데 확인은 해보지 못했습니다.
B200을 사용하면서 비슷한 문제를 겪고 계신 분들에게 이 글이 도움이 되었으면 합니다. 위의 링크에 있는 내용으로 해결을 보셨다면 댓글로 남겨주시면 감사하겠습니다.