GPU slots
Check GPU occupancy, idle and waiting slots, and set up wiring as shared pool, dedicated or unwired
Required permission: Global admin
The top part of the GPU slots screen shows the free slots and the pods holding slots, and the Wiring (배선) part below shows how many slots each tenant can use. It refreshes automatically every 10 seconds.
Reading the current state
| Card | Meaning |
|---|---|
| Total slots (총 슬롯) | The sum of the GPU resources (nvidia.com/gpu) advertised by the nodes |
| In use (사용 중) | Slots held by scheduled pods |
| Idle (유휴) | Slots that can be scheduled right now |
| Waiting (대기 중) | Number of pods waiting because they could not get a slot. Waiting (Pending) is not a failure — when a slot frees up, the scheduler starts them |
Below that, the device plugin card tells you whether the plugin that advertises GPUs is alive and whether time-slicing is on. Without the plugin, the card shows "device plugin not installed (device plugin 미설치)" and the install command (kubectl apply -f scripts/serving/nvidia-device-plugin.yml). In that state GPUs are not advertised as a resource, so every pod that requests a GPU stays waiting. Installation is covered in the Installation chapter.
Further down, the Nodes (노드) table shows slot use, idle slots, time-slicing and plugin state per node, and the Pods using slots (슬롯을 쓰는 파드) table shows the pods holding or waiting for a GPU, with their node (or unscheduled), slot count and waiting reason. Use this table to find out who is holding the slots.
Wiring — three modes
Wiring is the number of GPUs allocated to each tenant, stored in the DB. Actual occupancy is always read from the cluster's live values.
| Mode | Meaning | Use when |
|---|---|---|
| Unwired (미배선) (default) | The tenant has no slots at all. Training and serving screens cannot select a GPU, and if one is requested anyway the submission is rejected (CPU still works) | The tenant does not need GPUs |
| Shared (공유) | Bound to a named shared pool. If the total occupancy of all tenants bound to the pool exceeds the pool's slot count, new submissions are rejected | Several teams take turns on a small number of GPUs |
| Dedicated (전용) | Reserves a set number of slots permanently. Other tenants cannot use that many, and this tenant's new submissions are rejected once its occupancy would exceed that number | There is serving that must always run |
Divide the slots while watching Wired (배선됨) (allocated slots), Spare slots (남는 슬롯) and Advertised total (광고 총량) in the totals row at the top. Waiting pods and queued training whose pods have not started yet also count as occupancy, so the same slot is never allocated twice.
Create a shared pool
- Press Register pool (풀 등록).
- Enter the Pool name (풀 이름) (lower-case letters, digits,
.,_and-, starting and ending with a lower-case letter or digit, up to 64 characters; cannot be changed later), the Slot count (슬롯 수) (1–1000) and a description, then press Register (등록).Register a shared pool
Use the pencil icon (Edit pool (풀 수정)) on a pool row to change its slot count and description, and the trash icon (Delete pool (풀 삭제)) to delete it. If any tenant is bound to the pool in shared mode, the server rejects the deletion (409). Move that tenant's wiring to another pool or mode first.
Wire a tenant
- In the tenant table, press Settings (설정) on the tenant's row.
- Choose a mode. For Shared (공유), choose the pool; for Dedicated (전용), set the number of Always-allocated slots (상시 할당 슬롯).
Tenant GPU wiring — unwired / shared / dedicated (dedicated selected) - Press Save (저장). From then on, that tenant's training and serving screens can select GPU resources.