본문 바로가기

일상

Windows에서 faster-whisper GPU로 돌리기 (CUDA/cuDNN 세팅, '쿠다 인식 안 됨' 잡기)

반응형

faster-whisper를 설치했는데 GPU를 안 쓰고 CPU로만 돌아 답답하게 느린 경우가 많습니다. 대부분 CUDA/cuDNN 환경이 안 맞아서인데, Windows에서 GPU로 제대로 돌리기까지의 세팅과 자주 막히는 지점을 정리합니다. (기본 설치와 메모리 부족(OOM)은 이전 글에서 다뤘고, 이 글은 GPU 인식 자체가 안 되는 경우입니다.)


1. 증상: 분명 GPU가 있는데 CPU로 돈다
faster-whisper에 device="cuda"를 줬는데도 느리거나, 아예 에러가 나면서 CPU로 떨어지는 경우입니다. GPU 자체 문제가 아니라 파이썬이 CUDA 라이브러리를 못 찾는 게 대부분입니다. 먼저 GPU 인식 여부부터 확인합니다.



- torch.cuda.is_available()가 False면 토치가 CUDA를 못 잡은 것
- nvidia-smi가 GPU/드라이버를 보여주면 하드웨어/드라이버는 정상
- 즉 문제는 거의 항상 라이브러리(토치 빌드, cuDNN) 쪽


2. 준비물 세 가지: 드라이버, CUDA 런타임, cuDNN
순서가 중요합니다. NVIDIA 그래픽 드라이버가 먼저 깔려 있어야 하고(nvidia-smi로 확인), 그다음 CUDA를 지원하는 토치, 마지막으로 cuDNN입니다. faster-whisper는 내부적으로 CTranslate2를 쓰는데, 이게 cuDNN을 직접 요구합니다.


- NVIDIA 드라이버: nvidia-smi가 동작하면 OK
- CUDA 지원 PyTorch: CPU 버전이 아니라 cu118/cu121 같은 빌드로 설치
- cuDNN: CTranslate2(=faster-whisper 백엔드)가 요구하는 핵심


3. CUDA 버전 PyTorch 설치
그냥 pip install torch로 받으면 CPU 버전이 깔리는 경우가 있습니다. 공식 안내대로 CUDA 빌드를 명시해 설치해야 GPU를 씁니다. 설치 후 위의 is_available() 체크로 True가 나오는지 꼭 확인합니다.



- pip install 시 index-url로 cu121 등 CUDA 빌드 지정
- 기존 CPU 토치가 있으면 먼저 제거 후 재설치
- 설치 후 torch.version.cuda로 CUDA 버전 확인


4. faster-whisper의 진짜 관문: cuDNN
GPU가 잡혔는데도 모델을 돌리는 순간 cuDNN 관련 DLL을 못 찾는다는 에러가 나는 경우가 흔합니다. CTranslate2가 cuDNN을 동적으로 로드하기 때문인데, cuDNN DLL이 경로(PATH)에 있어야 합니다. 토치와 함께 들어오는 cuDNN을 쓰거나, 별도 cuDNN을 받아 경로에 추가합니다.



- "Could not load library cudnn..." 류 에러 = cuDNN DLL 경로 문제
- 토치 패키지 안의 cuDNN 경로를 PATH에 추가하면 해결되는 경우 많음
- cuDNN 버전과 CUDA 버전이 호환되어야 함(불일치 시 로드 실패)


5. 동작 확인: 작은 파일로 한 번 돌려보기
환경이 맞았는지는 짧은 오디오 하나를 device="cuda", compute_type="float16"으로 돌려 확인합니다. 처리 중 nvidia-smi로 GPU 사용률이 올라가면 GPU로 도는 것입니다. compute_type을 int8로 낮추면 메모리를 아낄 수 있습니다.


- device="cuda", compute_type="float16"으로 기본 동작 확인
- 처리 중 nvidia-smi에서 GPU-Util/메모리 사용이 올라가면 성공
- 메모리가 빠듯하면 compute_type="int8" 또는 작은 모델로


6. 정리: 막히면 이 순서로 점검
GPU가 안 잡히면 위에서 아래로 하나씩 짚으면 대부분 잡힙니다. 드라이버(nvidia-smi) -> 토치 CUDA 빌드(is_available) -> cuDNN DLL 경로 순서입니다. 셋 중 하나만 어긋나도 CPU로 떨어지거나 로드 에러가 납니다.


- 1) nvidia-smi 동작? (드라이버)
- 2) torch.cuda.is_available() True? (CUDA 토치)
- 3) cuDNN DLL 로드 OK? (CTranslate2 요구사항)


함께 보면 좋은 글:
- 패스터위스퍼(faster-whisper)로 한국어 음성을 텍스트로 (GPU 메모리 부족까지 잡기) - 기본 전사와 GPU 메모리 부족(OOM)


여기까지 Windows에서 faster-whisper를 GPU로 돌리기 위한 CUDA/cuDNN 세팅과 '쿠다 인식 안 됨'을 잡는 방법에 대해서 작성해봤습니다. 여기까지 읽어주셔서 감사합니다!

반응형