# task-932.2: GTX 1060 GPU Whisper 벤치마크 보고서

- 작업자: 다그다 (dev3-team, 재위임 from dev4)
- 작성일: 2026-03-25
- 데이터 출처: `/home/jay/workspace/teams/dev4/task-932.2/benchmark_results.json`
- 벤치마크 스크립트: `/home/jay/workspace/teams/dev4/task-932.2/benchmark.py`

---

## SCQA

**S**: InsuWiki는 faster-whisper + CPU int8 설정으로 보험 강의 음성을 텍스트로 전사하고 있다. 서버에 GTX 1060 6GB(CC 6.1, CUDA 12.2)가 장착되어 있으나 GPU를 활용하지 않는 상태다.

**C**: CPU int8으로 5분 오디오 전사에 medium 모델 기준 185초(3분 5초)가 소요되어, 긴 강의 처리에 병목이 된다. GTX 1060은 float16을 지원하지 않아 GPU 활용 자체가 불가능하다는 오해가 있었다.

**Q**: GTX 1060 6GB에서 Whisper GPU 가속이 가능한가? 가능하다면 최적 모델+compute_type 조합과 속도 향상 수치는?

**A**: **가능하다.** float16만 불가하고, float32/int8_float32/int8 모두 GPU에서 정상 작동한다. medium+int8 조합이 최적으로, CPU 대비 **6.3배 빠르고** VRAM 878MB만 사용한다. 5분 오디오 전사가 185초 → 29초로 단축된다.

---

## 1. 핵심 발견

- **GPU 활용 가능**: float16만 에러(ValueError). float32, int8_float32, int8 모두 GPU에서 작동
- **large-v2 + float32**: CUDA OOM (6GB 초과). int8_float32/int8로는 작동하나 VRAM 한계에 근접
- **모든 모델에서 float16 불가**: GTX 1060(CC 6.1)은 효율적 float16 연산 미지원 (CTranslate2 제약)
- **int8 vs int8_float32**: 속도·VRAM 사실상 동일. 전사 품질도 차이 없음

---

## 2. 벤치마크 결과 (5분 한국어 오디오 기준)

### tiny 모델

- GPU float32: 전사 5.15s, VRAM 270MB, CPU 대비 **16.9x**
- GPU int8_float32: 전사 4.03s, VRAM 142MB, CPU 대비 **21.6x**
- GPU int8: 전사 3.98s, VRAM 142MB, CPU 대비 **21.9x**
- CPU int8 (baseline): 전사 87.10s, VRAM 68MB
- GPU float16: ValueError (미지원)

### base 모델

- GPU float32: 전사 6.45s, VRAM 430MB, CPU 대비 **3.0x**
- GPU int8_float32: 전사 5.74s, VRAM 174MB, CPU 대비 **3.3x**
- GPU int8: 전사 5.73s, VRAM 174MB, CPU 대비 **3.3x**
- CPU int8 (baseline): 전사 19.17s, VRAM 68MB
- GPU float16: ValueError (미지원)

### small 모델

- GPU float32: 전사 16.14s, VRAM 1038MB, CPU 대비 **3.2x**
- GPU int8_float32: 전사 12.18s, VRAM 366MB, CPU 대비 **4.2x**
- GPU int8: 전사 12.18s, VRAM 366MB, CPU 대비 **4.2x**
- CPU int8 (baseline): 전사 51.60s, VRAM 68MB
- GPU float16: ValueError (미지원)

### medium 모델

- GPU float32: 전사 39.56s, VRAM 3310MB, CPU 대비 **4.7x**
- GPU int8_float32: 전사 29.22s, VRAM 878MB, CPU 대비 **6.3x**
- GPU int8: 전사 29.25s, VRAM 878MB, CPU 대비 **6.3x**
- CPU int8 (baseline): 전사 185.21s, VRAM 68MB
- GPU float16: ValueError (미지원)

### large-v2 모델

- GPU float32: **CUDA OOM** (6GB 초과)
- GPU int8_float32: 전사 49.18s, VRAM 피크 6020MB(위험), CPU 대비 **5.3x**
- GPU int8: 전사 48.37s, VRAM 피크 2510MB, CPU 대비 **5.4x**
- CPU int8 (baseline): 전사 259.42s, VRAM 68MB
- GPU float16: ValueError (미지원)

---

## 3. 최적 설정 권장

### GTX 1060 6GB 최적 조합

**용도 1 — 빠른 처리 (속도 우선)**
- 모델: `small`, compute_type: `int8`, device: `cuda`
- 5분 오디오 → 12.2초 (CPU 대비 4.2배), VRAM 366MB
- VRAM 여유 충분, 안정적 운용 가능

**용도 2 — 높은 정확도 (품질 우선)** ★ 권장
- 모델: `medium`, compute_type: `int8`, device: `cuda`
- 5분 오디오 → 29.3초 (CPU 대비 6.3배), VRAM 878MB
- 전사 품질이 small보다 우수, VRAM 6GB 중 878MB만 사용하여 안정적

**용도 3 — 최대 정확도 (주의 필요)**
- 모델: `large-v2`, compute_type: `int8`, device: `cuda`
- 5분 오디오 → 48.4초 (CPU 대비 5.4배), VRAM 피크 2510MB
- 작동하나 로딩 시 VRAM 피크가 높아 다른 GPU 작업과 병행 시 OOM 위험
- int8_float32는 피크 6020MB로 6GB 한계에 근접하여 비추천

### 비추천 조합
- **float32**: VRAM 낭비 (medium 3310MB vs int8 878MB). 속도도 더 느림
- **float16**: GTX 1060에서 미지원
- **large-v2 + float32**: OOM 에러
- **large-v2 + int8_float32**: VRAM 피크 6020MB, 불안정

---

## 4. InsuWiki 적용 방안

현재 설정(CPU + int8)을 GPU 최적 설정으로 변경하는 방법:

### 코드 변경 포인트

```python
# 변경 전 (현재)
model = WhisperModel("medium", device="cpu", compute_type="int8")

# 변경 후 (GPU 최적)
model = WhisperModel("medium", device="cuda", compute_type="int8")
```

**변경은 `device` 파라미터 1개뿐이다.** compute_type은 동일하게 int8 유지.

### 기대 효과
- 5분 오디오 전사: 185초 → 29초 (6.3배 단축)
- 1시간 강의(60분) 추정: ~37분 → ~6분 (실시간 대비 0.1배)
- VRAM 사용: 878MB / 6144MB (14.3%)

### 주의사항
- GPU 드라이버 및 CUDA 12.2 설치 확인 필요
- 다른 GPU 작업(예: AI 추론)과 동시 실행 시 VRAM 경합 가능
- large-v2는 정확도 최고지만 VRAM 부담이 있으므로, medium+int8이 안정적 선택

---

## 산출물
1. 보고서: `memory/reports/task-932.2.md` (본 문서)

## 발견 이슈 및 해결

### 범위 외 미해결 (1건)
1. **large-v2 int8_float32 VRAM 피크 6020MB** — 범위 외 사유: 벤치마크 보고만 수행. 실제 적용 시 medium+int8 권장으로 회피 가능
