Skip to content
Closed
Show file tree
Hide file tree
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
10 changes: 5 additions & 5 deletions versioned_docs/version-v1.3.0/contributor/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Welcome to HAMi!

## Code of Conduct

Please make sure to read and observe our [Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md)
Please make sure to read and observe the [Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md)

## Community Expectations

Expand All @@ -20,15 +20,15 @@ HAMi is a community project driven by its community which strives to promote a h

## Your First Contribution

We will help you to contribute in different areas like filing issues, developing features, fixing critical bugs and
Help is available for contributing in areas like filing issues, developing features, fixing critical bugs and
getting your work reviewed and merged.

If you have questions about the development process,
feel free to [file an issue](https://github.com/Project-HAMi/HAMi/issues/new/choose).

## Find something to work on

We are always in need of help, be it fixing documentation, reporting bugs or writing some code.
Contributions are always welcome - fixing documentation, reporting bugs or writing some code.
Look at places where you feel best coding practices aren't followed, code refactoring is needed or tests are missing.
Here is how you get started.

Expand All @@ -40,7 +40,7 @@ For example, [Project-HAMi/HAMi](https://github.com/Project-HAMi/HAMi) has
[help wanted](https://github.com/Project-HAMi/HAMi/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) and
[good first issue](https://github.com/Project-HAMi/HAMi/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
labels for issues that should not need deep knowledge of the system.
We can help new contributors who wish to work on such issues.
Maintainers can help new contributors who wish to work on such issues.

Another good way to contribute is to find a documentation improvement, such as a missing/broken link.
Please see [Contributor Workflow](#contributor-workflow) below for the workflow.
Expand All @@ -51,7 +51,7 @@ When you are willing to take on an issue, just reply on the issue. The maintaine

### File an Issue

While we encourage everyone to contribute code, it is also appreciated when someone reports an issue.
Code contributions are welcome, and bug reports are equally appreciated.
Issues should be filed under the appropriate HAMi sub-repository.

*Example:* a HAMi issue should be opened to [Project-HAMi/HAMi](https://github.com/Project-HAMi/HAMi/issues).
Expand Down
4 changes: 2 additions & 2 deletions versioned_docs/version-v1.3.0/contributor/governance.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ The HAMi and its leadership embrace the following values:
* Fairness: All stakeholders have the opportunity to provide feedback and submit
contributions, which will be considered on their merits.

* Community over Product or Company: Sustaining and growing our community takes
* Community over Product or Company: Sustaining and growing the community takes
priority over shipping code or sponsors' organizational goals. Each
contributor participates in the project as an individual.

* Inclusivity: We innovate through different perspectives and skill sets, which
* Inclusivity: Innovation happens through different perspectives and skill sets, which
can only be accomplished in a welcoming and respectful environment.

* Participation: Responsibilities within the project are earned through
Expand Down
4 changes: 2 additions & 2 deletions versioned_docs/version-v1.3.0/contributor/ladder.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Contributor Ladder

This docs different ways to get involved and level up within the project. You can see different roles within the project in the contributor roles.

Hello! We are excited that you want to learn more about our project contributor ladder! This contributor ladder outlines the different contributor roles within the project, along with the responsibilities and privileges that come with them. Community members generally start at the first levels of the "ladder" and advance up it as their involvement in the project grows. Our project members are happy to help you advance along the contributor ladder.
This contributor ladder outlines the different contributor roles within the project.

Each of the contributor roles below is organized into lists of three types of things. "Responsibilities" are things that a contributor is expected to do. "Requirements" are qualifications a person needs to meet to be in that role, and "Privileges" are things contributors on that level are entitled to.

Expand Down Expand Up @@ -126,7 +126,7 @@ The current list of maintainers can be found in the [MAINTAINERS](https://github

## An active maintainer should

* Actively participate in reviewing pull requests and incoming issues. Note that there are no hard rules on what is “active enough” and this is left up to the judgement of the current group of maintainers.
* Actively participate in reviewing pull requests and incoming issues. There are no hard rules on what is “active enough” and this is left up to the judgement of the current group of maintainers.

* Actively participate in discussions about design and the future of the project.

Expand Down
6 changes: 3 additions & 3 deletions versioned_docs/version-v1.3.0/developers/dynamic-mig.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ This feature will not be implemented without the help of @sailorvii.

## Introduction

The NVIDIA GPU build-in sharing method includes: time-slice, MPS and MIG. The context switch for time slice sharing would waste some time, so we chose the MPS and MIG. The GPU MIG profile is variable, the user could acquire the MIG device in the profile definition, but current implementation only defines the dedicated profile before the user requirement. That limits the usage of MIG. We want to develop an automatic slice plugin and create the slice when the user require it.
For the scheduling method, node-level binpack and spread will be supported. Referring to the binpack plugin, we consider the CPU, Mem, GPU memory and other user-defined resource.
The NVIDIA GPU build-in sharing method includes: time-slice, MPS and MIG. The context switch for time slice sharing would waste some time, MPS and MIG were chosen. The GPU MIG profile is variable, the user could acquire the MIG device in the profile definition, but current implementation only defines the dedicated profile before the user requirement. That limits the usage of MIG. An automatic slice plugin is planned to create slices on demand.
For the scheduling method, node-level binpack and spread will be supported. Referring to the binpack plugin, CPU, Mem, GPU memory, and other user-defined resources are considered.
HAMi is done by using [hami-core](https://github.com/Project-HAMi/HAMi-core), which is a cuda-hacking library. But mig is also widely used across the world. A unified API for dynamic-mig and hami-core is needed.

## Targets
Expand Down Expand Up @@ -150,7 +150,7 @@ The Procedure of a vGPU task which uses dynamic-mig is shown below:

<img src="https://github.com/Project-HAMi/HAMi/blob/master/docs/develop/imgs/hami-dynamic-mig-procedure.png?raw=true" width="800" alt="HAMi dynamic MIG procedure flowchart showing task scheduling process" />

Note that after submitted a task, deviceshare plugin will iterate over templates defined in configMap `hami-scheduler-device`, and find the first available template to fit. You can always change the content of that configMap, and restart vc-scheduler to customize.
After submitting a task, the deviceshare plugin iterates over templates defined in configMap `hami-scheduler-device`, and find the first available template to fit. You can always change the content of that configMap, and restart vc-scheduler to customize.

If you submit the example on an empty A100-PCIE-40GB node, then it will select a GPU and choose MIG template below:

Expand Down
8 changes: 4 additions & 4 deletions versioned_docs/version-v1.3.0/developers/scheduling.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ Node1 score: ((1+3)/4) * 10= 10
Node2 score: ((1+2)/4) * 10= 7.5
```

So, in `Binpack` policy we can select `Node1`.
So, in `Binpack` policy the scheduler selects `Node1`.

#### Spread

Expand All @@ -124,7 +124,7 @@ Node1 score: ((1+3)/4) * 10= 10
Node2 score: ((1+2)/4) * 10= 7.5
```

So, in `Spread` policy we can select `Node2`.
So, in `Spread` policy the scheduler selects `Node2`.

### GPU-scheduler-policy

Expand All @@ -147,7 +147,7 @@ GPU1 Score: ((20+10)/100 + (1000+2000)/8000)) * 10 = 6.75
GPU2 Score: ((20+70)/100 + (1000+6000)/8000)) * 10 = 17.75
```

So, in `Binpack` policy we can select `GPU2`.
So, in `Binpack` policy the scheduler selects `GPU2`.

#### Spread

Expand All @@ -166,4 +166,4 @@ GPU1 Score: ((20+10)/100 + (1000+2000)/8000)) * 10 = 6.75
GPU2 Score: ((20+70)/100 + (1000+6000)/8000)) * 10 = 17.75
```

So, in `Spread` policy we can select `GPU1`.
So, in `Spread` policy the scheduler selects `GPU1`.
4 changes: 2 additions & 2 deletions versioned_docs/version-v1.3.0/get-started/nginx-example.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ sudo systemctl daemon-reload && systemctl restart containerd

#### 2. Label your nodes

Label your GPU nodes for scheduling with HAMi by adding the label "gpu=on". Without this label, the nodes cannot be managed by our scheduler.
Label your GPU nodes for scheduling with HAMi by adding the label "gpu=on". Without this label, the nodes cannot be managed by the HAMi scheduler.

```
kubectl label nodes {nodeid} gpu=on
Expand All @@ -106,7 +106,7 @@ First, you need to check your Kubernetes version by using the following command:
kubectl version
```

Then, add our repo in helm
Then, add the HAMi repo in helm

```
helm repo add hami-charts https://project-hami.github.io/HAMi/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ sudo systemctl daemon-reload && systemctl restart containerd

### Label your nodes

Label your GPU nodes for scheduling with HAMi by adding the label "gpu=on". Without this label, the nodes cannot be managed by our scheduler.
Label your GPU nodes for scheduling with HAMi by adding the label "gpu=on". Without this label, the nodes cannot be managed by the HAMi scheduler.

```
kubectl label nodes {nodeid} gpu=on
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ title: Enable cambricon MLU sharing

***MLU Type Specification***: You can specify which type of MLU to use or to avoid for a certain task, by setting "cambricon.com/use-mlutype" or "cambricon.com/nouse-mlutype" annotations.

***Very Easy to use***: You don't need to modify your task yaml to use our scheduler. All your MLU jobs will be automatically supported after installation. The only thing you need to do is tag the MLU node.
***Very Easy to use***: You don't need to modify your task yaml to use the HAMi scheduler. All your MLU jobs will be automatically supported after installation. The only thing you need to do is tag the MLU node.

## Prerequisites

Expand Down
2 changes: 1 addition & 1 deletion versioned_docs/version-v1.3.0/userguide/configure.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ You can update these configurations using one of the following methods:
2. Modify Helm Chart: Update the corresponding values in the [ConfigMap](https://raw.githubusercontent.com/archlitchi/HAMi/refs/heads/master/charts/hami/templates/scheduler/device-configmap.yaml), then reapply the Helm Chart to regenerate the ConfigMap.

* `nvidia.deviceMemoryScaling:`
Float type, by default: 1. The ratio for NVIDIA device memory scaling, can be greater than 1 (enable virtual device memory, experimental feature). For NVIDIA GPU with *M* memory, if we set `nvidia.deviceMemoryScaling` argument to *S*, vGPUs split by this GPU will totally get `S * M` memory in Kubernetes with our device plugin.
Float type, by default: 1. The ratio for NVIDIA device memory scaling, can be greater than 1 (enable virtual device memory, experimental feature). For NVIDIA GPU with *M* memory, if `nvidia.deviceMemoryScaling` is set to *S*, vGPUs split by this GPU will totally get `S * M` memory in Kubernetes with the HAMi device plugin.
* `nvidia.deviceSplitCount:`
Integer type, by default: equals 10. Maximum tasks assigned to a simple GPU device.
* `nvidia.migstrategy:`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ It contains the following metrics:
| GPUDeviceSharedNum | Number of containers sharing this GPU | `{deviceidx="0",deviceuuid="GPU-00552014-5c87-89ac-b1a6-7b53aa24b0ec",nodeid="aio-node67",zone="vGPU"}` 1 |
| vGPUPodsDeviceAllocated | vGPU Allocated from pods | `{containeridx="Ascend310P",deviceusedcore="0",deviceuuid="aio-node74-arm-Ascend310P-0",nodename="aio-node74-arm",podname="ascend310p-pod",podnamespace="default",zone="vGPU"}` 3.221225472e+09 |

> **Note** Please note that, this is the overview about device allocation, it is NOT device real-time usage metrics. For that part, see real-time device usage.
> **Note** This is an overview of device allocation, it is NOT device real-time usage metrics. For that part, see real-time device usage.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ metadata:
name: gpu-pod
annotations:
nvidia.com/use-gputype: "A100,V100"
#In this example, we want to run this job on A100 or V100
#In this example, the job should run on A100 or V100
spec:
containers:
- name: ubuntu-container
Expand All @@ -24,4 +24,4 @@ spec:
nvidia.com/gpu: 2 # requesting 2 vGPUs
```

> **NOTICE:** * You can assign this task to multiple GPU types, use comma to separate,In this example, we want to run this job on A100 or V100*
> **NOTICE:** * You can assign this task to multiple GPU types, use comma to separate,In this example, the job should run on A100 or V100*
2 changes: 1 addition & 1 deletion versioned_docs/version-v2.4.1/contributor/cherry-picks.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ your case by supplementing your PR with e.g.,
- Key stakeholder reviewers/approvers attesting to their confidence in the
change being a required backport

It is critical that our full community is actively engaged on enhancements in
It is critical that the full community is actively engaged on enhancements in
the project. If a released feature was not enabled on a particular provider's
platform, this is a community miss that needs to be resolved in the `master`
branch for subsequent releases. Such enabling will not be backported to the
Expand Down
22 changes: 11 additions & 11 deletions versioned_docs/version-v2.4.1/contributor/contribute-docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,23 @@ the `Project-HAMi/website` repository.
## Prerequisites

- Docs, like codes, are also categorized and stored by version.
1.3 is the first version we have archived.
1.3 is the first archived version.
- Docs need to be translated into multiple languages for readers from different regions.
The community now supports both Chinese and English.
English is the official language of documentation.
- For our docs we use markdown. If you are unfamiliar with Markdown, please see [https://guides.github.com/features/mastering-markdown/](https://guides.github.com/features/mastering-markdown/) or [https://www.markdownguide.org/](https://www.markdownguide.org/) if you are looking for something more substantial.
- We get some additions through [Docusaurus 2](https://docusaurus.io/), a model static website generator.
- The docs use markdown. If you are unfamiliar with Markdown, please see [https://guides.github.com/features/mastering-markdown/](https://guides.github.com/features/mastering-markdown/) or [https://www.markdownguide.org/](https://www.markdownguide.org/) if you are looking for something more substantial.
- The site uses [Docusaurus 2](https://docusaurus.io/), a model static website generator.

## Setup

You can set up your local environment by cloning our website repository.
Clone the website repository to set up a local environment.

```shell
git clone https://github.com/Project-HAMi/website.git
cd website
```

Our website is organized like below:
The website is organized as follows:

```text
website
Expand Down Expand Up @@ -85,7 +85,7 @@ title: A doc with tags
## secondary title
```

The top section between two lines of --- is the Front Matter section. Here we define a couple of entries which tell Docusaurus how to handle the article:
The top section between two lines of --- is the Front Matter section. The entries tell Docusaurus how to handle the article:

- Title is the equivalent of the `<h1>` in a HTML document or `# <title>` in a Markdown article.
- Each document has a unique ID. By default, a document ID is the name of the document (without the extension) related to the root docs directory.
Expand All @@ -101,7 +101,7 @@ You can easily route to other places by adding any of the following links:
You can use relative paths to index the corresponding files.
- Link to pictures or other resources.
If your article contains images, prefer storing them in `/static/img/docs/` and linking
with absolute paths. We use language-aware folders:
with absolute paths. Language-aware folders are used:
- `/static/img/docs/common/` for shared images
- `/static/img/docs/en/` for English-only images
- `/static/img/docs/zh/` for Chinese-only images
Expand All @@ -120,7 +120,7 @@ Creating a sidebar is useful to:
- Display a sidebar on each of those documents
- Provide paginated navigation, with next/previous button

For our docs, you can know how our documents are organized from [https://github.com/Project-HAMi/website/blob/main/sidebars.js](https://github.com/Project-HAMi/website/blob/main/sidebars.js).
The document organization is defined in [https://github.com/Project-HAMi/website/blob/main/sidebars.js](https://github.com/Project-HAMi/website/blob/main/sidebars.js).

```js
module.exports = {
Expand Down Expand Up @@ -168,7 +168,7 @@ If you add a document, you must add it to `sidebars.js` to make it display prope

There are two situations about the Chinese version of the document:

- You want to translate our existing English docs to Chinese. In this case, you need to modify the corresponding file content from [https://github.com/Project-HAMi/website/tree/main/i18n/zh/docusaurus-plugin-content-docs/current](https://github.com/Project-HAMi/website/tree/main/i18n/zh/docusaurus-plugin-content-docs/current).
- To translate existing English docs to Chinese: you need to modify the corresponding file content from [https://github.com/Project-HAMi/website/tree/main/i18n/zh/docusaurus-plugin-content-docs/current](https://github.com/Project-HAMi/website/tree/main/i18n/zh/docusaurus-plugin-content-docs/current).
The organization of this directory is exactly the same as the outer layer. `current.json` holds translations for the documentation directory. You can edit it if you want to translate the name of directory.
- You want to contribute Chinese docs without English version. Any articles of any kind are welcomed. In this case, you can add articles and titles to the main directory first. Article content can be TBD first, like this.
Then add the corresponding Chinese content to the Chinese directory.
Expand All @@ -187,5 +187,5 @@ If the previewed page is not what you expected, please check your docs again.

### Versioning

For the newly supplemented documents of each version, we will synchronize to the latest version on the release date of each version, and the documents of the old version will not be modified.
For errata found in the documentation, we will fix it with every release.
For the newly supplemented documents of each version, they are synchronized to the latest version on the release date of each version, and the documents of the old version will not be modified.
For errata found in the documentation, fixes are applied with every release.
Loading
Loading