-
Notifications
You must be signed in to change notification settings - Fork 110
docs: add concept-to-lab cross-links (addresses #656) #774
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -100,3 +100,13 @@ HAMi-core fills it. **KAI Scheduler does the scheduling, HAMi-core does the isol | |||||||||
| | NVIDIA stacks, gang-scheduled training or batch needing hard isolation | KAI Scheduler | NVIDIA-native gang scheduling, fair queues, fractional GPU, plus HAMi-core hard isolation | | ||||||||||
|
|
||||||||||
| > HAMi's own two-level `nvidia.com/priority` is a **runtime** preemption mechanism scoped to a single GPU. If you need **scheduling-level** multi-level priority across a queue of jobs, combine HAMi with one of the partners above. See the [FAQ](../faq/faq.md) for details. | ||||||||||
|
|
||||||||||
| :::tip Try it yourself | ||||||||||
|
|
||||||||||
| Try these ecosystem integrations in hands-on labs: | ||||||||||
|
|
||||||||||
| - [Lab 8: Volcano vGPU with Gang Scheduling and Queues](/tutorials/labs/volcano-vgpu-gang-queue) — deploy Volcano alongside HAMi and test gang scheduling with GPU shares | ||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win Clarify that Lab 8 uses Volcano vGPU with HAMi-core. The current wording can suggest a standard HAMi device-plugin installation that the lab explicitly prohibits. (project-hami.io)
📍 Affects 2 files
🤖 Prompt for AI AgentsSource: MCP tools |
||||||||||
| - [Lab 9: Queue HAMi vGPU Workloads with Kueue](/tutorials/labs/kueue-hami-vgpu) — set up Kueue ResourceFlavors for HAMi vGPUs and enforce queue-level quotas | ||||||||||
| - [Lab 12: Verify KAI Scheduler and HAMi Memory Isolation on GKE](/tutorials/labs/kai-scheduler-hami-gke) — combine KAI Scheduler with HAMi-core for hard GPU isolation | ||||||||||
|
Comment on lines
+109
to
+110
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Same issue applies here. |
||||||||||
|
|
||||||||||
| ::: | ||||||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -89,3 +89,11 @@ Call chain: | |||||
| - If `lsmod` shows the nvidia module but `nvidia-smi` reports an error, the problem is at the user-space library or permission level | ||||||
|
|
||||||
| Therefore, when troubleshooting GPU issues, it is recommended to start with `lsmod | grep nvidia` to confirm the kernel module status, and then use `nvidia-smi` to check whether user space is functioning normally. | ||||||
|
|
||||||
| :::tip Try it yourself | ||||||
|
|
||||||
| Explore GPU driver internals with a hands-on lab: | ||||||
|
|
||||||
| - [Lab 5: Fake-GPU Scheduling with nvml-mock](/tutorials/labs/nvml-mock) — simulate NVML device discovery and see how the driver layer reports GPU resources to Kubernetes | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
The lab focuses specifically on NVML-based GPU discovery and how HAMi reports those resources to Kubernetes. |
||||||
|
|
||||||
| ::: | ||||||
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -216,3 +216,12 @@ graph LR | |||||||||
| | **GPU Operator** | NVIDIA Operator, automates deployment and management of the full GPU software stack | | ||||||||||
| | **HAMi** | GPU virtualization middleware, supporting fine-grained partitioning and sharing of memory and compute | | ||||||||||
| | **HAMi Device Plugin** | HAMi's device plugin, replaces the native Device Plugin and supports GPU partition reporting | | ||||||||||
|
|
||||||||||
| :::tip Try it yourself | ||||||||||
|
|
||||||||||
| Explore the GPU software stack with hands-on labs: | ||||||||||
|
|
||||||||||
| - [Lab 1: Online Installation of HAMi](/tutorials/labs/online-install) — walk through every layer of the stack from driver to HAMi scheduler | ||||||||||
| - [Lab 5: Fake-GPU Scheduling with nvml-mock](/tutorials/labs/nvml-mock) — see how the NVML layer and Device Plugin interact without real GPU hardware | ||||||||||
|
Comment on lines
+224
to
+225
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
|
||||||||||
| ::: | ||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -248,3 +248,13 @@ Here are some recommended next steps: | |||||||||||||
|
|
||||||||||||||
| - Learn about HAMi's [architecture](./architecture.md) | ||||||||||||||
| - [Install HAMi](../installation/prerequisites.md) in your Kubernetes cluster | ||||||||||||||
|
|
||||||||||||||
| :::tip Try it yourself | ||||||||||||||
|
|
||||||||||||||
| Put these concepts into practice with the following hands-on labs: | ||||||||||||||
|
|
||||||||||||||
| - [Lab 3: GPU Partitioning with HAMi](/tutorials/labs/gpu-partitioning) — partition a single GPU across multiple Pods and verify VRAM limits | ||||||||||||||
| - [Lab 7: GPU Isolation on k3s Without the GPU Operator](/tutorials/labs/hami-isolation-k3s) — verify end-to-end memory isolation on a lightweight cluster | ||||||||||||||
| - [Lab 6: Run vLLM on HAMi GPU Shares](/tutorials/labs/hami-vllm) — serve an LLM on shared GPU resources with HAMi | ||||||||||||||
|
Comment on lines
+256
to
+258
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||
|
|
||||||||||||||
| ::: | ||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -360,3 +360,12 @@ Throughout this process, each layer fulfills its role: Kubernetes provides the s | |||||||||
| | Visualization Layer | HAMi WebUI | GPU resource visualization | | ||||||||||
|
|
||||||||||
| Once you understand the responsibilities and dependencies of these components, you can quickly identify which layer has a problem when issues arise in the cluster: if Pods cannot be scheduled, check the scheduling layer; if GPUs are unavailable, check the Runtime Stack; if metrics are missing, check the monitoring layer. | ||||||||||
|
|
||||||||||
| :::tip Try it yourself | ||||||||||
|
|
||||||||||
| Explore the HAMi cluster architecture with hands-on labs: | ||||||||||
|
|
||||||||||
| - [Lab 2: Local Fake GPU Setup](/tutorials/labs/local-fake-gpu) — build a local HAMi cluster without real GPU hardware and inspect each architectural layer | ||||||||||
| - [Lab 5: Fake-GPU Scheduling with nvml-mock](/tutorials/labs/nvml-mock) — simulate GPU device discovery and trace the scheduling flow through all layers | ||||||||||
|
Comment on lines
+368
to
+369
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
|
||||||||||
| ::: | ||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -249,3 +249,13 @@ GPU2 得分 = ((1+6)/10 + (20+70)/100 + (1000+6000)/8000) × 10 = 24.75 | |
|
|
||
| - 学习 HAMi 的[架构设计](./architecture.md) | ||
| - 在你的 Kubernetes 集群中[安装 HAMi](../installation/prerequisites.md) | ||
|
|
||
| :::tip 动手实践 | ||
|
|
||
| 通过以下动手实验将这些概念付诸实践: | ||
|
|
||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. absolute /tutorials/... links are not locale prefixed, so zh readers land on the english tutorial. use /zh/tutorials/... in all six zh files. the zh pages for every linked lab exist. |
||
| - [Lab 3: 使用 HAMi 进行 GPU 切分](/tutorials/labs/gpu-partitioning) — 将单张 GPU 切分给多个 Pod,并验证显存限制 | ||
| - [Lab 7: 在 k3s 上实现 GPU 隔离(无需 GPU Operator)](/tutorials/labs/hami-isolation-k3s) — 在轻量集群上端到端验证显存隔离 | ||
| - [Lab 6: 在 HAMi GPU 共享上运行 vLLM](/tutorials/labs/hami-vllm) — 使用 HAMi 共享 GPU 资源来提供大语言模型推理服务 | ||
|
Comment on lines
+257
to
+259
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win Preserve the Chinese locale for translated lab links. The root-relative paths lead to English lab routes, while Chinese pages exist for Labs 3, 6, 7, 8, and 9. (project-hami.io)
📍 Affects 2 files
🤖 Prompt for AI AgentsSource: MCP tools |
||
|
|
||
| ::: | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The idea of using
:::tip Try it yourselfis good, but the sentence for which I suggested adding a full stop is an independent clause and should therefore end with a full stop. You can visit https://www.grammarly.com/blog/grammar/independent-and-dependent-clauses/ to get a better understanding.