> For the complete documentation index, see [llms.txt](https://genos-docs.gitbook.io/default/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://genos-docs.gitbook.io/default/v1.9.2/admin-management/settings/resource/hami-vgpu.md).

# HAMi vGPU 모드

## 개요

GenOS는 물리 GPU 1장을 여러 워크로드가 나눠 쓸 수 있도록 HAMi(Heterogeneous AI Computing Virtualization) 기반 vGPU 분할을 지원합니다. 관리자는 **관리 > 할당량 > GPU**에서 GPU 할당량(쿼터)을 만들 때 분할 방식을 선택하고, 이렇게 만든 vGPU 할당량은 LLM/임베딩/이미지 서빙, 코드서빙, 코드스페이스, 전처리기, 학습 등 리소스를 생성하는 화면에서 코어%·메모리% 단위로 쪼개 쓸 수 있습니다.

vGPU 분할이 가능하려면 클러스터에 HAMi가 설치되어 있어야 하며, HAMi 자체 설정(디바이스 플러그인·스케줄러)은 **관리 > 설정 > HAMi** 탭에서 관리자가 직접 편집할 수 있습니다. 분할된 GPU의 실제 소비 현황은 **대시보드 > GPU 대시보드 > vGPU 모니터링** 탭에서 모니터링합니다.

<figure><img src="/files/rmPcptG6o3MEBblotQv7" alt=""><figcaption><p>GPU 할당량 목록 — HAMi vGPU로 만든 할당량이 이용률과 함께 표시됩니다</p></figcaption></figure>

## 주요 개념

GPU 할당량 생성 화면의 "GPU 분할 모드" 도움말에 표시되는 설명을 기준으로 정리합니다.

| 개념             | 설명                                                                                                                                      |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| 독점 GPU (whole) | 카드를 통째로 단독 점유(정수 장 단위)합니다. 격리·성능은 최대지만 자원 효율은 낮습니다.                                                                                     |
| vGPU 분할 (vgpu) | HAMi가 카드 1장을 코어%·메모리%로 쪼개 여러 워크로드가 공유합니다. 메모리는 하드캡(초과 시 OOM), 코어는 스로틀(소프트웨어 격리)로 동작합니다. 소형 모델·다중 서빙에 효율적입니다.                            |
| MIG            | NVIDIA 하드웨어 파티셔닝(A100/H100 등)입니다. 물리적으로 분리된 인스턴스로 가장 강한 격리를 제공하지만, geometry가 고정되고 전용 노드가 필요합니다. 클러스터에 MIG 지원 노드가 없으면 선택지 자체가 노출되지 않습니다. |
| GPU 분할 모드      | GPU 할당량 생성 시 선택하는 값(독점 / vGPU / MIG)입니다. 클러스터에 HAMi가 탐지되지 않으면 vGPU·MIG 옵션은 자동으로 숨겨지고 독점 모드로 강제됩니다.                                      |
| 코어%·메모리%       | vGPU 할당량으로 만든 자원을 실제 서빙·학습 리소스에 배정할 때 입력하는 값입니다. 코어%는 0(무제한 공유)~~100 정수, 메모리%는 1~~100 정수(0 불가)만 입력할 수 있습니다.                             |
| 특정 GPU 카드에 고정  | GPU 할당량을 특정 노드의 특정 물리 GPU 인덱스에만 묶어서 만들 때 켜는 옵션입니다.                                                                                      |

## GPU 할당량 생성 — 분할 모드 선택

**관리 > 할당량 > GPU > GPU 할당량 생성**에서 제목·상세 설명·관리 그룹·유형(Serving / Train·Codespace)·GPU 종류(물리 GPU 풀)를 입력한 뒤 "GPU 분할 모드"를 선택합니다.

* 기본값은 **분할 없이 개별 GPU 사용(독점 GPU)** 입니다.
* 물음표 도움말 아이콘에 마우스를 올리면 독점 GPU·vGPU 분할·MIG 세 방식의 차이를 요약한 툴팁이 표시됩니다.

<figure><img src="/files/zZlLmBwrw37qWqv2thov" alt=""><figcaption><p>GPU 분할 모드 도움말 툴팁 — 세 가지 분할 방식의 차이 설명</p></figcaption></figure>

* "vGPU 분할"을 선택하면 **GPUs**(만들 vGPU 할당량 개수) 입력란이 나타나며, 바로 아래에 "등록된 물리 GPU 기준 최대 N개까지 생성 가능합니다" 안내 문구가 표시됩니다. 이 N은 선택한 GPU 종류(풀)에 등록된 물리 GPU 대수를 넘지 못하도록 계산된 상한이며, 상한을 초과해서 생성을 시도하면 차단됩니다.
* GPU 종류(풀)에 등록된 물리 GPU가 없으면 최대 생성 가능 개수가 0으로 표시되어 사실상 생성할 수 없습니다.

<figure><img src="/files/M2BgGCkDLj50Sw1kn2h3" alt=""><figcaption><p>vGPU 분할 선택 후 GPU 종류를 고르면 최대 생성 가능 개수 안내가 표시됩니다</p></figcaption></figure>

### 특정 GPU 카드에 고정

"특정 GPU 카드에 고정" 토글을 켜면 GPUs 개수를 직접 입력하는 대신, **분할 대상 GPU 선택(노드 + 인덱스)** 드롭다운에서 노드를 고른 뒤 그 노드의 물리 GPU 카드를 인덱스 단위 체크박스로 직접 선택합니다.

* 이미 다른 vGPU 할당량에 묶여 있는 카드는 체크박스가 비활성화되고, 어느 할당량에 묶여 있는지 안내 문구가 함께 표시됩니다. 같은 카드를 서로 다른 vGPU 할당량에 중복 고정할 수는 없습니다.
* 카드를 선택하면 GPUs 필드는 선택한 카드 수만큼 자동으로 채워지고 "선택한 카드 수로 자동 설정됩니다" 안내와 함께 직접 입력이 비활성화됩니다.
* 토글을 끄면 다시 개수만 입력하는 방식(자동 배치)으로 돌아갑니다.

<figure><img src="/files/eM6CGLJElDtakenc6oF6" alt=""><figcaption><p>특정 GPU 카드에 고정 — 이미 다른 할당량에 묶인 카드는 비활성화됩니다</p></figcaption></figure>

## 리비전 생성 시 vGPU 코어%·메모리% 입력

GPU 할당량 자체는 "몇 개의 vGPU를 만들 수 있는가"만 정의합니다. 실제 코어%·메모리% 배분은 이 vGPU 할당량을 사용하는 리소스(LLM/임베딩/이미지 서빙, 코드서빙, 코드스페이스, 전처리기, 학습)를 생성·수정하는 화면에서 이루어집니다.

코어%·메모리% 입력란 옆 도움말 아이콘을 누르면 다음 기준이 표시됩니다.

| 항목        | 규칙                                                                                                                  |
| --------- | ------------------------------------------------------------------------------------------------------------------- |
| 코어%       | 0(기본값)은 다른 작업과 GPU 연산을 나눠 쓴다는 뜻으로 점유율이 보장되지 않습니다. 1\~100 사이 값을 지정하면 그 비율만큼 코어 점유가 보장됩니다.                            |
| 메모리%      | 내 작업이 쓸 수 있는 GPU 메모리 비율입니다. 0은 입력할 수 없으며(최소 1%), 지정한 비율을 초과해서 사용하면 하드캡에 걸려 프로세스가 강제 종료될 수 있습니다.                     |
| MIG 노드    | MIG로 분할된 노드는 코어%·메모리%를 별도로 입력하지 않고, 위에서 지정한 값을 그대로 사용합니다.                                                           |
| 할당량 소진 시  | 선택한 vGPU 할당량의 가용 자원이 남아 있지 않으면 코어%·메모리% 입력란 자체가 비활성화되어, 초과 배정을 시도할 수 없습니다. 독점 GPU 풀이 소진됐을 때 자원 입력을 막는 것과 동일한 원칙입니다. |
| 카드 단편화 경고 | 여러 물리 카드에 걸쳐 vGPU를 배치해야 하는 상황이면, 카드별로 남은 자원이 부족해 배치가 쪼개질 수 있다는 사전 경고가 표시됩니다.                                        |

리비전 생성·수정 화면에서 GPU 할당량으로 vGPU 풀을 선택하면, 코어%·메모리% 입력란과 함께 그 풀에 속한 물리 카드별 잔여 자원("카드별 여유")이 카드마다 코어%·메모리% 게이지로 표시됩니다. 이미 다른 리비전이 점유 중인 카드는 여유가 적게 표시되므로, 값을 입력하기 전에 어느 카드에 여유가 있는지 미리 확인할 수 있습니다.

<figure><img src="/files/Hpgyp6dkfCF9bfg1Q1yD" alt=""><figcaption><p>리비전 생성 화면 — 코어%·메모리% 입력란과 카드별 여유 게이지</p></figcaption></figure>

## HAMi 설정 관리

**관리 > 설정 > HAMi** 탭에서 클러스터에 배포된 HAMi의 두 가지 핵심 설정을 직접 편집할 수 있습니다.

| 설정               | 형식   | 저장 시 동작                      |
| ---------------- | ---- | ---------------------------- |
| device-plugin    | JSON | 저장 시 HAMi 디바이스 플러그인이 재시작됩니다. |
| scheduler-device | YAML | 저장 시 HAMi 스케줄러가 재시작됩니다.      |

두 설정 모두 코드 에디터로 원본 텍스트를 그대로 편집합니다. 저장 시 device-plugin은 JSON 문법을, scheduler-device는 YAML 문법을 먼저 검증하며, 문법 오류가 있으면 저장 자체가 거부되고 오류 메시지가 표시됩니다. 두 설정은 독립적으로 저장할 수 있어 하나만 수정해도 됩니다.

> 이 화면은 클러스터의 HAMi 스케줄러·디바이스 플러그인 동작 방식 자체를 바꾸는 저수준 설정입니다. 변경 시 해당 워크로드가 재시작되므로 운영 중인 vGPU 서빙에 영향을 줄 수 있습니다.

<figure><img src="/files/oSXmVCNWtCRIUMVwl5YZ" alt=""><figcaption><p>HAMi 설정 — 노드 디바이스 설정 코드 에디터와 재시작 경고 배너</p></figcaption></figure>

같은 화면 하단의 **scheduler-device** 에디터는 MIG 지원 GPU의 파티셔닝 규격(geometry)을 정의하는 내용을 편집합니다. 모델별로 허용되는 MIG 분할 조합(코어·메모리·개수)을 여기서 직접 지정할 수 있습니다.

<figure><img src="/files/T1pZDCdn4IrX3mvsKZkx" alt=""><figcaption><p>HAMi 설정 — MIG Geometry 코드 에디터</p></figcaption></figure>

## vGPU 사용 현황 모니터링

**대시보드 > GPU 대시보드**에는 "현재 상태"·"사용 추이" 탭과 함께 **vGPU 모니터링** 탭이 있으며, 클러스터 전체 vGPU 메모리·코어 할당률과 물리 사용량 대비 vGPU 점유율, GPU별 할당 추이를 확인할 수 있습니다.

<figure><img src="/files/SzBV11JqY9HuLEAghyJS" alt=""><figcaption><p>GPU 대시보드 vGPU 모니터링 탭 — 클러스터 vGPU 메모리 할당률과 물리 사용량 대비 vGPU 점유율</p></figcaption></figure>

"현재 상태" 탭의 GPU 카드에는 예약량 표기가 두 가지로 나뉩니다.

* **예약량**: 독점 방식으로 예약된 정수 카드 수입니다.
* **vGPU 예약량**: vGPU 분할로 예약된 양을 카드 환산 분수로 표시합니다(예: 1.55).

두 지표가 동시에 의미 있는 경우는 실무상 거의 없으므로, vGPU 예약량이 0보다 크면 "vGPU 예약량" 한 줄만, 그렇지 않으면 "예약량" 한 줄만 표시됩니다. 또한 HAMi 스케줄러가 같은 vGPU 할당량을 여러 물리 GPU에 나눠 배치할 수 있기 때문에, 카드에 표시되는 물리 GPU 인덱스 배지 개수와 예약량 숫자가 다를 수 있으며 이는 정상 동작입니다.

GPU 대시보드 화면 자체에 대한 설명은 [GPU 대시보드](/default/v1.9.2/dashboard/overview/gpu.md)를 참고하세요.

## 오류·예외 처리

| 상황                                              | 화면 동작                                               |
| ----------------------------------------------- | --------------------------------------------------- |
| GPU 종류(풀)에 등록된 물리 GPU 대수보다 많은 vGPU 할당량을 만들려는 경우 | GPUs 입력이 최대치로 제한되고, 그 이상은 생성이 차단됩니다.                |
| 이미 다른 vGPU 할당량에 고정된 카드를 다시 선택하려는 경우             | 해당 카드 체크박스가 비활성화되고, 어느 할당량에 이미 묶여 있는지 안내 문구가 표시됩니다. |
| vGPU 할당량의 가용 자원이 소진된 상태에서 리비전을 생성·수정하려는 경우      | 코어%·메모리% 입력란이 비활성화되어 더 이상 자원을 배정할 수 없습니다.           |
| HAMi 설정 저장 시 JSON/YAML 문법이 잘못된 경우               | 저장이 거부되고, 어떤 설정의 어느 부분이 잘못됐는지 오류 메시지가 표시됩니다.        |

## 사용자 시나리오

### 소형 모델을 여러 개 같은 카드에 올리고 싶은 관리자

GPU 할당량 생성 시 "vGPU 분할"을 선택하고 GPUs 개수(또는 특정 카드 고정)를 지정해 vGPU 할당량을 만듭니다. 이후 LLM/임베딩 서빙 리비전을 생성할 때 이 할당량을 선택하고 코어%·메모리%를 모델 크기에 맞게 나눠 배정하면, 물리 카드 한 장에 여러 서빙 리비전을 동시에 올릴 수 있습니다.

### 특정 물리 카드를 지정해서 vGPU를 만들어야 하는 관리자

"특정 GPU 카드에 고정" 토글을 켜고 노드를 선택한 뒤, 아직 다른 할당량에 묶이지 않은 카드만 체크합니다. 이미 다른 vGPU 할당량에 할당된 카드는 선택할 수 없으므로 실수로 중복 배정하는 상황을 막아줍니다.

### HAMi 설정을 직접 조정해야 하는 클러스터 관리자

관리 > 설정 > HAMi 탭에서 device-plugin(JSON) 또는 scheduler-device(YAML) 내용을 코드 에디터로 수정하고 저장합니다. 저장 즉시 관련 워크로드가 재시작되므로, 운영 시간대를 피해 변경하는 것이 안전합니다.

## 함께 보기

* [인스턴스 타입 관리](/default/v1.9.2/admin-management/settings/resource/instance.md) — CPU·메모리 사양을 정의하는 인스턴스 타입 관리
* [GPU 대시보드](/default/v1.9.2/dashboard/overview/gpu.md) — GPU 및 vGPU 사용 현황 모니터링


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://genos-docs.gitbook.io/default/v1.9.2/admin-management/settings/resource/hami-vgpu.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
