# OCR Runtime Modes

Backend OCR bisa dijalankan dalam mode CPU atau GPU lewat konfigurasi `OCR_USE_GPU`.

## Cara Pakai

Mode CPU:

```powershell
.\update.ps1 -OcrMode cpu
```

Mode GPU:

```powershell
.\update.ps1 -OcrMode gpu
```

Jika parameter tidak diberikan, `update.ps1` memakai nilai yang sudah ada di `.env`.

```env
OCR_USE_GPU=false
```

atau:

```env
OCR_USE_GPU=true
```

## Perilaku Script

- `-OcrMode cpu` menyimpan `OCR_USE_GPU=false` ke `.env`.
- `-OcrMode gpu` menyimpan `OCR_USE_GPU=true` ke `.env`.
- Script tidak menghapus package Paddle/CUDA yang sudah terpasang.
- Dalam mode GPU, script akan memasang `paddlepaddle-gpu` dan runtime cuDNN/cuBLAS jika belum ada.
- Dalam mode CPU, script hanya memasang `paddlepaddle` CPU jika belum ada runtime Paddle sama sekali.

## Catatan

Mode CPU tidak membutuhkan CUDA, cuDNN, atau driver NVIDIA.

Mode GPU membutuhkan NVIDIA driver dan runtime CUDA/cuDNN yang cocok. Pada Windows, backend juga menambahkan folder DLL NVIDIA dari `.venv` secara otomatis sebelum PaddleOCR diinisialisasi.

`TABLES_ENABLED` adalah konfigurasi terpisah dari mode CPU/GPU. Jika PP-Structure belum stabil di environment lokal, biarkan:

```env
TABLES_ENABLED=false
```
