GPU 미사용 — CUDA 오류 500
박스에 NVIDIA GPU가 있는데도 추론이 CPU에서 실행됩니다. 추론 컨테이너 로그에 다음이 표시됩니다:
CUDA failure 500: named symbol not found... resolved to CPU only대시보드의 Python Inference 카드에 TensorRT나 CUDA 대신 CPU (fallback)가 표시됩니다. 엄격한 GPU 강제 적용이 켜져 있으면 컨테이너가 대신 종료되고 계속 재시작됩니다.
결정적인 테스트는 NVIDIA의 자체 컴퓨트 샘플입니다. 호스트에서 실행하세요:
docker run --rm --gpus all nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda12.5.0- 정상 호스트 →
Test PASSED를 출력합니다. - 손상된 호스트 →
Failed to allocate device vector A (error code named symbol not found)!
nvidia-smi -L로 GPU가 나열되는데도 이 샘플이 실패하면, 컨테이너에서 컴퓨트 용도로 GPU를
사용할 수 없습니다. 문제는 호스트 GPU 스택이지 Xisom 이미지가 아닙니다.
실행 중인 컨테이너 로그에서도 폴백을 확인할 수 있습니다:
docker compose -f docker-compose.release.yml logs inference | grep -E "CUDA failure 500|resolved to CPU"이것은 플랫폼 드라이버 계층의 호스트 수준 GPU 컴퓨트 문제이므로, 해결은 호스트에서 이루어집니다 — Xisom 스택이 아닙니다.
-
호스트의 NVIDIA GPU 드라이버를 완전한 CUDA 컴퓨트 지원을 갖춘 최신 빌드로 업데이트합니다. Windows + WSL2 호스트에서는 이후
wsl --update를 실행한 뒤wsl --shutdown도 실행하세요. -
새로 고친 드라이버에 컨테이너 런타임을 다시 연결합니다:
Terminal window sudo nvidia-ctk runtime configure --runtime=dockersudo systemctl restart docker -
컴퓨트 샘플이
Test PASSED를 출력할 때까지 다시 실행합니다:Terminal window docker run --rm --gpus all nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda12.5.0 -
추론 컨테이너를 재시작하고 GPU를 인식했는지 확인합니다. 구성 변경은 필요 없습니다 — 기본 실행 모드가 사용 가능한 최적의 공급자를 자동 선택합니다:
Terminal window docker compose -f docker-compose.release.yml restart inferencedocker compose -f docker-compose.release.yml logs inference | grep "EP enabled"# 예상: "TensorRT EP enabled" 또는 "CUDA EP enabled"
호스트가 아직 손상된 동안
섹션 제목: “호스트가 아직 손상된 동안”GPU 프로브와 씨름하는 대신 CPU에서 깔끔하게 실행하세요. 추론 서비스에
EXECUTION_MODE=cpu(또는 FORCE_CPU=1)를 설정하고 재시작합니다. 드라이버가 수정될
때까지 박스는 CPU에서 계속 예측합니다.
손상된 호스트에서 GPU 모드와 함께 엄격한 GPU 강제 적용(STRICT_EP=1)을 켜지 마세요 —
조용히 CPU로 동작하는 대신 올바르게 시작을 거부하게 되며, 이는 우회 작업 중 원하는 것과
정반대입니다.
- GPU가 필수인 곳에서는 조용한 CPU 폴백을 시끄럽게 만드세요. 반드시 GPU에서 실행해야
하는 박스에서는 공급자를 고정하고 엄격한 강제 적용(
EXECUTION_MODE=cuda+STRICT_EP=1)을 켜서, GPU 라이브러리가 없으면 조용히 CPU로 저하되는 대신 시작 시 컨테이너가 실패하도록 하세요. - GPU 드라이버나 호스트 업데이트 후 컴퓨트 샘플을 합격 게이트로 취급하세요 —
nvidia-smi통과만으로는 추론이 GPU를 사용한다는 충분한 증거가 아닙니다. - 첫 실행은 느린 것이지 멈춘 것이 아닙니다. 첫 GPU 시작 시 엔진이 컴파일되고 캐시됩니다(2~3분). 이후 재시작은 빠릅니다. 긴 시작 구간을 위 실패와 혼동하지 마세요.
관련 항목
섹션 제목: “관련 항목”- GPU 예상 시 CPU에서 실행됨 — 호스트 GPU는 정상이나 공급자가 여전히 등급을 낮출 때.
- 하드웨어 설정 — 지원되는 GPU 등급.
- 관측성 및 알림 — 활성 공급자가 표시되는 곳.