# Menggunakan GPU Spaces

Anda dapat meningkatkan Space Anda untuk menggunakan akselerator GPU dengan menggunakan tombol _Pengaturan_ di bilah navigasi atas Space. Anda bahkan dapat meminta peningkatan gratis jika Anda sedang membangun demo keren untuk proyek sampingan!

> [!TIP]
> Dalam jangka panjang, kami juga ingin membuka akses untuk perangkat keras non-GPU, seperti HPU, IPU, atau TPU. Jika Anda memiliki perangkat keras AI tertentu yang ingin Anda gunakan, silakan beri tahu kami (website di huggingface.co).

Begitu Space Anda berjalan di GPU, Anda dapat melihat perangkat keras apa yang digunakan langsung dari lencana ini:

## Spesifikasi Perangkat Keras

Pada tabel-tabel berikut, Anda dapat melihat Spesifikasi untuk berbagai opsi upgrade.

### CPU

| **Perangkat Keras**           | **CPU**       | **Memori**   | **Memori GPU**  | **Disk**  | **Harga per Jam**  |
|----------------------- |-------------- |------------- |---------------- |---------- | ----------------- |
| Dasar CPU              | 2 vCPU        | 16 GB        |  -              | 50 GB     | Gratis!             |
| Upgrade CPU            | 8 vCPU        | 32 GB        |  -              | 50 GB     | $0.03             |

> [!NOTE]
> CPU Basic tidak memiliki biaya per jam, tetapi membuat Space baru yang berjalan di compute (Gradio atau Docker) memerlukan paket berbayar. Static Spaces gratis untuk semua orang. Lihat [Ringkasan Spaces](./spaces-overview#hardware-resources) untuk detailnya.

### GPU

| **Perangkat Keras**           | **CPU**       | **Memori**   | **Memori GPU**  | **Disk**  | **Harga per Jam**  |
|----------------------- |-------------- |------------- |---------------- |---------- | ----------------- |
| Nvidia T4 - kecil      | 4 vCPU        | 15 GB        | 16 GB           | 50 GB     | $0.40             |
| Nvidia T4 - sedang     | 8 vCPU        | 30 GB        | 16 GB           | 100 GB    | $0.60             |
| 1x Nvidia L4           | 8 vCPU        | 30 GB        | 24 GB           | 400 GB    | $0.80             |
| 4x Nvidia L4           | 48 vCPU       | 186 GB       | 96 GB           | 3200 GB   | $3.80             |
| 1x Nvidia L40S         | 8 vCPU        | 62 GB        | 48 GB           | 380 GB    | $1.80             |
| 4x Nvidia L40S         | 48 vCPU       | 382 GB       | 192 GB          | 3200 GB   | $8.30             |
| 8x Nvidia L40S         | 192 vCPU      | 1534 GB      | 384 GB          | 6500 GB   | $23.50            |
| 1x Nvidia RTX PRO 6000 | 23 vCPU       | 256 GB       | 96 GB           | 475 GB    | $2.75             |
| 2x Nvidia RTX PRO 6000 | 46 vCPU       | 512 GB       | 192 GB          | 950 GB    | $5.50             |
| 4x Nvidia RTX PRO 6000 | 92 vCPU       | 1024 GB      | 384 GB          | 1900 GB   | $11.00            |
| 8x Nvidia RTX PRO 6000 | 184 vCPU      | 2048 GB      | 768 GB          | 3800 GB   | $22.00            |
| Nvidia A10G - kecil    | 4 vCPU        | 15 GB        | 24 GB           | 110 GB    | $1.00             |
| Nvidia A10G - besar    | 12 vCPU       | 46 GB        | 24 GB           | 200 GB    | $1.50             |
| 2x Nvidia A10G - besar | 24 vCPU       | 92 GB        | 48 GB           | 1000 GB   | $3.00             |
| 4x Nvidia A10G - besar | 48 vCPU       | 184 GB       | 96 GB           | 2000 GB   | $5.00             |
| Nvidia A100 - besar    | 12 vCPU       | 142 GB       | 80 GB           | 1000 GB   | $2.50             |
| ~~Nvidia H100~~ *(dihapus Desember 2025)* | | | | | |
| ~~8x Nvidia H100~~ *(dihapus Desember 2025)* | | | | | |
| 4x Nvidia A100         | 48 vCPU       | 568 GB       | 320 GB          | 4000 GB    | $10.00    |         
| 8x Nvidia A100         | 96 vCPU       | 1136 GB      | 640 GB          | 8000 GB    | $20.00    | 

## Konfigurasi perangkat keras secara programatik

Anda dapat mengonfigurasi perangkat keras Space secara programatik menggunakan `huggingface_hub`. Hal ini memungkinkan berbagai kasus penggunaan di mana Anda perlu mengalokasikan GPU secara dinamis. Lihat [panduan ini](https://huggingface.co/docs/huggingface_hub/main/en/guides/manage_spaces) untuk detail lebih lanjut.

## Kebutuhan spesifik framework[[frameworks]]

Sebagian besar Spaces seharusnya dapat berjalan langsung setelah upgrade GPU, tetapi terkadang Anda perlu menginstal versi CUDA dari framework machine learning yang Anda gunakan. Silakan ikuti panduan ini untuk memastikan Space Anda memanfaatkan peningkatan hardware.

### PyTorch

Anda perlu menginstal versi PyTorch yang kompatibel dengan driver CUDA bawaan. Menambahkan dua baris berikut ke file `requirements.txt` Anda seharusnya berhasil:

```
--extra-index-url https://download.pytorch.org/whl/cu113
torch
```

Anda dapat memverifikasi apakah instalasi berhasil dengan menjalankan kode berikut di `app.py` Anda dan memeriksa output di log Space Anda:

```Python
import torch
print(f"Is CUDA available: {torch.cuda.is_available()}")
# True
print(f"CUDA device: {torch.cuda.get_device_name(torch.cuda.current_device())}")
# Tesla T4
```

Banyak framework secara otomatis menggunakan GPU jika tersedia. Hal ini berlaku untuk Pipelines di 🤗 `transformers`, `fastai`, dan banyak lainnya. Dalam kasus lain, atau jika Anda menggunakan PyTorch secara langsung, Anda mungkin perlu memindahkan model dan data Anda ke GPU untuk memastikan komputasi dilakukan pada akselerator dan bukan pada CPU. Anda dapat menggunakan sintaks `.to()` dari PyTorch, misalnya:

```Python
model = load_pytorch_model()
model = model.to("cuda")
```

### JAX

Jika Anda menggunakan JAX, Anda perlu menentukan URL yang berisi paket yang kompatibel dengan CUDA. Silakan tambahkan baris berikut ke file `requirements.txt` Anda:

```
-f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
jax[cuda11_pip]
jaxlib
```

Setelah itu, Anda dapat memverifikasi instalasi dengan mencetak output dari kode berikut dan memeriksanya di log Space Anda.

```Python
import jax

print(f"JAX devices: {jax.devices()}")
# JAX devices: [StreamExecutorGpuDevice(id=0, process_index=0)]
print(f"JAX device type: {jax.devices()[0].device_kind}")
# JAX device type: Tesla T4
```

### TensorFlow

Instalasi `tensorflow` bawaan seharusnya mengenali perangkat CUDA. Cukup tambahkan `tensorflow` ke file `requirements.txt` Anda dan gunakan kode berikut di `app.py` Anda untuk memverifikasi di log Space Anda.

```Python
import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
# [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
```

## Penagihan

Penagihan pada Spaces didasarkan pada penggunaan perangkat keras dan dihitung per menit: Anda akan dikenakan biaya untuk setiap menit Space berjalan pada perangkat keras yang diminta, terlepas dari apakah Space tersebut digunakan atau tidak.

Selama siklus hidup Space, biaya hanya dikenakan saat Space berstatus `Starting` atau `Running`. Artinya, tidak ada biaya yang timbul selama proses build.

Jika Space yang sedang berjalan mulai gagal, Space tersebut akan ditangguhkan secara otomatis dan penagihan akan dihentikan.

Spaces yang berjalan di perangkat keras gratis akan ditangguhkan secara otomatis jika tidak digunakan dalam jangka waktu yang lama (misalnya dua hari). Spaces yang ditingkatkan berjalan tanpa batas secara default, bahkan jika tidak ada penggunaan. Anda dapat mengubah perilaku ini dengan [menetapkan "waktu tidur" khusus](#sleep-time) di pengaturan Space. Untuk menghentikan penagihan pada Space Anda, Anda dapat mengubah Hardware menjadi CPU basic, atau [jeda](#pause) Space tersebut.

Informasi tambahan tentang penagihan dapat ditemukan di [bagian khusus untuk seluruh Hub](./billing).

### Community GPU Grants 

Apakah Anda memiliki Space yang luar biasa tetapi membutuhkan bantuan untuk menutupi biaya peningkatan perangkat keras GPU? Kami senang membantu mereka yang memiliki Space inovatif, jadi silakan ajukan permohonan hibah GPU komunitas dan lihat apakah Space Anda lolos! Permohonan ini dapat ditemukan di pengaturan repo perangkat keras Space Anda di sudut kiri bawah di bawah "pengaturan waktu tidur":

![Community GPU Grant](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/ask-for-community-grant.png)

## Atur waktu tidur kustom[[sleep-time]]

Jika Space Anda berjalan di perangkat keras `cpu-basic` bawaan, Space tersebut akan masuk ke mode tidur jika tidak aktif selama lebih dari batas waktu tertentu (saat ini, 48 jam). Siapa pun yang mengunjungi Space Anda akan memulainya secara otomatis.

Jika Anda ingin Space Anda tidak pernah dinonaktifkan atau jika Anda ingin mengatur waktu tidur kustom, Anda perlu meningkatkan ke perangkat keras berbayar.

Secara default, Space yang sudah di-upgrade tidak akan pernah masuk ke mode tidur. Namun, Anda dapat menggunakan pengaturan ini agar Space yang sudah di-upgrade menjadi idle (tahap `stopped`) saat tidak digunakan 😴. Anda tidak akan dikenakan biaya untuk hardware yang sudah di-upgrade selama ia dalam keadaan tidur. Space akan 'bangun' atau di-restart kembali begitu menerima pengunjung baru.

Antarmuka berikut kemudian akan tersedia di pengaturan perangkat keras Spaces Anda:

Opsi berikut tersedia:

## Replika

Anda dapat menskalakan Space secara horizontal dengan meminta beberapa replika. Hal ini mendistribusikan lalu lintas di antara beberapa instans Space Anda untuk meningkatkan ketersediaan dan throughput. Anda dapat mengatur jumlah replika melalui API:

```
POST https://huggingface.co/api/spaces/{namespace}/{repo}/replicas
Content-Type: application/json

{
  "replicas": 2
}
```

> [!NOTE]
> Replicas hanya tersedia untuk perangkat keras yang sudah di-upgrade (berbayar). Setiap replica ditagih secara independen.

## Streaming Log, Peristiwa, dan Metrik[[streaming]]

Anda dapat streaming log real-time, event status, dan metrik dari Space Anda melalui SSE (Server-Sent Events):

- **Membangun atau menjalankan log**: `GET /api/spaces/{namespace}/{repo}/logs/{build|run}`
- **Peristiwa status**: `GET /api/spaces/{namespace}/{repo}/events`
- **Metriks**: `GET /api/spaces/{namespace}/{repo}/metrics`

Endpoint ini memerlukan autentikasi dan mengembalikan data menggunakan [protokol SSE](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events).

Endpoint log menerima parameter query opsional `tail` (bilangan bulat non-negatif) untuk membatasi respons ke N baris log terakhir:

```
GET /api/spaces/{namespace}/{repo}/logs/{build|run}?tail=100
```

## Menjeda Space[[pause]]

Anda dapat `pause` sebuah Space dari pengaturan repo. Space yang "paused" berarti Space tersebut ditangguhkan dan tidak akan menggunakan sumber daya hingga di-restart secara manual. Siapa pun yang memiliki akses tulis ke Space tersebut dapat melakukan `pause` atau restart. Waktu saat paused tidak ditagihkan.

