# Batch trên GPU

Source: https://docs.vieneu.io/vi/docs/sdk/fast-mode

Trên GPU CUDA v3 Turbo tự batch. Một `infer()` dài tự gom các chunk của chính nó; `infer_batch()` gom nhiều văn bản vào một lượt forward. Cùng API, không đổi code.

:::note Trang đã đổi tên
Trang này trước đây mô tả "fast mode" LMDeploy cho VieNeu-TTS v2. Backend đó giờ là đồ cũ; xem cuối trang.
:::

## infer_batch {#infer_batch}

```python
from vieneu import Vieneu

tts = Vieneu()                                   # CUDA → engine PyTorch
texts = [
    "Chào cả nhà, hôm nay mình sẽ hướng dẫn các bạn cách cài đặt bộ giọng đọc mới.",
    "Giọng nghe cực kỳ tự nhiên và truyền cảm.",
    "Nếu thấy hữu ích, nhớ để lại một lượt thích nhé!",
] * 10

audios = tts.infer_batch(texts, voice="Minh Quân Pro")
for i, a in enumerate(audios):
    tts.save(a, f"batch_{i}.wav")
```

- Chunk của mọi văn bản dùng chung từng bước forward, đó là nguồn gốc của lợi ích thông lượng.
- Cỡ batch chặn ở `max_batch_size` (mặc định 32). Chỉnh bằng `Vieneu(max_batch_size=64)` hoặc `infer_batch(..., batch_size=64)`; `batch_size=1` tắt batch.
- Trên CPU `infer_batch` vẫn chạy, chỉ là tuần tự, nên không nhanh thêm.
- Cần phát thời gian thực thì dùng [`infer_stream`](/docs/sdk/streaming). Đó là bản song sinh dạng stream, phục vụ 16 người nghe cùng lúc trên một GPU.

## CUDA graph (3.7.0+) {#cuda-graphs-370}

Mỗi frame âm thanh là một lần replay CUDA graph duy nhất: bộ giải mã âm học, lấy mẫu, phạt lặp và bước backbone trong một nhát. Không `torch.compile`, không cần bộ dịch C++.

Đo trên RTX 3060:

| Đầu vào | Audio | Thời gian chạy | Trước 3.7.0 |
|---|---|---|---|
| Một câu | 3,5 s | 0,36 s | 2,3 s |
| Đoạn hai chunk | 19 s | 1,4 s | 8,7 s |
| 16 chunk | 154 s | 2,8 s (RTF 0,02) | 16,7 s |

Lần gọi đầu cho mỗi cỡ batch tốn ~0,5 s để bắt graph, sau đó giữ lại. Server có thể gọi `tts.warm_fused()` lúc khởi động. `VIENEU_FUSED_FRAME=0` quay về vòng lặp thường khi cần gỡ lỗi.

## Yêu cầu {#requirements}

- GPU NVIDIA. RTX 3060 (12 GB) cho các số trên; ~6 GB là đủ để suy luận.
- Cài theo [Cài đặt & backend](/docs/sdk/standard-mode#gpu-cuda): trên Windows cài torch CUDA 2.8.0 trước, `transformers==4.57.6`, rồi `vieneu`.

## Mô hình fine-tune {#fine-tuned-models}

Bản v3 Turbo đã merge LoRA giữ trọn API, kể cả batch:

```python
tts = Vieneu(mode="v3turbo", backbone_repo="finetune/output/my_voice/merged")
```

Xem [Fine-tuning](/docs/advanced/fine-tuning) và [`finetune/README.md`](https://github.com/pnnbao97/VieNeu-TTS/blob/main/finetune/README.md) trong repo.

## Đồ cũ: chế độ "fast" LMDeploy (chỉ v2) {#legacy-lmdeploy-fast-mode-v2-only}

`Vieneu(mode="fast")` nạp VieNeu-TTS v1/v2 qua LMDeploy. Giữ lại cho các hệ đang chạy (`pip install "vieneu[legacy]"`, hoặc `uv sync --group gpu` trong repo), không cập nhật thêm. v3 Turbo trên PyTorch nhanh hơn và không cần runtime phụ.
