147 lines
3.2 KiB
Markdown
147 lines
3.2 KiB
Markdown
# CUDNN 버전 불일치 문제 - 빠른 해결 방법
|
|
|
|
## 문제 상황
|
|
- 설치된 CUDNN: **9.12** (`cudnn64_9.dll`)
|
|
- PaddlePaddle 요구: **8.x** (`cudnn64_8.dll`)
|
|
- 오류: `cudnn64_8.dll을 찾을 수 없습니다`
|
|
|
|
---
|
|
|
|
## ⚡ 당장 사용하기 (CPU 모드)
|
|
|
|
### 방법 1: 설정 파일에 추가 (권장)
|
|
|
|
프로그램의 설정 파일(또는 toggle_states를 관리하는 곳)에 다음 추가:
|
|
|
|
```python
|
|
toggle_states = {
|
|
# ... 기존 설정들 ...
|
|
'force_cpu_ocr': True, # ← 이 한 줄 추가!
|
|
# ... 나머지 설정들 ...
|
|
}
|
|
```
|
|
|
|
### 방법 2: 환경 변수로 GPU 비활성화
|
|
|
|
프로그램 실행 전에 명령어 실행:
|
|
|
|
**Windows (CMD):**
|
|
```cmd
|
|
set CUDA_VISIBLE_DEVICES=
|
|
python main.py
|
|
```
|
|
|
|
**Windows (PowerShell):**
|
|
```powershell
|
|
$env:CUDA_VISIBLE_DEVICES=""
|
|
python main.py
|
|
```
|
|
|
|
**Linux/Mac:**
|
|
```bash
|
|
export CUDA_VISIBLE_DEVICES=
|
|
python main.py
|
|
```
|
|
|
|
### 방법 3: 코드에서 직접 강제 (임시)
|
|
|
|
`src/modules/ocr_module.py` 파일 14번째 줄 수정:
|
|
|
|
```python
|
|
# 변경 전:
|
|
def __init__(self, logger=None, base_dir=None, gpu_manager=None, force_cpu=False):
|
|
|
|
# 변경 후:
|
|
def __init__(self, logger=None, base_dir=None, gpu_manager=None, force_cpu=True):
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 GPU 사용하기 (CUDNN 8 설치)
|
|
|
|
### 1. CUDNN 8.9.7 다운로드
|
|
- 링크: https://developer.nvidia.com/cudnn
|
|
- CUDA 11.x용 CUDNN 8.9.7 선택
|
|
- NVIDIA 계정 로그인 필요
|
|
|
|
### 2. 설치 (Windows)
|
|
```
|
|
1. 다운로드한 zip 파일 압축 해제
|
|
2. 아래 파일들을 복사:
|
|
|
|
📁 CUDNN 압축 해제 폴더
|
|
├── bin/cudnn64_8.dll
|
|
├── include/*.h
|
|
└── lib/x64/*.lib
|
|
|
|
↓ 복사 →
|
|
|
|
📁 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.x\
|
|
├── bin/cudnn64_8.dll
|
|
├── include/*.h
|
|
└── lib/x64/*.lib
|
|
```
|
|
|
|
### 3. 환경 변수 확인
|
|
- PATH에 포함되어야 함:
|
|
```
|
|
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.x\bin
|
|
```
|
|
|
|
### 4. 프로그램 재시작
|
|
- `force_cpu_ocr: False` 설정 또는 제거
|
|
- GPU 가속 사용 가능!
|
|
|
|
---
|
|
|
|
## 📊 성능 비교
|
|
|
|
| 모드 | 처리 속도 | 설정 난이도 |
|
|
|------|----------|------------|
|
|
| **CPU** | ⭐⭐ (느림) | ⭐⭐⭐ (쉬움) |
|
|
| **GPU (CUDNN 8)** | ⭐⭐⭐⭐⭐ (빠름) | ⭐⭐ (보통) |
|
|
|
|
---
|
|
|
|
## ✅ 정상 작동 확인
|
|
|
|
프로그램 로그에서 다음 메시지 확인:
|
|
|
|
**CPU 모드:**
|
|
```
|
|
⚠️ OCR 모듈 CPU 강제 모드 (CUDNN 버전 불일치 회피)
|
|
✅ PaddleOCR CPU 모드 초기화 성공
|
|
```
|
|
|
|
**GPU 모드:**
|
|
```
|
|
OCR 모듈 CUDA 모드 활성화
|
|
✅ PaddleOCR GPU 모드 초기화 성공
|
|
```
|
|
|
|
---
|
|
|
|
## 💡 추천
|
|
|
|
- **개발/테스트**: CPU 모드 (설정 간단)
|
|
- **대량 처리**: GPU 모드 (CUDNN 8 설치 필요)
|
|
- **혼용**: CUDNN 8과 9 동시 설치 (다른 CUDA 버전 폴더에)
|
|
|
|
---
|
|
|
|
## 🔍 문제 해결
|
|
|
|
### "여전히 같은 오류가 발생해요"
|
|
1. 프로그램 완전 종료 후 재시작
|
|
2. Python 캐시 삭제: `__pycache__` 폴더 삭제
|
|
3. 환경 변수가 제대로 설정되었는지 확인
|
|
|
|
### "CPU 모드가 너무 느려요"
|
|
- CUDNN 8.x 설치 권장 (위 가이드 참고)
|
|
- 또는 배치 처리로 효율성 향상
|
|
|
|
### "GPU와 CPU를 상황에 따라 전환하고 싶어요"
|
|
- `force_cpu_ocr` 설정을 UI에서 토글 가능하도록 구현
|
|
- 프로그램 재시작 없이 전환 가능
|
|
|