Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 14 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,22 @@

For architecture details see the [Design](#design) section.

## Prequisities

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Correct the heading spelling.

Change Prequisities to Prerequisites.

🧰 Tools
🪛 LanguageTool

[grammar] ~7-~7: Ensure spelling is correct
Context: ... see the Design section. ## Prequisities - KAI-scheduler Version: ≥ 0.17.0 ## Qu...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` at line 7, Correct the README heading spelling by changing
“Prequisities” to “Prerequisites,” leaving the surrounding content unchanged.

Source: Linters/SAST tools


- **KAI-scheduler Version**: ≥ 0.17.0

## Quick Start

### 1. Deploy KAI-Scheduler with GPU sharing enabled

Follow the [KAI-Scheduler deployment guide](https://github.com/NVIDIA/KAI-Scheduler/blob/main/docs/gpu-sharing/gpu-sharing.md) and enable `gpushare` and `hamicore`:

```bash
helm install kai-scheduler oci://ghcr.io/nvidia/kai-scheduler \
helm install kai-scheduler oci://ghcr.io/kai-scheduler/kai-scheduler/kai-scheduler \
--set global.gpuSharing=true \
--set binder.plugins.hamicore.enabled=true \
--namespace kai-scheduler --create-namespace
--namespace kai-scheduler --create-namespace \
--version v0.17.0
```

### 2. Deploy kai-resource-isolator
Expand All @@ -24,10 +29,14 @@ Install directly from the OCI registry:
```bash
helm install kai-resource-isolator oci://docker.io/projecthami/kai-resource-isolator \
--namespace kai-resource-isolator --create-namespace \
--version 1.0.0-chart
--set monitor.enabled=true \
--set monitor.serviceMonitor.enabled=true \
Comment on lines +32 to +33

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Document the ServiceMonitor dependency.

The chart creates ServiceMonitor only when monitoring.coreos.com/v1 is available. Without the Prometheus Operator CRD, Helm succeeds but automatic scraping is not configured.

Add this prerequisite or state that monitor.serviceMonitor.enabled=true is effective only when the CRD exists.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 32 - 33, Update the README configuration guidance
around monitor.serviceMonitor.enabled to document that automatic scraping
requires the Prometheus Operator monitoring.coreos.com/v1 ServiceMonitor CRD,
and state that the setting has no effect when that CRD is unavailable.

--version 1.1.0-chart
Comment thread
archlitchi marked this conversation as resolved.
```

Note: Chart versions carry a `-chart` suffix (e.g. `1.0.0-chart`). Available versions are listed at [projecthami/kai-resource-isolator](https://hub.docker.com/r/projecthami/kai-resource-isolator/tags) on Docker Hub.
The default `monitor.nodeSelector` is `nvidia.com/gpu.present: "true"` (NVIDIA GPU feature discovery). Set `monitor.runtimeClassName=nvidia` if NVML is only available through the NVIDIA runtime handler in your cluster.

Note: Chart versions carry a `-chart` suffix (e.g. `1.1.0-chart`). Available versions are listed at [projecthami/kai-resource-isolator](https://hub.docker.com/r/projecthami/kai-resource-isolator/tags) on Docker Hub.

## Build

Expand All @@ -38,25 +47,14 @@ git submodule update --init --recursive
docker build -f docker/Dockerfile -t <registry>/<project>/kai-resource-isolator:<tag> .
```

## Per-container VRAM metrics (optional)
## Per-container VRAM metrics

`kai-vgpu-monitor` is a DaemonSet that reads the shared-memory cache `libvgpu.so` writes for each GPU container and exposes HAMi-compatible gauges (`hami_vgpu_memory_used_bytes`, `hami_vgpu_memory_limit_bytes`, `hami_container_device_utilization_ratio`, …) by using

```
curl {pod ip}:9394/metrics
```

It is disabled by default because it runs privileged and needs NVML. Enable it on GPU nodes:

```bash
helm upgrade --install kai-resource-isolator oci://docker.io/projecthami/kai-resource-isolator \
--namespace kai-resource-isolator --create-namespace \
--set monitor.enabled=true \
--set monitor.serviceMonitor.enabled=true
```

The default `monitor.nodeSelector` is `nvidia.com/gpu.present: "true"` (NVIDIA GPU feature discovery). Set `monitor.runtimeClassName=nvidia` if NVML is only available through the NVIDIA runtime handler in your cluster.

## Customization

Tune `paths.containerVgpuMount` and `webhook.gpuShareResources` for your environment and HAMi extended resource names.
Expand Down
Loading