⚙️환경설정-Failed to initialize NVML: GPU access blocked by the operating system

zioni·2025년 11월 30일

HDC 랩스 NOVA1기

목록 보기
6/6
post-thumbnail

🚨 오류 발생

🐧 WSL : Failed to initialize NVML: GPU access blocked by >the operating system

0. 🐹내 환경

  • OS : Windows (RTX 4060 노트북)
  • GPU : NVIDIA GeForce RTX 4060
  • WSL : Ubuntu-24.04, WSL2
  • Python/딥러닝용 환경은 conda 사용

1. 🚨 문제 상황

딥러닝 환경 세팅 중에 WSL(Ubuntu)에서 GPU가 잘 잡히는지 확인하려고:

nvidia-smi

를 쳤더니, 아래처럼 에러가 뜸.

Failed to initialize NVML: GPU access blocked by the operating system
Failed to properly shut down NVML: GPU access blocked by the operating system

처음엔 conda 환경이 꼬였나, CUDA 설치가 잘못됐나 싶어서 가상환경도 지우고 다시 만들고 별 짓을 다 했는데… 전혀 해결이 안 됨

▶️ 그래서 윈도우 쪽에서 바로 nvidia-smi를 쳐봤더니:

nvidia-smi

→ 여기서는 정상적으로 GPU 정보가 잘 나옴.

🐹 드라이버나 GPU 자체 문제는 아니고, WSL에서만 접근이 막힌 상태


2. 📄 에러 메시지가 의미하는 것

Failed to initialize NVML: GPU access blocked by the operating system

여기서 포인트는 딱 두 가지

  1. NVML 초기화 실패
    • nvidia-smi는 내부적으로 NVML(NVIDIA Management Library) 를 사용해서 GPU 몇 개, 메모리 사용량 얼마… 같은 정보를 읽어옴
    • 초기화에 실패했다는 건 NVML이 GPU에 아예 붙지를 못했다는 뜻
  2. GPU access blocked by the operating system
    • 이건 곧 운영체제(Windows)가 WSL 쪽으로 GPU를 아직 안 열어줬다는 말이다
    • 즉, conda / CUDA 설치 문제가 아니라 OS & WSL 레벨의 문제

정리하면,

Windows에선 GPU 잘 보이는데, WSL 쪽이 예전 상태/커널로 돌아가면서 GPU 패스스루가 막혀 있는 상황


3. 🐹 원인 정리

내 경우에는 크게 보면 이 조합이었다:

  • Windows에서 NVIDIA 드라이버는 이미 잘 설치되어 있었고, Windows PowerShell에서 nvidia-smi도 잘 됨
  • 하지만 WSL은 예전 커널/설정 상태로 계속 떠 있던 것 같고, 그 상태에서는 GPU 공유가 제대로 안 돼서 OS가 접근을 막고 있었다

▶️ WSL을 최신으로 업데이트하고 완전히 리스타트 해주지 않아서 생긴 문제


4. 해결 과정

4-1. WSL/커널 업데이트

관리자 권한 PowerShell에서:

wsl --update
  • WSL 커널과 /usr/lib/wsl/lib 쪽 라이브러리가 최신으로 올라가면서 GPU 패스스루 관련 부분도 같이 업데이트

4-2. 기존 WSL 인스턴스 완전 종료

같은 PowerShell에서:

wsl --shutdown
  • 지금 떠 있는 모든 WSL 인스턴스를 완전히 종료
  • 이것 때문에 새로 Ubuntu를 열면 방금 업데이트된 커널/설정으로 새로 시작

4-3. 다시 Ubuntu에서 확인

이제 Ubuntu 터미널을 다시 열고:

nvidia-smi

→ 이번엔 아래처럼 정상적으로 RTX 4060 정보가 뜸 🎉


5. ✅ 체크 포인트

5-1. Windows에서 먼저 nvidia-smi 확인

WSL 문제인지, 아예 드라이버 문제인지부터 분리하기:

nvidia-smi
  • 여기서 에러 → 드라이버 설치/업데이트
  • 여기서 정상 → WSL 쪽 문제

5-2. WSL이 꼭 WSL2인지 확인

wsl -l -v
  • 내 Ubuntu 옆에 VERSION2여야 GPU 사용 가능
  • 만약 1이면:
    wsl --set-version Ubuntu-24.04 2
    

6. 해결 프로세스

Failed to initialize NVML: GPU access blocked by the operating system

  1. Windows PowerShell

    nvidia-smi
    
    • 안 되면 → NVIDIA 드라이버 설치/업데이트부터.
  2. WSL 설정 확인

    wsl -l -v
    
    • Ubuntu가 WSL2인지 확인.
  3. WSL 업데이트 & 재시작

    wsl --update
    wsl --shutdown
    
  4. Ubuntu 재실행 후

    nvidia-smi
    

🐹 이번 케이스도 결국 3번(wsl 업데이트 + shutdown) 으로 깔끔하게 해결됐다

profile
Seoul National University of Science and Technology, Architectural Engineering (B.S.)

0개의 댓글